@@ -31,44 +31,54 @@ public class SepParsingBugTest extends TemplateTest {
31
31
32
32
@ Test
33
33
public void testAutodetectTagSyntax () throws TemplateException , IOException {
34
- getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_24 );
34
+ getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_34 );
35
35
getConfiguration ().setTagSyntax (Configuration .AUTO_DETECT_TAG_SYNTAX );
36
36
assertOutput ("<#list [1, 2] as i>${i}<#sep>, </#list>" , "1, 2" );
37
37
assertOutput ("[#list [1, 2] as i]${i}[#sep], [/#list]" , "1, 2" );
38
38
assertOutput ("<#list [1, 2] as i>${i}[#sep], </#list>" , "1[#sep], 2[#sep], " );
39
39
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>, " );
40
42
assertErrorContains ("<#sep>" , "#sep must be inside" );
41
43
assertErrorContains ("[#sep]" , "#sep must be inside" );
42
44
}
43
45
44
46
@ Test
45
47
public void testAngleBracketsTagSyntax () throws TemplateException , IOException {
46
- getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_24 );
48
+ getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_34 );
47
49
getConfiguration ().setTagSyntax (Configuration .ANGLE_BRACKET_TAG_SYNTAX );
48
50
assertOutput ("<#list [1, 2] as i>${i}<#sep>, </#list>" , "1, 2" );
49
51
assertOutput ("[#list [1, 2] as i]${i!'-'}[#sep], [/#list]" , "[#list [1, 2] as i]-[#sep], [/#list]" );
50
52
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], " );
51
55
assertErrorContains ("[#list [1, 2] as i]${i}<#sep>, [/#list]" , "#sep must be inside" );
52
56
assertErrorContains ("<#sep>" , "#sep must be inside" );
53
57
assertOutput ("[#sep]" , "[#sep]" );
54
58
}
55
59
56
60
@ Test
57
61
public void testSquareBracketTagSyntax () throws TemplateException , IOException {
58
- getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_24 );
62
+ getConfiguration ().setIncompatibleImprovements (Configuration .VERSION_2_3_34 );
59
63
getConfiguration ().setTagSyntax (Configuration .SQUARE_BRACKET_TAG_SYNTAX );
60
64
assertOutput ("<#list [1, 2] as i>${i!'-'}<#sep>, </#list>" , "<#list [1, 2] as i>-<#sep>, </#list>" );
61
65
assertOutput ("[#list [1, 2] as i]${i}[#sep], [/#list]" , "1, 2" );
62
66
assertErrorContains ("<#list [1, 2] as i>${i}[#sep], </#list>" , "#sep must be inside" );
63
67
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>, " );
64
70
assertOutput ("<#sep>" , "<#sep>" );
65
71
assertErrorContains ("[#sep]" , "#sep must be inside" );
66
72
}
67
73
68
74
@ 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 );
71
77
getConfiguration ().setTagSyntax (Configuration .AUTO_DETECT_TAG_SYNTAX );
72
78
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" );
73
83
}
74
84
}
0 commit comments