<?xml version="1.0" ?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
    http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->

<!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="macros-return"/>
   <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, 2.3.23"/>
   </testCase>
   <testCase name="type-builtins[#endTN]-ici-2.3.24">
      <setting incompatible_improvements="2.3.24, 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>
