@@ -31,44 +31,54 @@ public class SepParsingBugTest extends TemplateTest {
3131
3232 @ Test
3333 public void testAutodetectTagSyntax () throws TemplateException , IOException {
34- getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_24 );
34+ getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_34 );
3535 getConfiguration ().setTagSyntax (Configuration .AUTO_DETECT_TAG_SYNTAX );
3636 assertOutput ("<#list [1, 2] as i>${i}<#sep>, </#list>" , "1, 2" );
3737 assertOutput ("[#list [1, 2] as i]${i}[#sep], [/#list]" , "1, 2" );
3838 assertOutput ("<#list [1, 2] as i>${i}[#sep], </#list>" , "1[#sep], 2[#sep], " );
3939 assertOutput ("[#list [1, 2] as i]${i}<#sep>, [/#list]" , "1<#sep>, 2<#sep>, " );
40+ assertOutput ("[#list [1, 2] as i]${i}[sep], [/#list]" , "1[sep], 2[sep], " );
41+ assertOutput ("[#list [1, 2] as i]${i}<sep>, [/#list]" , "1<sep>, 2<sep>, " );
4042 assertErrorContains ("<#sep>" , "#sep must be inside" );
4143 assertErrorContains ("[#sep]" , "#sep must be inside" );
4244 }
4345
4446 @ Test
4547 public void testAngleBracketsTagSyntax () throws TemplateException , IOException {
46- getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_24 );
48+ getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_34 );
4749 getConfiguration ().setTagSyntax (Configuration .ANGLE_BRACKET_TAG_SYNTAX );
4850 assertOutput ("<#list [1, 2] as i>${i}<#sep>, </#list>" , "1, 2" );
4951 assertOutput ("[#list [1, 2] as i]${i!'-'}[#sep], [/#list]" , "[#list [1, 2] as i]-[#sep], [/#list]" );
5052 assertOutput ("<#list [1, 2] as i>${i}[#sep], </#list>" , "1[#sep], 2[#sep], " );
53+ assertOutput ("<#list [1, 2] as i>${i}<sep>, </#list>" , "1<sep>, 2<sep>, " );
54+ assertOutput ("<#list [1, 2] as i>${i}[sep], </#list>" , "1[sep], 2[sep], " );
5155 assertErrorContains ("[#list [1, 2] as i]${i}<#sep>, [/#list]" , "#sep must be inside" );
5256 assertErrorContains ("<#sep>" , "#sep must be inside" );
5357 assertOutput ("[#sep]" , "[#sep]" );
5458 }
5559
5660 @ Test
5761 public void testSquareBracketTagSyntax () throws TemplateException , IOException {
58- getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_24 );
62+ getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_34 );
5963 getConfiguration ().setTagSyntax (Configuration .SQUARE_BRACKET_TAG_SYNTAX );
6064 assertOutput ("<#list [1, 2] as i>${i!'-'}<#sep>, </#list>" , "<#list [1, 2] as i>-<#sep>, </#list>" );
6165 assertOutput ("[#list [1, 2] as i]${i}[#sep], [/#list]" , "1, 2" );
6266 assertErrorContains ("<#list [1, 2] as i>${i}[#sep], </#list>" , "#sep must be inside" );
6367 assertOutput ("[#list [1, 2] as i]${i}<#sep>, [/#list]" , "1<#sep>, 2<#sep>, " );
68+ assertOutput ("[#list [1, 2] as i]${i}[sep], [/#list]" , "1[sep], 2[sep], " );
69+ assertOutput ("[#list [1, 2] as i]${i}<sep>, [/#list]" , "1<sep>, 2<sep>, " );
6470 assertOutput ("<#sep>" , "<#sep>" );
6571 assertErrorContains ("[#sep]" , "#sep must be inside" );
6672 }
6773
6874 @ Test
69- public void testLegacyTagSyntax () throws TemplateException , IOException {
70- getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_23 );
75+ public void testPre2Dot3Dot34BugRecreated () throws TemplateException , IOException {
76+ getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_33 );
7177 getConfiguration ().setTagSyntax (Configuration .AUTO_DETECT_TAG_SYNTAX );
7278 assertOutput ("<#list [1, 2] as i>${i}<sep>, </#list>" , "1, 2" );
79+ assertOutput ("<#list [1, 2] as i>${i}[#sep], </#list>" , "1, 2" );
80+ // square bracket tags were always "strict":
81+ assertOutput ("[#list [1, 2] as i]${i}[sep], [/#list]" , "1[sep], 2[sep], " );
82+ assertOutput ("[#list [1, 2] as i]${i}<#sep>, [/#list]" , "1, 2" );
7383 }
7484}
0 commit comments