<?xml version="1.0" ?>

<!DOCTYPE testcases [
  <!ELEMENT testCases (setting?, testCase*)>
  <!ELEMENT testCase (setting?)>
     <!ATTLIST testCase 
               name CDATA #REQUIRED
               template CDATA #IMPLIED
               expected CDATA #IMPLIED
               noOutput CDATA #IMPLIED
     >
     <!-- The default of `template` is "${name?keep_before('[#endTN]')}.ftl" -->
     <!-- The default of `expected` is "${name}.txt" -->
     <!-- The default of `noOutput` is false -->
     
 <!ELEMENT setting EMPTY>
     <!ATTLIST setting 
            auto_import CDATA #IMPLIED
            classic_compatible (Y|N|2) #IMPLIED
            clear_encoding_map (Y|N) #IMPLIED
            input_encoding CDATA #IMPLIED
            locale CDATA #IMPLIED
            object_wrapper CDATA #IMPLIED
            output_encoding CDATA #IMPLIED
            output_dir CDATA #IMPLIED
            strict_syntax (Y|N) #IMPLIED
            new_builtin_class_resolver CDATA #IMPLIED
            url_escaping_charset CDATA #IMPLIED
            incompatible_improvements CDATA #IMPLIED
            time_zone CDATA #IMPLIED
            api_builtin_enabled CDATA #IMPLIED
      >
]>

<testCases>
   <setting input_encoding="UTF-8" output_encoding="UTF-8" />
   
   <testCase name="api-builtins" noOutput="true">
      <setting
            object_wrapper="DefaultObjectWrapper(2.3.22, forceLegacyNonListCollections=false)"
            api_builtin_enabled="true"
      />
   </testCase>
   <testCase name="api-builtins[#endTN]-bw" noOutput="true">
      <setting
            object_wrapper="BeansWrapper(2.3.0)"
            api_builtin_enabled="true"
      />
   </testCase>
   <testCase name="arithmetic" />
   <testCase name="assignments" noOutput="true" />
   <testCase name="bean-maps"/>
   <testCase name="beans">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapper"/>
   </testCase>
   <testCase name="boolean" />
   <testCase name="charset-in-header">
      <setting clear_encoding_map="Y" input_encoding="ISO-8859-5" />
   </testCase>
   <testCase name="comment" />
   <testCase name="comparisons" />
   <testCase name="compress" />
   <testCase name="then-builtin" noOutput="true" />
   <testCase name="dateformat-java" />
   <testCase name="dateformat-iso-like" noOutput="true" />
   <testCase name="dateformat-iso-bi" noOutput="true">
      <setting incompatible_improvements="min, 2.3.20" /> 
   </testCase>
   <testCase name="dateformat-iso-bi-ici-2.3.21" noOutput="true">
      <setting incompatible_improvements="2.3.21, max" /> 
   </testCase>   
   <testCase name="dateparsing" noOutput="true" />
   <testCase name="default"/>
   <testCase name="default-xmlns">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapper"/>
   </testCase>
   <testCase name="encoding-builtins">
      <setting incompatible_improvements="min, 2.3.19" /> 
   </testCase>
   <testCase name="encoding-builtins[#endTN]-ici-2.3.20">
      <setting incompatible_improvements="2.3.20, max" /> 
   </testCase>
   <testCase name="escapes" />
   <testCase name="hashliteral">
      <setting incompatible_improvements="min, 2.3.20, 2.3.21, max" /> 
   </testCase>
   <testCase name="non-strict-syntax" >
      <setting strict_syntax="N" />
   </testCase>
   <testCase name="identifier-non-ascii" />
   <testCase name="identifier-escaping" />
   <testCase name="import">
      <setting auto_import="import_lib.ftl as my"/>
   </testCase>
   <testCase name="include" />
   <testCase name="include2">
      <setting input_encoding="utf-8" />
   </testCase>
   <testCase name="interpret"/>
   <testCase name="iterators"/>
   <testCase name="lastcharacter"/>
   <testCase name="list" />
   <testCase name="list[#endTN]-collectionAdapter" expected="list.txt">
      <setting object_wrapper="DefaultObjectWrapper(2.3.22, forceLegacyNonListCollections=false)" />
   </testCase>
   <testCase name="list2" />
   <testCase name="list2[#endTN]-collectionAdapter" expected="list2.txt">
      <setting object_wrapper="DefaultObjectWrapper(2.3.22, forceLegacyNonListCollections=false)" />
   </testCase>
   <testCase name="list3" />
   <testCase name="list3[#endTN]-collectionAdapter" expected="list3.txt">
      <setting object_wrapper="DefaultObjectWrapper(2.3.22, forceLegacyNonListCollections=false)" />
   </testCase>
   <testCase name="list-bis" />
   <testCase name="list-bis[#endTN]-collectionAdapter" expected="list-bis.txt">
      <setting object_wrapper="DefaultObjectWrapper(2.3.22, forceLegacyNonListCollections=false)" />
   </testCase>
   <testCase name="listliteral" />
   <testCase name="localization" >
      <setting locale="en_AU"/>
   </testCase>
   <testCase name="loopvariable" />
   <testCase name="macros"/>
   <testCase name="macros2"/>
   <testCase name="multimodels"/>
   <testCase name="nested" />
   <testCase name="newlines1" />
   <testCase name="newlines2" />
   <testCase name="noparse" />
   <testCase name="number-format">
      <setting incompatible_improvements="min, 2.3.21, max" /> 
   </testCase>
   <testCase name="number-literal" >
      <setting locale="fr_FR"/>
   </testCase>
   <testCase name="numerical-cast" />
   <testCase name="output-encoding1"/>
   <testCase name="output-encoding2">
       <setting output_encoding="UTF-16"/>
   </testCase>
   <testCase name="output-encoding3">
       <setting output_encoding="ISO-8859-1" url_escaping_charset="UTF-16" />
   </testCase>
   <testCase name="precedence"/>
   <testCase name="range-ici-2.3.20" noOutput="true">
   	  <setting incompatible_improvements="min, 2.3.20"/>
   </testCase>
   <testCase name="range-ici-2.3.21" noOutput="true">
      <setting incompatible_improvements="2.3.21, max"/>
   </testCase>
   <testCase name="recover" />
   <testCase name="root" />
   <testCase name="setting" noOutput="true" />
   <testCase name="sequence-builtins[#endTN]-with-BeansWrapper" expected="sequence-builtins.txt">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapper"/> 
   </testCase>
   <testCase name="sequence-builtins[#endTN]-with-DefaultObjectWrapper" expected="sequence-builtins.txt">
      <setting object_wrapper="freemarker.template.DefaultObjectWrapper"/> 
   </testCase>
   <testCase name="sequence-builtins[#endTN]-with-DefaultObjectWrapper-collAdapters" expected="sequence-builtins.txt">
      <setting object_wrapper="DefaultObjectWrapper(2.3.22, forceLegacyNonListCollections=false)"/> 
   </testCase>
   <testCase name="sequence-builtins[#endTN]-with-SimpleObjectWrapper" expected="sequence-builtins.txt">
      <setting object_wrapper="freemarker.template.SimpleObjectWrapper"/> 
   </testCase>
   <testCase name="simplehash-char-key" noOutput="true" />
   <testCase name="strictinheader">
      <setting strict_syntax="N"/>
   </testCase>
   <testCase name="existence-operators" noOutput="true" />
   <testCase name="string-builtins1">
      <setting incompatible_improvements="min, 2.3.20, max"/>
   </testCase>
   <testCase name="string-builtins2" />
   <testCase name="string-builtins3" noOutput="true" />
   <testCase name="string-builtins-regexps" />
   <testCase name="string-builtins-regexps-matches" />
   <testCase name="stringbimethods" />
   <testCase name="stringliteral"/>
   <testCase name="if" />
   <testCase name="switch" />
   <testCase name="switch-builtin" noOutput="true" />
   <testCase name="transforms"/>
   <testCase name="type-builtins">
      <setting incompatible_improvements="min, 2.3.20"/>
   </testCase>
   <testCase name="type-builtins[#endTN]-ici-2.3.21">
   	  <setting incompatible_improvements="2.3.21, max"/>
   </testCase>
   <testCase name="date-type-builtins" noOutput="true" />
   <testCase name="url" noOutput="true" />
   <testCase name="var-layers"/>
   <testCase name="variables"/>
   <testCase name="whitespace-trim"/>
   <testCase name="wstrip-in-header"/>
   <testCase name="xml-fragment">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapper"/> 
   </testCase>
   <testCase name="xmlns1">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapper"/>
   </testCase>
   <testCase name="xmlns2" template="xmlns1.ftl"  expected="xmlns1.txt" />
   <testCase name="xmlns3">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapper"/>
   </testCase>   
   <testCase name="xmlns4">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapper"/>
   </testCase>   
   <testCase name="xmlns5">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapper"/>
   </testCase>   
   <testCase name="xml-ns_prefix-scope" template="xml-ns_prefix-scope-main.ftl" />
   <testCase name="hashconcat"/>
   <testCase name="new-defaultresolver" />
   <testCase name="new-unrestricted">
      <setting new_builtin_class_resolver="unrestricted"/>
   </testCase>   
   <testCase name="new-safer">
      <setting new_builtin_class_resolver="safer"/>
   </testCase>   
   <testCase name="new-allowsnothing">
      <setting new_builtin_class_resolver="allows_nothing"/>
   </testCase>   
   <testCase name="new-optin">
      <setting new_builtin_class_resolver="
      		allowed_classes: freemarker.test.templatesuite.models.NewTestModel,
      		trusted_templates: subdir/new-optin.ftl, subdir/subsub/*"
      />
   </testCase>   
   <testCase name="specialvars">
      <setting locale="en_US" output_encoding="utf-8" url_escaping_charset="iso-8859-1"/>
   </testCase>   
   <testCase name="number-to-date" />
   <testCase name="varargs" />
   <testCase name="classic-compatible">
      <setting classic_compatible="Y"/>
   </testCase>   
   <testCase name="classic-compatible-mode2" noOutput="true">
      <setting classic_compatible="2"/>
   </testCase>   
   <testCase name="boolean-formatting"  />
   <testCase name="number-math-builtins" noOutput="true" />
   <testCase name="string-builtin-coercion" noOutput="true" />
   <testCase name="string-builtins-ici-2.3.20" noOutput="true">
      <setting incompatible_improvements="2.3.20"/>
   </testCase>
   <testCase name="string-builtins-ici-2.3.19" noOutput="true">
      <setting incompatible_improvements="2.3.19"/>
   </testCase>
   
   <testCase name="overloaded-methods-23bc" noOutput="true">
      <setting incompatible_improvements="2.3.0, 2.3.19"/>
   </testCase>
   <testCase name="overloaded-methods-2-inc-bwici-2.3.20" noOutput="true">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapperInc2003020"/>
   </testCase>
   <testCase name="overloaded-methods-2-desc-bwici-2.3.20" noOutput="true">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapperDesc2003020"/>
   </testCase>
   <testCase name="overloaded-methods-2-bwici-2.3.21[#endTN]-inc" noOutput="true">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapperInc2003021"/>
   </testCase>
   <testCase name="overloaded-methods-2-bwici-2.3.21[#endTN]-desc" noOutput="true">
      <setting object_wrapper="freemarker.ext.beans.BeansWrapperDesc2003021"/>
   </testCase>
   <testCase name="overloaded-methods-2-inc-bwici-2.3.20[#endTN]-dow" noOutput="true">
      <setting object_wrapper="freemarker.ext.beans.DefaultObjectWrapperInc2003020"/>
   </testCase>
   <testCase name="overloaded-methods-2-desc-bwici-2.3.20[#endTN]-dow" noOutput="true">
      <setting object_wrapper="freemarker.ext.beans.DefaultObjectWrapperDesc2003020"/>
   </testCase>
   <testCase name="overloaded-methods-2-bwici-2.3.21[#endTN]-inc-dow" noOutput="true">
      <setting object_wrapper="freemarker.ext.beans.DefaultObjectWrapperInc2003021"/>
   </testCase>
   <testCase name="overloaded-methods-2-bwici-2.3.21[#endTN]-desc-dow" noOutput="true">
      <setting object_wrapper="freemarker.ext.beans.DefaultObjectWrapperDesc2003021"/>
   </testCase>
   <testCase name="overloaded-methods-2-bwici-2.3.21[#endTN]-inc-dow-2.3.22" noOutput="true">
      <setting object_wrapper="freemarker.ext.beans.DefaultObjectWrapperInc2003022"/>
   </testCase>
   <testCase name="overloaded-methods-2-bwici-2.3.21[#endTN]-desc-dow-2.3.22" noOutput="true">
      <setting object_wrapper="freemarker.ext.beans.DefaultObjectWrapperDesc2003022"/>
   </testCase>
</testCases>
