You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/05/05 21:00:28 UTC
[05/11] incubator-freemarker git commit: Configuration is now
immutable. Instead,
you should use Configuration.Builder to set up the setting values,
then create the Configuration with the builder's build() method.
FreemarkerServlet (including some of its
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/DateFormatTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/DateFormatTest.java b/src/test/java/org/apache/freemarker/core/DateFormatTest.java
index 4fdb1c7..049655f 100644
--- a/src/test/java/org/apache/freemarker/core/DateFormatTest.java
+++ b/src/test/java/org/apache/freemarker/core/DateFormatTest.java
@@ -44,7 +44,7 @@ import org.apache.freemarker.core.valueformat.TemplateDateFormatFactory;
import org.apache.freemarker.core.valueformat.UndefinedCustomFormatException;
import org.apache.freemarker.core.valueformat.impl.AliasTemplateDateFormatFactory;
import org.apache.freemarker.test.TemplateTest;
-import org.junit.Before;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
import com.google.common.collect.ImmutableMap;
@@ -55,20 +55,22 @@ public class DateFormatTest extends TemplateTest {
private static long T = 1441540800000L;
private static TemplateDateModel TM = new SimpleDate(new Date(T), TemplateDateModel.DATETIME);
- @Before
- public void setup() {
- Configuration cfg = getConfiguration();
- cfg.setIncompatibleImprovements(Configuration.VERSION_3_0_0);
- cfg.setLocale(Locale.US);
- cfg.setTimeZone(TimeZone.getTimeZone("GMT+01:00"));
- cfg.setSQLDateAndTimeTimeZone(TimeZone.getTimeZone("UTC"));
-
- cfg.setCustomDateFormats(ImmutableMap.of(
- "epoch", EpochMillisTemplateDateFormatFactory.INSTANCE,
- "loc", LocAndTZSensitiveTemplateDateFormatFactory.INSTANCE,
- "div", EpochMillisDivTemplateDateFormatFactory.INSTANCE,
- "appMeta", AppMetaTemplateDateFormatFactory.INSTANCE,
- "htmlIso", HTMLISOTemplateDateFormatFactory.INSTANCE));
+ private TestConfigurationBuilder createConfigurationBuilder() {
+ return new TestConfigurationBuilder()
+ .locale(Locale.US)
+ .timeZone(TimeZone.getTimeZone("GMT+01:00"))
+ .sqlDateAndTimeTimeZone(TimeZone.getTimeZone("UTC"))
+ .customDateFormats(ImmutableMap.of(
+ "epoch", EpochMillisTemplateDateFormatFactory.INSTANCE,
+ "loc", LocAndTZSensitiveTemplateDateFormatFactory.INSTANCE,
+ "div", EpochMillisDivTemplateDateFormatFactory.INSTANCE,
+ "appMeta", AppMetaTemplateDateFormatFactory.INSTANCE,
+ "htmlIso", HTMLISOTemplateDateFormatFactory.INSTANCE));
+ }
+
+ @Override
+ protected Configuration createDefaultConfiguration() throws Exception {
+ return createConfigurationBuilder().build();
}
@Test
@@ -77,14 +79,14 @@ public class DateFormatTest extends TemplateTest {
assertOutput(
"${d?string.@epoch} ${d?string.@epoch} <#setting locale='de_DE'>${d?string.@epoch}",
"123456789 123456789 123456789");
-
- getConfiguration().setDateTimeFormat("@epoch");
+
+ setConfigurationWithDateTimeFormat("@epoch");
assertOutput(
"<#assign d = d?datetime>"
+ "${d} ${d?string} <#setting locale='de_DE'>${d}",
"123456789 123456789 123456789");
-
- getConfiguration().setDateTimeFormat("@htmlIso");
+
+ setConfigurationWithDateTimeFormat("@htmlIso");
assertOutput(
"<#assign d = d?datetime>"
+ "${d} ${d?string} <#setting locale='de_DE'>${d}",
@@ -105,8 +107,8 @@ public class DateFormatTest extends TemplateTest {
"123456789@en_US:GMT+01:00 123456789@en_US:GMT+01:00 "
+ "123456789@de_DE:GMT+01:00 123456789@de_DE:GMT+01:00 "
+ "123456789@en_US:GMT+01:00 123456789@en_US:GMT+01:00");
-
- getConfiguration().setDateTimeFormat("@loc");
+
+ setConfigurationWithDateTimeFormat("@loc");
assertOutput(
"<#assign d = d?datetime>"
+ "${d} ${d?string} "
@@ -122,7 +124,7 @@ public class DateFormatTest extends TemplateTest {
@Test
public void testTimeZoneChange() throws Exception {
addToDataModel("d", new Date(123456789));
- getConfiguration().setDateTimeFormat("iso");
+ setConfigurationWithDateTimeFormat("iso");
assertOutput(
"${d?string.@loc} ${d?string.@loc} ${d?datetime?isoLocal} "
+ "<#setting timeZone='GMT+02:00'>"
@@ -132,8 +134,8 @@ public class DateFormatTest extends TemplateTest {
"123456789@en_US:GMT+01:00 123456789@en_US:GMT+01:00 1970-01-02T11:17:36+01:00 "
+ "123456789@en_US:GMT+02:00 123456789@en_US:GMT+02:00 1970-01-02T12:17:36+02:00 "
+ "123456789@en_US:GMT+01:00 123456789@en_US:GMT+01:00 1970-01-02T11:17:36+01:00");
-
- getConfiguration().setDateTimeFormat("@loc");
+
+ setConfigurationWithDateTimeFormat("@loc");
assertOutput(
"<#assign d = d?datetime>"
+ "${d} ${d?string} "
@@ -148,31 +150,41 @@ public class DateFormatTest extends TemplateTest {
@Test
public void testWrongFormatStrings() throws Exception {
- getConfiguration().setDateTimeFormat("x1");
+ setConfigurationWithDateTimeFormat("x1");
assertErrorContains("${.now}", "\"x1\"", "'x'");
assertErrorContains("${.now?string}", "\"x1\"", "'x'");
- getConfiguration().setDateTimeFormat("short");
+ setConfigurationWithDateTimeFormat("short");
assertErrorContains("${.now?string('x2')}", "\"x2\"", "'x'");
+ assertErrorContains("${.now?string('[wrong]')}", "format string", "[wrong]");
+
+ setConfiguration(createConfigurationBuilder()
+ .dateFormat("[wrong d]")
+ .dateTimeFormat("[wrong dt]")
+ .timeFormat("[wrong t]")
+ .build());
+ assertErrorContains("${.now?date}", "\"date_format\"", "[wrong d]");
+ assertErrorContains("${.now?datetime}", "\"datetime_format\"", "[wrong dt]");
+ assertErrorContains("${.now?time}", "\"time_format\"", "[wrong t]");
}
@Test
public void testCustomParameterized() throws Exception {
Configuration cfg = getConfiguration();
addToDataModel("d", new SimpleDate(new Date(12345678L), TemplateDateModel.DATETIME));
- cfg.setDateTimeFormat("@div 1000");
+ setConfigurationWithDateTimeFormat("@div 1000");
assertOutput("${d}", "12345");
assertOutput("${d?string}", "12345");
assertOutput("${d?string.@div_100}", "123456");
assertErrorContains("${d?string.@div_xyz}", "\"@div_xyz\"", "\"xyz\"");
- cfg.setDateTimeFormat("@div");
+ setConfigurationWithDateTimeFormat("@div");
assertErrorContains("${d}", "\"datetime_format\"", "\"@div\"", "format parameter is required");
}
@Test
public void testUnknownCustomFormat() throws Exception {
{
- getConfiguration().setDateTimeFormat("@noSuchFormat");
+ setConfigurationWithDateTimeFormat("@noSuchFormat");
Throwable exc = assertErrorContains(
"${.now}",
"\"@noSuchFormat\"", "\"noSuchFormat\"", "\"datetime_format\"");
@@ -180,26 +192,30 @@ public class DateFormatTest extends TemplateTest {
}
{
- getConfiguration().setDateFormat("@noSuchFormatD");
+ setConfiguration(createConfigurationBuilder().dateFormat("@noSuchFormatD").build());
assertErrorContains(
"${.now?date}",
"\"@noSuchFormatD\"", "\"noSuchFormatD\"", "\"date_format\"");
}
{
- getConfiguration().setTimeFormat("@noSuchFormatT");
+ setConfiguration(createConfigurationBuilder().timeFormat("@noSuchFormatT").build());
assertErrorContains(
"${.now?time}",
"\"@noSuchFormatT\"", "\"noSuchFormatT\"", "\"time_format\"");
}
{
- getConfiguration().setDateTimeFormat("");
+ setConfigurationWithDateTimeFormat("");
Throwable exc = assertErrorContains("${.now?string('@noSuchFormat2')}",
"\"@noSuchFormat2\"", "\"noSuchFormat2\"");
assertThat(exc.getCause(), instanceOf(UndefinedCustomFormatException.class));
}
}
-
+
+ private void setConfigurationWithDateTimeFormat(String formatString) {
+ setConfiguration(createConfigurationBuilder().dateTimeFormat(formatString).build());
+ }
+
@Test
public void testNullInModel() throws Exception {
addToDataModel("d", new MutableTemplateDateModel());
@@ -209,37 +225,40 @@ public class DateFormatTest extends TemplateTest {
@Test
public void testIcIAndEscaping() throws Exception {
- Configuration cfg = getConfiguration();
addToDataModel("d", new SimpleDate(new Date(12345678L), TemplateDateModel.DATETIME));
- cfg.setDateTimeFormat("@epoch");
+ setConfigurationWithDateTimeFormat("@epoch");
assertOutput("${d}", "12345678");
- cfg.setDateTimeFormat("'@'yyyy");
+ setConfigurationWithDateTimeFormat("'@'yyyy");
assertOutput("${d}", "@1970");
- cfg.setDateTimeFormat("@@yyyy");
+ setConfigurationWithDateTimeFormat("@@yyyy");
assertOutput("${d}", "@@1970");
-
- cfg.setCustomDateFormats(Collections.<String, TemplateDateFormatFactory>emptyMap());
-
- cfg.setDateTimeFormat("@epoch");
+
+ setConfiguration(createConfigurationBuilder()
+ .customDateFormats(Collections.<String, TemplateDateFormatFactory>emptyMap())
+ .dateTimeFormat("@epoch")
+ .build());
assertErrorContains("${d}", "custom", "\"epoch\"");
}
@Test
public void testEnvironmentGetters() throws Exception {
- Template t = new Template(null, "", getConfiguration());
- Environment env = t.createProcessingEnvironment(null, null);
-
- Configuration cfg = getConfiguration();
-
String dateFormatStr = "yyyy.MM.dd. (Z)";
String timeFormatStr = "HH:mm";
String dateTimeFormatStr = "yyyy.MM.dd. HH:mm";
- cfg.setDateFormat(dateFormatStr);
- cfg.setTimeFormat(timeFormatStr);
- cfg.setDateTimeFormat(dateTimeFormatStr);
+
+ setConfiguration(createConfigurationBuilder()
+ .dateFormat(dateFormatStr)
+ .timeFormat(timeFormatStr)
+ .dateTimeFormat(dateTimeFormatStr)
+ .build());
+
+ Configuration cfg = getConfiguration();
+
+ Template t = new Template(null, "", cfg);
+ Environment env = t.createProcessingEnvironment(null, null);
- // Test that values are coming from the cache if possible
+ // Test that values are coming from the cache if possible
for (Class dateClass : new Class[] { Date.class, Timestamp.class, java.sql.Date.class, Time.class } ) {
for (int dateType
: new int[] { TemplateDateModel.DATE, TemplateDateModel.TIME, TemplateDateModel.DATETIME }) {
@@ -314,32 +333,25 @@ public class DateFormatTest extends TemplateTest {
assertEquals("2015.09.06. 13:00 Sunday", format2.formatToPlainText(TM));
assertSame(format1, format2);
}
-
- addToDataModel("d", TM);
- assertErrorContains("${d?string('[wrong]')}", "format string", "[wrong]");
- cfg.setDateFormat("[wrong d]");
- cfg.setDateTimeFormat("[wrong dt]");
- cfg.setTimeFormat("[wrong t]");
- assertErrorContains("${d?date}", "\"date_format\"", "[wrong d]");
- assertErrorContains("${d?datetime}", "\"datetime_format\"", "[wrong dt]");
- assertErrorContains("${d?time}", "\"time_format\"", "[wrong t]");
}
-
+
@Test
- public void testAlieses() throws Exception {
- Configuration cfg = getConfiguration();
- cfg.setCustomDateFormats(ImmutableMap.of(
- "d", new AliasTemplateDateFormatFactory("yyyy-MMM-dd"),
- "m", new AliasTemplateDateFormatFactory("yyyy-MMM"),
- "epoch", EpochMillisTemplateDateFormatFactory.INSTANCE));
-
- TemplateConfiguration.Builder tcb = new TemplateConfiguration.Builder();
- tcb.setCustomDateFormats(ImmutableMap.of(
- "m", new AliasTemplateDateFormatFactory("yyyy-MMMM"),
- "i", new AliasTemplateDateFormatFactory("@epoch")));
- cfg.setTemplateConfigurations(new ConditionalTemplateConfigurationFactory(
- new FileNameGlobMatcher("*2*"), tcb.build()));
-
+ public void testAliases() throws Exception {
+ setConfiguration(createConfigurationBuilder()
+ .customDateFormats(ImmutableMap.of(
+ "d", new AliasTemplateDateFormatFactory("yyyy-MMM-dd"),
+ "m", new AliasTemplateDateFormatFactory("yyyy-MMM"),
+ "epoch", EpochMillisTemplateDateFormatFactory.INSTANCE))
+ .templateConfigurations(
+ new ConditionalTemplateConfigurationFactory(
+ new FileNameGlobMatcher("*2*"),
+ new TemplateConfiguration.Builder()
+ .customDateFormats(ImmutableMap.of(
+ "m", new AliasTemplateDateFormatFactory("yyyy-MMMM"),
+ "i", new AliasTemplateDateFormatFactory("@epoch")))
+ .build()))
+ .build());
+
addToDataModel("d", TM);
String commonFtl = "${d?string.@d} ${d?string.@m} "
+ "<#setting locale='fr_FR'>${d?string.@m} "
@@ -353,15 +365,17 @@ public class DateFormatTest extends TemplateTest {
}
@Test
- public void testAlieses2() throws Exception {
- Configuration cfg = getConfiguration();
- cfg.setCustomDateFormats(ImmutableMap.of(
- "d", new AliasTemplateDateFormatFactory("yyyy-MMM",
- ImmutableMap.of(
- new Locale("en"), "yyyy-MMM'_en'",
- Locale.UK, "yyyy-MMM'_en_GB'",
- Locale.FRANCE, "yyyy-MMM'_fr_FR'"))));
- cfg.setDateTimeFormat("@d");
+ public void testAliases2() throws Exception {
+ setConfiguration(
+ createConfigurationBuilder()
+ .customDateFormats(ImmutableMap.of(
+ "d", new AliasTemplateDateFormatFactory("yyyy-MMM",
+ ImmutableMap.of(
+ new Locale("en"), "yyyy-MMM'_en'",
+ Locale.UK, "yyyy-MMM'_en_GB'",
+ Locale.FRANCE, "yyyy-MMM'_fr_FR'"))))
+ .dateTimeFormat("@d")
+ .build());
addToDataModel("d", TM);
assertOutput(
"<#setting locale='en_US'>${d} "
@@ -377,11 +391,13 @@ public class DateFormatTest extends TemplateTest {
*/
@Test
public void testZeroArgDateBI() throws IOException, TemplateException {
- Configuration cfg = getConfiguration();
- cfg.setDateFormat("@epoch");
- cfg.setDateTimeFormat("@epoch");
- cfg.setTimeFormat("@epoch");
-
+ setConfiguration(
+ createConfigurationBuilder()
+ .dateFormat("@epoch")
+ .dateTimeFormat("@epoch")
+ .timeFormat("@epoch")
+ .build());
+
addToDataModel("t", String.valueOf(T));
assertOutput(
@@ -397,11 +413,13 @@ public class DateFormatTest extends TemplateTest {
@Test
public void testAppMetaRoundtrip() throws IOException, TemplateException {
- Configuration cfg = getConfiguration();
- cfg.setDateFormat("@appMeta");
- cfg.setDateTimeFormat("@appMeta");
- cfg.setTimeFormat("@appMeta");
-
+ setConfiguration(
+ createConfigurationBuilder()
+ .dateFormat("@appMeta")
+ .dateTimeFormat("@appMeta")
+ .timeFormat("@appMeta")
+ .build());
+
addToDataModel("t", String.valueOf(T) + "/foo");
assertOutput(
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java b/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
index 15f96dd..29220c4 100644
--- a/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
+++ b/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
@@ -36,12 +36,7 @@ import org.apache.freemarker.test.TemplateTest;
import org.junit.Test;
public class DirectiveCallPlaceTest extends TemplateTest {
-
- @Override
- protected Configuration createConfiguration() {
- return new Configuration(Configuration.VERSION_3_0_0);
- }
-
+
@Test
public void testCustomDataBasics() throws IOException, TemplateException {
addTemplate(
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/EncodingOverrideTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/EncodingOverrideTest.java b/src/test/java/org/apache/freemarker/core/EncodingOverrideTest.java
index ece57c1..b1acead 100644
--- a/src/test/java/org/apache/freemarker/core/EncodingOverrideTest.java
+++ b/src/test/java/org/apache/freemarker/core/EncodingOverrideTest.java
@@ -27,6 +27,7 @@ import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
+import org.apache.freemarker.core.templateresolver.impl.ClassTemplateLoader;
import org.junit.Test;
public class EncodingOverrideTest {
@@ -52,10 +53,10 @@ public class EncodingOverrideTest {
}
private Configuration createConfig(Charset charset) {
- Configuration cfg = new Configuration(Configuration.VERSION_3_0_0);
- cfg.setClassForTemplateLoading(EncodingOverrideTest.class, "");
- cfg.setSourceEncoding(charset);
- return cfg;
+ return new Configuration.Builder(Configuration.VERSION_3_0_0)
+ .templateLoader(new ClassTemplateLoader(EncodingOverrideTest.class, ""))
+ .sourceEncoding(charset)
+ .build();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java b/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
index a82b29c..b79559c 100644
--- a/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
+++ b/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
@@ -32,6 +32,7 @@ import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.impl.SimpleScalar;
import org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader;
import org.apache.freemarker.test.TemplateTest;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
public class EnvironmentGetTemplateVariantsTest extends TemplateTest {
@@ -187,10 +188,10 @@ public class EnvironmentGetTemplateVariantsTest extends TemplateTest {
}
private Configuration createConfiguration(Version iciVersion) {
- Configuration cfg = new Configuration(iciVersion);
- cfg.setTemplateLoader(TEMPLATES);
- cfg.setWhitespaceStripping(false);
- return cfg;
+ return new TestConfigurationBuilder(iciVersion)
+ .templateLoader(TEMPLATES)
+ .whitespaceStripping(false)
+ .build();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/ExceptionTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/ExceptionTest.java b/src/test/java/org/apache/freemarker/core/ExceptionTest.java
index e70869e..19c3b6e 100644
--- a/src/test/java/org/apache/freemarker/core/ExceptionTest.java
+++ b/src/test/java/org/apache/freemarker/core/ExceptionTest.java
@@ -34,6 +34,7 @@ import java.util.Locale;
import org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader;
import org.apache.freemarker.core.util._NullWriter;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import junit.framework.TestCase;
public class ExceptionTest extends TestCase {
@@ -43,9 +44,8 @@ public class ExceptionTest extends TestCase {
}
public void testParseExceptionSerializable() throws IOException, ClassNotFoundException {
- Configuration cfg = new Configuration();
try {
- new Template("<string>", new StringReader("<@>"), cfg);
+ new Template(null, new StringReader("<@>"), new TestConfigurationBuilder().build());
fail();
} catch (ParseException e) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
@@ -55,8 +55,8 @@ public class ExceptionTest extends TestCase {
}
public void testTemplateErrorSerializable() throws IOException, ClassNotFoundException {
- Configuration cfg = new Configuration();
- Template tmp = new Template("<string>", new StringReader("${noSuchVar}"), cfg);
+ Template tmp = new Template(null, new StringReader("${noSuchVar}"),
+ new TestConfigurationBuilder().build());
try {
tmp.process(Collections.EMPTY_MAP, new StringWriter());
fail();
@@ -69,13 +69,11 @@ public class ExceptionTest extends TestCase {
@SuppressWarnings("boxing")
public void testTemplateExceptionLocationInformation() throws IOException {
- Configuration cfg = new Configuration();
-
StringTemplateLoader tl = new StringTemplateLoader();
tl.putTemplate("foo_en.ftl", "\n\nxxx${noSuchVariable}");
- cfg.setTemplateLoader(tl);
-
- Template t = cfg.getTemplate("foo.ftl", Locale.US);
+
+ Template t = new TestConfigurationBuilder().templateLoader(tl).build()
+ .getTemplate("foo.ftl", Locale.US);
try {
t.process(null, _NullWriter.INSTANCE);
fail();
@@ -94,14 +92,12 @@ public class ExceptionTest extends TestCase {
@SuppressWarnings("cast")
public void testParseExceptionLocationInformation() throws IOException {
- Configuration cfg = new Configuration(Configuration.VERSION_3_0_0);
-
StringTemplateLoader tl = new StringTemplateLoader();
tl.putTemplate("foo_en.ftl", "\n\nxxx<#noSuchDirective>");
- cfg.setTemplateLoader(tl);
-
+
try {
- cfg.getTemplate("foo.ftl", Locale.US);
+ new TestConfigurationBuilder().templateLoader(tl).build()
+ .getTemplate("foo.ftl", Locale.US);
fail();
} catch (ParseException e) {
System.out.println(e.getMessage());
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/GetSourceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/GetSourceTest.java b/src/test/java/org/apache/freemarker/core/GetSourceTest.java
index 81feec6..1462bfc 100644
--- a/src/test/java/org/apache/freemarker/core/GetSourceTest.java
+++ b/src/test/java/org/apache/freemarker/core/GetSourceTest.java
@@ -20,30 +20,30 @@ package org.apache.freemarker.core;
import static org.junit.Assert.*;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
public class GetSourceTest {
@Test
public void testGetSource() throws Exception {
- Configuration cfg = new Configuration(Configuration.VERSION_3_0_0);
-
{
// Note: Default tab size is 8.
- Template t = new Template(null, "a\n\tb\nc", cfg);
+ Template t = new Template(null, "a\n\tb\nc",
+ new TestConfigurationBuilder().build());
// A historical quirk we keep for B.C.: it repaces tabs with spaces.
assertEquals("a\n b\nc", t.getSource(1, 1, 1, 3));
}
{
- cfg.setTabSize(4);
- Template t = new Template(null, "a\n\tb\nc", cfg);
+ Template t = new Template(null, "a\n\tb\nc",
+ new TestConfigurationBuilder().tabSize(4).build());
assertEquals("a\n b\nc", t.getSource(1, 1, 1, 3));
}
{
- cfg.setTabSize(1);
- Template t = new Template(null, "a\n\tb\nc", cfg);
+ Template t = new Template(null, "a\n\tb\nc",
+ new TestConfigurationBuilder().tabSize(1).build());
// If tab size is 1, it behaves as it always should have: it keeps the tab.
assertEquals("a\n\tb\nc", t.getSource(1, 1, 1, 3));
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/HeaderParsingTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/HeaderParsingTest.java b/src/test/java/org/apache/freemarker/core/HeaderParsingTest.java
index 87bae62..6f8851d 100644
--- a/src/test/java/org/apache/freemarker/core/HeaderParsingTest.java
+++ b/src/test/java/org/apache/freemarker/core/HeaderParsingTest.java
@@ -22,16 +22,14 @@ package org.apache.freemarker.core;
import java.io.IOException;
import org.apache.freemarker.test.TemplateTest;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
public class HeaderParsingTest extends TemplateTest {
- private final Configuration cfgStripWS = new Configuration(Configuration.VERSION_3_0_0);
- private final Configuration cfgNoStripWS = new Configuration(Configuration.VERSION_3_0_0);
- {
- cfgNoStripWS.setWhitespaceStripping(false);
- }
-
+ private final Configuration cfgStripWS = new TestConfigurationBuilder().build();
+ private final Configuration cfgNoStripWS = new TestConfigurationBuilder().whitespaceStripping(false).build();
+
@Test
public void test() throws IOException, TemplateException {
assertOutput("<#ftl>text", "text", "text");
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/IncludeAndImportConfigurableLayersTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/IncludeAndImportConfigurableLayersTest.java b/src/test/java/org/apache/freemarker/core/IncludeAndImportConfigurableLayersTest.java
index 7d37d95..738b4de 100644
--- a/src/test/java/org/apache/freemarker/core/IncludeAndImportConfigurableLayersTest.java
+++ b/src/test/java/org/apache/freemarker/core/IncludeAndImportConfigurableLayersTest.java
@@ -24,20 +24,26 @@ import java.io.StringWriter;
import org.apache.freemarker.core.templateresolver.ConditionalTemplateConfigurationFactory;
import org.apache.freemarker.core.templateresolver.FileNameGlobMatcher;
-import org.apache.freemarker.test.TemplateTest;
+import org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
-public class IncludeAndImportConfigurableLayersTest extends TemplateTest {
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+public class IncludeAndImportConfigurableLayersTest {
@Test
public void test3LayerImportNoClashes() throws Exception {
- Configuration cfg = getConfiguration();
- cfg.addAutoImport("t1", "t1.ftl");
-
- TemplateConfiguration.Builder tcb = new TemplateConfiguration.Builder();
- tcb.addAutoImport("t2", "t2.ftl");
- cfg.setTemplateConfigurations(
- new ConditionalTemplateConfigurationFactory(new FileNameGlobMatcher("main.ftl"), tcb.build()));
+ TestConfigurationBuilder cfgB = createConfigurationBuilder()
+ .autoImports(ImmutableMap.of("t1", "t1.ftl"))
+ .templateConfigurations(
+ new ConditionalTemplateConfigurationFactory(
+ new FileNameGlobMatcher("main.ftl"),
+ new TemplateConfiguration.Builder()
+ .autoImports(ImmutableMap.of("t2", "t2.ftl"))
+ .build()));
+ Configuration cfg = cfgB.build();
{
Template t = cfg.getTemplate("main.ftl");
@@ -68,8 +74,9 @@ public class IncludeAndImportConfigurableLayersTest extends TemplateTest {
assertEquals("In main2: t1;t3;", sw.toString());
}
- cfg.removeAutoImport("t1");
-
+ cfgB.removeAutoImport("t1");
+ cfg = cfgB.build();
+
{
Template t = cfg.getTemplate("main.ftl");
StringWriter sw = new StringWriter();
@@ -83,15 +90,18 @@ public class IncludeAndImportConfigurableLayersTest extends TemplateTest {
@Test
public void test3LayerImportClashes() throws Exception {
- Configuration cfg = getConfiguration();
- cfg.addAutoImport("t1", "t1.ftl");
- cfg.addAutoImport("t2", "t2.ftl");
- cfg.addAutoImport("t3", "t3.ftl");
-
- TemplateConfiguration.Builder tcb = new TemplateConfiguration.Builder();
- tcb.addAutoImport("t2", "t2b.ftl");
- cfg.setTemplateConfigurations(
- new ConditionalTemplateConfigurationFactory(new FileNameGlobMatcher("main.ftl"), tcb.build()));
+ Configuration cfg = createConfigurationBuilder()
+ .autoImports(ImmutableMap.of(
+ "t1", "t1.ftl",
+ "t2", "t2.ftl",
+ "t3", "t3.ftl"))
+ .templateConfigurations(
+ new ConditionalTemplateConfigurationFactory(
+ new FileNameGlobMatcher("main.ftl"),
+ new TemplateConfiguration.Builder()
+ .autoImports(ImmutableMap.of("t2", "t2b.ftl"))
+ .build()))
+ .build();
{
Template t = cfg.getTemplate("main.ftl");
@@ -125,13 +135,16 @@ public class IncludeAndImportConfigurableLayersTest extends TemplateTest {
@Test
public void test3LayerIncludesNoClashes() throws Exception {
- Configuration cfg = getConfiguration();
- cfg.addAutoInclude("t1.ftl");
+ TestConfigurationBuilder cfgB = createConfigurationBuilder()
+ .autoIncludes(ImmutableList.of("t1.ftl"))
+ .templateConfigurations(
+ new ConditionalTemplateConfigurationFactory(
+ new FileNameGlobMatcher("main.ftl"),
+ new TemplateConfiguration.Builder()
+ .autoIncludes(ImmutableList.of("t2.ftl"))
+ .build()));
- TemplateConfiguration.Builder tcb = new TemplateConfiguration.Builder();
- tcb.addAutoInclude("t2.ftl");
- cfg.setTemplateConfigurations(
- new ConditionalTemplateConfigurationFactory(new FileNameGlobMatcher("main.ftl"), tcb.build()));
+ Configuration cfg = cfgB.build();
{
Template t = cfg.getTemplate("main.ftl");
@@ -162,8 +175,9 @@ public class IncludeAndImportConfigurableLayersTest extends TemplateTest {
assertEquals("T1;T3;In main2: t1;t3;", sw.toString());
}
- cfg.removeAutoInclude("t1.ftl");
-
+ cfgB.removeAutoInclude("t1.ftl");
+ cfg = cfgB.build();
+
{
Template t = cfg.getTemplate("main.ftl");
StringWriter sw = new StringWriter();
@@ -177,15 +191,17 @@ public class IncludeAndImportConfigurableLayersTest extends TemplateTest {
@Test
public void test3LayerIncludeClashes() throws Exception {
- Configuration cfg = getConfiguration();
- cfg.addAutoInclude("t1.ftl");
- cfg.addAutoInclude("t2.ftl");
- cfg.addAutoInclude("t3.ftl");
-
- TemplateConfiguration.Builder tcb = new TemplateConfiguration.Builder();
- tcb.addAutoInclude("t2.ftl");
- cfg.setTemplateConfigurations(
- new ConditionalTemplateConfigurationFactory(new FileNameGlobMatcher("main.ftl"), tcb.build()));
+ Configuration cfg = createConfigurationBuilder()
+ .autoIncludes(ImmutableList.of(
+ "t1.ftl",
+ "t2.ftl",
+ "t3.ftl"))
+ .templateConfigurations(new ConditionalTemplateConfigurationFactory(
+ new FileNameGlobMatcher("main.ftl"),
+ new TemplateConfiguration.Builder()
+ .autoIncludes(ImmutableList.of("t2.ftl"))
+ .build()))
+ .build();
{
Template t = cfg.getTemplate("main.ftl");
@@ -229,15 +245,15 @@ public class IncludeAndImportConfigurableLayersTest extends TemplateTest {
@Test
public void test3LayerIncludesClashes2() throws Exception {
- Configuration cfg = getConfiguration();
- cfg.addAutoInclude("t1.ftl");
- cfg.addAutoInclude("t1.ftl");
-
- TemplateConfiguration.Builder tcb = new TemplateConfiguration.Builder();
- tcb.addAutoInclude("t2.ftl");
- tcb.addAutoInclude("t2.ftl");
- cfg.setTemplateConfigurations(
- new ConditionalTemplateConfigurationFactory(new FileNameGlobMatcher("main.ftl"), tcb.build()));
+ Configuration cfg = createConfigurationBuilder()
+ .autoIncludes(ImmutableList.of("t1.ftl", "t1.ftl"))
+ .templateConfigurations(
+ new ConditionalTemplateConfigurationFactory(
+ new FileNameGlobMatcher("main.ftl"),
+ new TemplateConfiguration.Builder()
+ .autoIncludes(ImmutableList.of("t2.ftl", "t2.ftl"))
+ .build()))
+ .build();
{
Template t = cfg.getTemplate("main.ftl");
@@ -254,39 +270,45 @@ public class IncludeAndImportConfigurableLayersTest extends TemplateTest {
}
@Test
- public void test3LayerLazyness() throws Exception {
+ public void test3LayerLaziness() throws Exception {
for (Class<?> layer : new Class<?>[] { Configuration.class, Template.class, Environment.class }) {
- test3LayerLazyness(layer, null, null, false, "t1;t2;");
- test3LayerLazyness(layer, null, null, true, "t1;t2;");
- test3LayerLazyness(layer, null, false, true, "t1;t2;");
- test3LayerLazyness(layer, null, true, true, "t2;");
+ test3LayerLaziness(layer, null, null, false, "t1;t2;");
+ test3LayerLaziness(layer, null, null, true, "t1;t2;");
+ test3LayerLaziness(layer, null, false, true, "t1;t2;");
+ test3LayerLaziness(layer, null, true, true, "t2;");
- test3LayerLazyness(layer, false, null, false, "t1;t2;");
- test3LayerLazyness(layer, false, null, true, "t1;t2;");
- test3LayerLazyness(layer, false, false, true, "t1;t2;");
- test3LayerLazyness(layer, false, true, true, "t2;");
+ test3LayerLaziness(layer, false, null, false, "t1;t2;");
+ test3LayerLaziness(layer, false, null, true, "t1;t2;");
+ test3LayerLaziness(layer, false, false, true, "t1;t2;");
+ test3LayerLaziness(layer, false, true, true, "t2;");
- test3LayerLazyness(layer, true, null, false, "");
- test3LayerLazyness(layer, true, null, true, "");
- test3LayerLazyness(layer, true, false, true, "t1;");
- test3LayerLazyness(layer, true, true, true, "");
+ test3LayerLaziness(layer, true, null, false, "");
+ test3LayerLaziness(layer, true, null, true, "");
+ test3LayerLaziness(layer, true, false, true, "t1;");
+ test3LayerLaziness(layer, true, true, true, "");
}
}
- private void test3LayerLazyness(
+ private void test3LayerLaziness(
Class<?> layer,
Boolean lazyImports,
Boolean lazyAutoImports, boolean setLazyAutoImports,
String expectedOutput)
throws Exception {
- dropConfiguration();
- Configuration cfg = getConfiguration();
- cfg.addAutoImport("t1", "t1.ftl");
+ Configuration cfg;
+ {
+ TestConfigurationBuilder cfgB = createConfigurationBuilder()
+ .autoImports(ImmutableMap.of("t1", "t1.ftl"));
+ if (layer == Configuration.class) {
+ setLazinessOfConfigurable(cfgB, lazyImports, lazyAutoImports, setLazyAutoImports);
+ }
+ cfg = cfgB.build();
+ }
TemplateConfiguration tc;
if (layer == Template.class) {
TemplateConfiguration.Builder tcb = new TemplateConfiguration.Builder();
- setLazynessOfConfigurable(tcb, lazyImports, lazyAutoImports, setLazyAutoImports);
+ setLazinessOfConfigurable(tcb, lazyImports, lazyAutoImports, setLazyAutoImports);
tc = tcb.build();
} else {
tc = null;
@@ -294,21 +316,17 @@ public class IncludeAndImportConfigurableLayersTest extends TemplateTest {
Template t = new Template(null, "<#import 't2.ftl' as t2>${loaded!}", cfg, tc);
StringWriter sw = new StringWriter();
- Environment env = t.createProcessingEnvironment(null, sw);
- if (layer == Configuration.class) {
- setLazynessOfConfigurable(cfg, lazyImports, lazyAutoImports, setLazyAutoImports);
- } else if (layer == Environment.class) {
- setLazynessOfConfigurable(env, lazyImports, lazyAutoImports, setLazyAutoImports);
- } else if (layer != Template.class) {
- throw new IllegalArgumentException();
+ Environment env = t.createProcessingEnvironment(null, sw);
+ if (layer == Environment.class) {
+ setLazinessOfConfigurable(env, lazyImports, lazyAutoImports, setLazyAutoImports);
}
env.process();
assertEquals(expectedOutput, sw.toString());
}
- private void setLazynessOfConfigurable(
+ private void setLazinessOfConfigurable(
MutableProcessingConfiguration<?> cfg,
Boolean lazyImports, Boolean lazyAutoImports, boolean setLazyAutoImports) {
if (lazyImports != null) {
@@ -319,21 +337,18 @@ public class IncludeAndImportConfigurableLayersTest extends TemplateTest {
}
}
- @Override
- protected Configuration createConfiguration() throws Exception {
- return new Configuration(Configuration.VERSION_3_0_0);
- }
+ private TestConfigurationBuilder createConfigurationBuilder() {
+ StringTemplateLoader loader = new StringTemplateLoader();
+ loader.putTemplate("main.ftl", "In main: ${loaded}");
+ loader.putTemplate("main2.ftl", "In main2: ${loaded}");
+ loader.putTemplate("t1.ftl", "<#global loaded = (loaded!) + 't1;'>T1;");
+ loader.putTemplate("t2.ftl", "<#global loaded = (loaded!) + 't2;'>T2;");
+ loader.putTemplate("t3.ftl", "<#global loaded = (loaded!) + 't3;'>T3;");
+ loader.putTemplate("t1b.ftl", "<#global loaded = (loaded!) + 't1b;'>T1b;");
+ loader.putTemplate("t2b.ftl", "<#global loaded = (loaded!) + 't2b;'>T2b;");
+ loader.putTemplate("t3b.ftl", "<#global loaded = (loaded!) + 't3b;'>T3b;");
- @Override
- protected void addCommonTemplates() {
- addTemplate("main.ftl", "In main: ${loaded}");
- addTemplate("main2.ftl", "In main2: ${loaded}");
- addTemplate("t1.ftl", "<#global loaded = (loaded!) + 't1;'>T1;");
- addTemplate("t2.ftl", "<#global loaded = (loaded!) + 't2;'>T2;");
- addTemplate("t3.ftl", "<#global loaded = (loaded!) + 't3;'>T3;");
- addTemplate("t1b.ftl", "<#global loaded = (loaded!) + 't1b;'>T1b;");
- addTemplate("t2b.ftl", "<#global loaded = (loaded!) + 't2b;'>T2b;");
- addTemplate("t3b.ftl", "<#global loaded = (loaded!) + 't3b;'>T3b;");
+ return new TestConfigurationBuilder().templateLoader(loader);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/IncludeAndImportTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/IncludeAndImportTest.java b/src/test/java/org/apache/freemarker/core/IncludeAndImportTest.java
index d35003d..fa767ff 100644
--- a/src/test/java/org/apache/freemarker/core/IncludeAndImportTest.java
+++ b/src/test/java/org/apache/freemarker/core/IncludeAndImportTest.java
@@ -29,14 +29,17 @@ import org.apache.freemarker.core.Environment.LazilyInitializedNamespace;
import org.apache.freemarker.core.Environment.Namespace;
import org.apache.freemarker.core.model.WrappingTemplateModel;
import org.apache.freemarker.test.TemplateTest;
-import org.junit.Before;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
@SuppressWarnings("boxing")
public class IncludeAndImportTest extends TemplateTest {
- @Before
- public void setup() {
+ @Override
+ protected void addCommonTemplates() {
addTemplate("inc1.ftl", "[inc1]<#global inc1Cnt = (inc1Cnt!0) + 1><#global history = (history!) + 'I'>");
addTemplate("inc2.ftl", "[inc2]");
addTemplate("inc3.ftl", "[inc3]");
@@ -90,10 +93,15 @@ public class IncludeAndImportTest extends TemplateTest {
*/
@Test
public void autoIncludeAndAutoImport() throws IOException, TemplateException {
- getConfiguration().addAutoInclude("inc1.ftl");
- getConfiguration().addAutoInclude("inc2.ftl");
- getConfiguration().addAutoImport("lib1", "lib1.ftl");
- getConfiguration().addAutoImport("lib2", "lib2CallsLib1.ftl");
+ setConfiguration(new TestConfigurationBuilder()
+ .autoImports(ImmutableMap.of(
+ "lib1", "lib1.ftl",
+ "lib2", "lib2CallsLib1.ftl"
+ ))
+ .autoIncludes(ImmutableList.of(
+ "inc1.ftl",
+ "inc2.ftl"))
+ .build());
assertOutput(
"<#include 'inc3.ftl'>[main] ${inc1Cnt}, ${history}, <@lib1.m/>, <@lib2.m/>",
"[inc1][inc2][inc3][main] 1, L1L2I, In lib1, In lib2 (In lib1)");
@@ -130,7 +138,7 @@ public class IncludeAndImportTest extends TemplateTest {
assertOutput(ftl, "In lib2, In lib1; L1L2L3");
- getConfiguration().setLazyImports(true);
+ setConfiguration(new TestConfigurationBuilder().lazyImports(true).build());
assertOutput(ftl, "In lib2, In lib1; L2L1");
assertOutput(ftlImports + "<@l3.m/>, " + ftlCalls, "In lib3 (In lib1), In lib2, In lib1; L3L1L2");
@@ -138,7 +146,7 @@ public class IncludeAndImportTest extends TemplateTest {
@Test
public void lazyImportAndLocale() throws IOException, TemplateException {
- getConfiguration().setLazyImports(true);
+ setConfiguration(new TestConfigurationBuilder().lazyImports(true).build());
assertOutput("<#setting locale = 'de_DE'><#import 'lib.ftl' as lib>"
+ "[${history!}] "
+ "<#setting locale = 'en'>"
@@ -148,47 +156,59 @@ public class IncludeAndImportTest extends TemplateTest {
@Test
public void lazyAutoImportSettings() throws IOException, TemplateException {
- Configuration cfg = getConfiguration();
- cfg.addAutoImport("l1", "lib1.ftl");
- cfg.addAutoImport("l2", "lib2.ftl");
- cfg.addAutoImport("l3", "lib3.ftl");
-
+ TestConfigurationBuilder cfgB = new TestConfigurationBuilder()
+ .autoImports(ImmutableMap.of(
+ "l1", "lib1.ftl",
+ "l2", "lib2.ftl",
+ "l3", "lib3.ftl"
+ ));
+
String ftl = "<@l2.m/>, <@l1.m/>; ${history}";
String expectedEagerOutput = "In lib2, In lib1; L1L2L3";
String expecedLazyOutput = "In lib2, In lib1; L2L1";
-
+
+ setConfiguration(cfgB.build());
assertOutput(ftl, expectedEagerOutput);
- cfg.setLazyImports(true);
+ cfgB.setLazyImports(true);
+ setConfiguration(cfgB.build());
assertOutput(ftl, expecedLazyOutput);
- cfg.setLazyImports(false);
+ cfgB.setLazyImports(false);
+ setConfiguration(cfgB.build());
assertOutput(ftl, expectedEagerOutput);
- cfg.setLazyAutoImports(true);
+ cfgB.setLazyAutoImports(true);
+ setConfiguration(cfgB.build());
assertOutput(ftl, expecedLazyOutput);
- cfg.setLazyAutoImports(null);
+ cfgB.setLazyAutoImports(null);
+ setConfiguration(cfgB.build());
assertOutput(ftl, expectedEagerOutput);
- cfg.setLazyImports(true);
- cfg.setLazyAutoImports(false);
+ cfgB.setLazyImports(true);
+ cfgB.setLazyAutoImports(false);
+ setConfiguration(cfgB.build());
assertOutput(ftl, expectedEagerOutput);
}
@Test
public void lazyAutoImportMixedWithManualImport() throws IOException, TemplateException {
- Configuration cfg = getConfiguration();
- cfg.addAutoImport("l1", "lib1.ftl");
- cfg.addAutoImport("l2", "/./lib2.ftl");
- cfg.addAutoImport("l3", "lib3.ftl");
- cfg.setLazyAutoImports(true);
+ TestConfigurationBuilder cfgB = new TestConfigurationBuilder()
+ .autoImports(ImmutableMap.of(
+ "l1", "lib1.ftl",
+ "l2", "/./lib2.ftl",
+ "l3", "lib3.ftl"))
+ .lazyAutoImports(true);
String ftl = "<@l2.m/>, <@l1.m/>; ${history}";
String expectOutputWithoutHistory = "In lib2, In lib1; ";
String expecedOutput = expectOutputWithoutHistory + "L2L1";
-
+
+ setConfiguration(cfgB.build());
assertOutput(ftl, expecedOutput);
assertOutput("<#import 'lib1.ftl' as l1>" + ftl, expectOutputWithoutHistory + "L1L2");
assertOutput("<#import './x/../lib1.ftl' as l1>" + ftl, expectOutputWithoutHistory + "L1L2");
assertOutput("<#import 'lib2.ftl' as l2>" + ftl, expecedOutput);
assertOutput("<#import 'lib3.ftl' as l3>" + ftl, expectOutputWithoutHistory + "L3L2L1");
- cfg.setLazyImports(true);
+
+ cfgB.setLazyImports(true);
+ setConfiguration(cfgB.build());
assertOutput("<#import 'lib1.ftl' as l1>" + ftl, expecedOutput);
assertOutput("<#import './x/../lib1.ftl' as l1>" + ftl, expecedOutput);
assertOutput("<#import 'lib2.ftl' as l2>" + ftl, expecedOutput);
@@ -197,12 +217,14 @@ public class IncludeAndImportTest extends TemplateTest {
@Test
public void lazyImportErrors() throws IOException, TemplateException {
- Configuration cfg = getConfiguration();
- cfg.setLazyImports(true);
-
+ TestConfigurationBuilder cfgB = new TestConfigurationBuilder();
+ cfgB.setLazyImports(true);
+
+ setConfiguration(cfgB.build());
assertOutput("<#import 'noSuchTemplate.ftl' as wrong>x", "x");
- cfg.addAutoImport("wrong", "noSuchTemplate.ftl");
+ cfgB.addAutoImport("wrong", "noSuchTemplate.ftl");
+ setConfiguration(cfgB.build());
assertOutput("x", "x");
try {
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/IncudeFromNamelessTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/IncudeFromNamelessTest.java b/src/test/java/org/apache/freemarker/core/IncudeFromNamelessTest.java
index b9848a5..f4908b8 100644
--- a/src/test/java/org/apache/freemarker/core/IncudeFromNamelessTest.java
+++ b/src/test/java/org/apache/freemarker/core/IncudeFromNamelessTest.java
@@ -24,6 +24,7 @@ import java.io.StringReader;
import java.io.StringWriter;
import org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import junit.framework.TestCase;
@@ -34,13 +35,13 @@ public class IncudeFromNamelessTest extends TestCase {
}
public void test() throws IOException, TemplateException {
- Configuration cfg = new Configuration();
- StringTemplateLoader tl = new StringTemplateLoader();
- tl.putTemplate("i.ftl", "[i]");
- tl.putTemplate("sub/i.ftl", "[sub/i]");
- tl.putTemplate("import.ftl", "<#assign x = 1>");
- cfg.setTemplateLoader(tl);
-
+ StringTemplateLoader loader = new StringTemplateLoader();
+ loader.putTemplate("i.ftl", "[i]");
+ loader.putTemplate("sub/i.ftl", "[sub/i]");
+ loader.putTemplate("import.ftl", "<#assign x = 1>");
+
+ Configuration cfg = new TestConfigurationBuilder().templateLoader(loader).build();
+
Template t = new Template(null, new StringReader(
"<#include 'i.ftl'>\n"
+ "<#include '/i.ftl'>\n"
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/InterpretAndEvalTemplateNameTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/InterpretAndEvalTemplateNameTest.java b/src/test/java/org/apache/freemarker/core/InterpretAndEvalTemplateNameTest.java
index 0d5e20b..ff5897f 100644
--- a/src/test/java/org/apache/freemarker/core/InterpretAndEvalTemplateNameTest.java
+++ b/src/test/java/org/apache/freemarker/core/InterpretAndEvalTemplateNameTest.java
@@ -22,6 +22,7 @@ import java.io.IOException;
import org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader;
import org.apache.freemarker.test.TemplateTest;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
/**
@@ -48,8 +49,8 @@ public class InterpretAndEvalTemplateNameTest extends TemplateTest {
+ "i{<@[r'" + getTemplateNames + " {<#include \"a.ftl\">','named_interpreted']?interpret />}}");
tl.putTemplate("sub/a.ftl", "In sub/a.ftl, " + getTemplateNames);
tl.putTemplate("a.ftl", "In a.ftl");
-
- getConfiguration().setTemplateLoader(tl);
+
+ setConfiguration(new TestConfigurationBuilder().templateLoader(tl).build());
assertOutputForNamed("main.ftl",
"c=main.ftl, m=main.ftl "
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/InterpretSettingInheritanceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/InterpretSettingInheritanceTest.java b/src/test/java/org/apache/freemarker/core/InterpretSettingInheritanceTest.java
index cd0a912..2d061d7 100644
--- a/src/test/java/org/apache/freemarker/core/InterpretSettingInheritanceTest.java
+++ b/src/test/java/org/apache/freemarker/core/InterpretSettingInheritanceTest.java
@@ -21,6 +21,7 @@ package org.apache.freemarker.core;
import java.io.IOException;
import org.apache.freemarker.test.TemplateTest;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
/**
@@ -40,21 +41,25 @@ public class InterpretSettingInheritanceTest extends TemplateTest {
@Test
public void tagSyntaxTest() throws IOException, TemplateException {
- Configuration cfg = getConfiguration();
-
- cfg.setTagSyntax(Configuration.ANGLE_BRACKET_TAG_SYNTAX);
+ setConfiguration(new TestConfigurationBuilder()
+ .tagSyntax(ParsingConfiguration.ANGLE_BRACKET_TAG_SYNTAX)
+ .build());
assertOutput(FTL_S_A_S, OUT_A_S_WHEN_SYNTAX_IS_A);
assertOutput(FTL_S_S_A, OUT_S_A_WHEN_SYNTAX_IS_A);
assertOutput(FTL_A_A_S, OUT_A_S_WHEN_SYNTAX_IS_A);
assertOutput(FTL_A_S_A, OUT_S_A_WHEN_SYNTAX_IS_A);
-
- cfg.setTagSyntax(Configuration.SQUARE_BRACKET_TAG_SYNTAX);
+
+ setConfiguration(new TestConfigurationBuilder()
+ .tagSyntax(ParsingConfiguration.SQUARE_BRACKET_TAG_SYNTAX)
+ .build());
assertOutput(FTL_S_A_S, OUT_A_S_WHEN_SYNTAX_IS_S);
assertOutput(FTL_S_S_A, OUT_S_A_WHEN_SYNTAX_IS_S);
assertOutput(FTL_A_A_S, OUT_A_S_WHEN_SYNTAX_IS_S);
assertOutput(FTL_A_S_A, OUT_S_A_WHEN_SYNTAX_IS_S);
-
- cfg.setTagSyntax(Configuration.AUTO_DETECT_TAG_SYNTAX);
+
+ setConfiguration(new TestConfigurationBuilder()
+ .tagSyntax(ParsingConfiguration.AUTO_DETECT_TAG_SYNTAX)
+ .build());
assertOutput(FTL_S_A_S, OUT_A_S_WHEN_SYNTAX_IS_A);
assertOutput(FTL_S_S_A, OUT_S_A_WHEN_SYNTAX_IS_S);
assertOutput(FTL_A_A_S, OUT_A_S_WHEN_SYNTAX_IS_A);
@@ -65,13 +70,17 @@ public class InterpretSettingInheritanceTest extends TemplateTest {
@Test
public void whitespaceStrippingTest() throws IOException, TemplateException {
Configuration cfg = getConfiguration();
-
- cfg.setWhitespaceStripping(true);
+
+ setConfiguration(new TestConfigurationBuilder()
+ .whitespaceStripping(true)
+ .build());
assertOutput("<#assign x = 1>\nX<@'<#assign x = 1>\\nY'?interpret />", "XY");
assertOutput("<#ftl stripWhitespace=false><#assign x = 1>\nX<@'<#assign x = 1>\\nY'?interpret />", "\nXY");
assertOutput("<#assign x = 1>\nX<@'<#ftl stripWhitespace=false><#assign x = 1>\\nY'?interpret />", "X\nY");
-
- cfg.setWhitespaceStripping(false);
+
+ setConfiguration(new TestConfigurationBuilder()
+ .whitespaceStripping(false)
+ .build());
assertOutput("<#assign x = 1>\nX<@'<#assign x = 1>\\nY'?interpret />", "\nX\nY");
assertOutput("<#ftl stripWhitespace=true><#assign x = 1>\nX<@'<#assign x = 1>\\nY'?interpret />", "X\nY");
assertOutput("<#assign x = 1>\nX<@'<#ftl stripWhitespace=true><#assign x = 1>\\nY'?interpret />", "\nXY");
@@ -79,13 +88,15 @@ public class InterpretSettingInheritanceTest extends TemplateTest {
@Test
public void evalTest() throws IOException, TemplateException {
- Configuration cfg = getConfiguration();
-
- cfg.setTagSyntax(Configuration.ANGLE_BRACKET_TAG_SYNTAX);
+ setConfiguration(new TestConfigurationBuilder()
+ .tagSyntax(ParsingConfiguration.ANGLE_BRACKET_TAG_SYNTAX)
+ .build());
assertOutput("<@'\"[#if true]s[/#if]<#if true>a</#if>\"?interpret'?eval />", OUT_S_A_WHEN_SYNTAX_IS_A);
assertOutput("[#ftl][@'\"[#if true]s[/#if]<#if true>a</#if>\"?interpret'?eval /]", OUT_S_A_WHEN_SYNTAX_IS_A);
-
- cfg.setTagSyntax(Configuration.SQUARE_BRACKET_TAG_SYNTAX);
+
+ setConfiguration(new TestConfigurationBuilder()
+ .tagSyntax(ParsingConfiguration.SQUARE_BRACKET_TAG_SYNTAX)
+ .build());
assertOutput("[@'\"[#if true]s[/#if]<#if true>a</#if>\"?interpret'?eval /]", OUT_S_A_WHEN_SYNTAX_IS_S);
assertOutput("<#ftl><@'\"[#if true]s[/#if]<#if true>a</#if>\"?interpret'?eval />", OUT_S_A_WHEN_SYNTAX_IS_S);
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/JavaCCExceptionAsEOFFixTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/JavaCCExceptionAsEOFFixTest.java b/src/test/java/org/apache/freemarker/core/JavaCCExceptionAsEOFFixTest.java
index 0a74f96..0fa3f79 100644
--- a/src/test/java/org/apache/freemarker/core/JavaCCExceptionAsEOFFixTest.java
+++ b/src/test/java/org/apache/freemarker/core/JavaCCExceptionAsEOFFixTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.*;
import java.io.IOException;
import java.io.Reader;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Assert;
import org.junit.Test;
@@ -89,7 +90,7 @@ public class JavaCCExceptionAsEOFFixTest {
@Test
public void testIOException() throws IOException {
try {
- new Template(null, new FailingReader(new IOException("test")), new Configuration());
+ new Template(null, new FailingReader(new IOException("test")), new TestConfigurationBuilder().build());
fail();
} catch (IOException e) {
assertEquals("test", e.getMessage());
@@ -99,7 +100,7 @@ public class JavaCCExceptionAsEOFFixTest {
@Test
public void testRuntimeException() throws IOException {
try {
- new Template(null, new FailingReader(new NullPointerException("test")), new Configuration());
+ new Template(null, new FailingReader(new NullPointerException("test")), new TestConfigurationBuilder().build());
fail();
} catch (NullPointerException e) {
assertEquals("test", e.getMessage());
@@ -109,7 +110,7 @@ public class JavaCCExceptionAsEOFFixTest {
@Test
public void testError() throws IOException {
try {
- new Template(null, new FailingReader(new OutOfMemoryError("test")), new Configuration());
+ new Template(null, new FailingReader(new OutOfMemoryError("test")), new TestConfigurationBuilder().build());
fail();
} catch (OutOfMemoryError e) {
assertEquals("test", e.getMessage());
@@ -118,7 +119,7 @@ public class JavaCCExceptionAsEOFFixTest {
@Test
public void testNoException() throws IOException {
- Template t = new Template(null, new FailingReader(null), new Configuration());
+ Template t = new Template(null, new FailingReader(null), new TestConfigurationBuilder().build());
assertEquals("abc", t.toString());
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/MiscErrorMessagesTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/MiscErrorMessagesTest.java b/src/test/java/org/apache/freemarker/core/MiscErrorMessagesTest.java
index 438ee28..1903e05 100644
--- a/src/test/java/org/apache/freemarker/core/MiscErrorMessagesTest.java
+++ b/src/test/java/org/apache/freemarker/core/MiscErrorMessagesTest.java
@@ -21,6 +21,7 @@ package org.apache.freemarker.core;
import org.apache.freemarker.core.templateresolver.impl.DefaultTemplateNameFormat;
import org.apache.freemarker.test.TemplateTest;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
public class MiscErrorMessagesTest extends TemplateTest {
@@ -32,8 +33,8 @@ public class MiscErrorMessagesTest extends TemplateTest {
@Test
public void wrongTemplateNameFormat() {
- getConfiguration().setTemplateNameFormat(DefaultTemplateNameFormat.INSTANCE);
-
+ setConfiguration(new TestConfigurationBuilder().templateNameFormat(DefaultTemplateNameFormat.INSTANCE).build());
+
assertErrorContains("<#include 'foo:/bar:baaz'>", "Malformed template name", "':'");
assertErrorContains("<#include '../baaz'>", "Malformed template name", "root");
assertErrorContains("<#include '\u0000'>", "Malformed template name", "\\u0000");
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/MistakenlyPublicImportAPIsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/MistakenlyPublicImportAPIsTest.java b/src/test/java/org/apache/freemarker/core/MistakenlyPublicImportAPIsTest.java
index c5a025f..5fcee97 100644
--- a/src/test/java/org/apache/freemarker/core/MistakenlyPublicImportAPIsTest.java
+++ b/src/test/java/org/apache/freemarker/core/MistakenlyPublicImportAPIsTest.java
@@ -30,6 +30,7 @@ import org.apache.freemarker.core.Environment.Namespace;
import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader;
import org.apache.freemarker.core.util._NullWriter;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
/**
@@ -39,11 +40,11 @@ public class MistakenlyPublicImportAPIsTest {
@Test
public void testImportCopying() throws IOException, TemplateException {
- Configuration cfg = new Configuration(Configuration.VERSION_3_0_0);
StringTemplateLoader tl = new StringTemplateLoader();
tl.putTemplate("imp1", "<#macro m>1</#macro>");
tl.putTemplate("imp2", "<#assign x = 2><#macro m>${x}</#macro>");
- cfg.setTemplateLoader(tl);
+
+ Configuration cfg = new TestConfigurationBuilder().templateLoader(tl).build();
Template t1 = new Template(null, "<#import 'imp1' as i1><#import 'imp2' as i2>", cfg);
List<ASTDirImport> imports = t1.getImports();
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/MistakenlyPublicMacroAPIsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/MistakenlyPublicMacroAPIsTest.java b/src/test/java/org/apache/freemarker/core/MistakenlyPublicMacroAPIsTest.java
index f1eb7bd..9c87e61 100644
--- a/src/test/java/org/apache/freemarker/core/MistakenlyPublicMacroAPIsTest.java
+++ b/src/test/java/org/apache/freemarker/core/MistakenlyPublicMacroAPIsTest.java
@@ -28,6 +28,7 @@ import java.util.Map;
import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.util._NullWriter;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import org.junit.Test;
/**
@@ -35,7 +36,7 @@ import org.junit.Test;
*/
public class MistakenlyPublicMacroAPIsTest {
- private final Configuration cfg = new Configuration(Configuration.VERSION_3_0_0);
+ private final Configuration cfg = new TestConfigurationBuilder().build();
/**
* Getting the macros from one template, and adding them to another.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java b/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
index 40dfe13..d865deb 100644
--- a/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
+++ b/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
@@ -22,16 +22,15 @@ package org.apache.freemarker.core;
import java.io.IOException;
import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.util.FullyCustomObjectWrapper;
+import org.apache.freemarker.test.TestConfigurationBuilder;
+import org.apache.freemarker.test.util.EntirelyCustomObjectWrapper;
import org.junit.Test;
public class NewBiObjectWrapperRestrictionTest extends TemplateTest {
@Override
- protected Configuration createConfiguration() throws Exception {
- Configuration cfg = super.createConfiguration();
- cfg.setObjectWrapper(new FullyCustomObjectWrapper());
- return cfg;
+ protected Configuration createDefaultConfiguration() throws Exception {
+ return new TestConfigurationBuilder().objectWrapper(new EntirelyCustomObjectWrapper()).build();
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/ObjectBuilderSettingsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/ObjectBuilderSettingsTest.java b/src/test/java/org/apache/freemarker/core/ObjectBuilderSettingsTest.java
index 73e03f6..49534fa 100644
--- a/src/test/java/org/apache/freemarker/core/ObjectBuilderSettingsTest.java
+++ b/src/test/java/org/apache/freemarker/core/ObjectBuilderSettingsTest.java
@@ -356,7 +356,7 @@ public class ObjectBuilderSettingsTest {
@Test
public void configurationPropertiesTest() throws Exception {
- final Configuration cfg = new Configuration(Configuration.getVersion());
+ final Configuration.Builder cfgB = new Configuration.Builder(Configuration.getVersion());
{
Properties props = new Properties();
@@ -366,23 +366,23 @@ public class ObjectBuilderSettingsTest {
"org.apache.freemarker.core.ObjectBuilderSettingsTest$DummyArithmeticEngine");
props.setProperty(MutableProcessingConfiguration.TEMPLATE_EXCEPTION_HANDLER_KEY,
"org.apache.freemarker.core.ObjectBuilderSettingsTest$DummyTemplateExceptionHandler");
- props.setProperty(Configuration.CACHE_STORAGE_KEY,
+ props.setProperty(Configuration.ExtendableBuilder.CACHE_STORAGE_KEY,
"org.apache.freemarker.core.ObjectBuilderSettingsTest$DummyCacheStorage()");
props.setProperty(MutableProcessingConfiguration.NEW_BUILTIN_CLASS_RESOLVER_KEY,
"org.apache.freemarker.core.ObjectBuilderSettingsTest$DummyNewBuiltinClassResolver()");
- props.setProperty(Configuration.SOURCE_ENCODING_KEY, "utf-8");
- props.setProperty(Configuration.TEMPLATE_LOADER_KEY,
+ props.setProperty(Configuration.ExtendableBuilder.SOURCE_ENCODING_KEY, "utf-8");
+ props.setProperty(Configuration.ExtendableBuilder.TEMPLATE_LOADER_KEY,
"org.apache.freemarker.core.ObjectBuilderSettingsTest$DummyTemplateLoader()");
- cfg.setSettings(props);
- assertEquals(DefaultObjectWrapper.class, cfg.getObjectWrapper().getClass());
+ cfgB.setSettings(props);
+ assertEquals(DefaultObjectWrapper.class, cfgB.getObjectWrapper().getClass());
assertEquals(
- Configuration.VERSION_3_0_0, ((DefaultObjectWrapper) cfg.getObjectWrapper()).getIncompatibleImprovements());
- assertEquals(DummyArithmeticEngine.class, cfg.getArithmeticEngine().getClass());
- assertEquals(DummyTemplateExceptionHandler.class, cfg.getTemplateExceptionHandler().getClass());
- assertEquals(DummyCacheStorage.class, cfg.getCacheStorage().getClass());
- assertEquals(DummyNewBuiltinClassResolver.class, cfg.getNewBuiltinClassResolver().getClass());
- assertEquals(DummyTemplateLoader.class, cfg.getTemplateLoader().getClass());
- assertEquals(StandardCharsets.UTF_8, cfg.getSourceEncoding());
+ Configuration.VERSION_3_0_0, ((DefaultObjectWrapper) cfgB.getObjectWrapper()).getIncompatibleImprovements());
+ assertEquals(DummyArithmeticEngine.class, cfgB.getArithmeticEngine().getClass());
+ assertEquals(DummyTemplateExceptionHandler.class, cfgB.getTemplateExceptionHandler().getClass());
+ assertEquals(DummyCacheStorage.class, cfgB.getCacheStorage().getClass());
+ assertEquals(DummyNewBuiltinClassResolver.class, cfgB.getNewBuiltinClassResolver().getClass());
+ assertEquals(DummyTemplateLoader.class, cfgB.getTemplateLoader().getClass());
+ assertEquals(StandardCharsets.UTF_8, cfgB.getSourceEncoding());
}
{
@@ -392,19 +392,19 @@ public class ObjectBuilderSettingsTest {
"org.apache.freemarker.core.ObjectBuilderSettingsTest$DummyArithmeticEngine(x = 1)");
props.setProperty(MutableProcessingConfiguration.TEMPLATE_EXCEPTION_HANDLER_KEY,
"org.apache.freemarker.core.ObjectBuilderSettingsTest$DummyTemplateExceptionHandler(x = 1)");
- props.setProperty(Configuration.CACHE_STORAGE_KEY,
+ props.setProperty(Configuration.ExtendableBuilder.CACHE_STORAGE_KEY,
"soft: 500, strong: 100");
props.setProperty(MutableProcessingConfiguration.NEW_BUILTIN_CLASS_RESOLVER_KEY,
"allows_nothing");
- cfg.setSettings(props);
- assertEquals(DefaultObjectWrapper.class, cfg.getObjectWrapper().getClass());
- assertEquals(1, ((DummyArithmeticEngine) cfg.getArithmeticEngine()).getX());
- assertEquals(1, ((DummyTemplateExceptionHandler) cfg.getTemplateExceptionHandler()).getX());
+ cfgB.setSettings(props);
+ assertEquals(DefaultObjectWrapper.class, cfgB.getObjectWrapper().getClass());
+ assertEquals(1, ((DummyArithmeticEngine) cfgB.getArithmeticEngine()).getX());
+ assertEquals(1, ((DummyTemplateExceptionHandler) cfgB.getTemplateExceptionHandler()).getX());
assertEquals(Configuration.VERSION_3_0_0,
- ((DefaultObjectWrapper) cfg.getObjectWrapper()).getIncompatibleImprovements());
- assertEquals(500, ((MruCacheStorage) cfg.getCacheStorage()).getSoftSizeLimit());
- assertEquals(TemplateClassResolver.ALLOWS_NOTHING_RESOLVER, cfg.getNewBuiltinClassResolver());
- assertEquals(StandardCharsets.UTF_8, cfg.getSourceEncoding());
+ ((DefaultObjectWrapper) cfgB.getObjectWrapper()).getIncompatibleImprovements());
+ assertEquals(500, ((MruCacheStorage) cfgB.getCacheStorage()).getSoftSizeLimit());
+ assertEquals(TemplateClassResolver.ALLOWS_NOTHING_RESOLVER, cfgB.getNewBuiltinClassResolver());
+ assertEquals(StandardCharsets.UTF_8, cfgB.getSourceEncoding());
}
{
@@ -412,22 +412,22 @@ public class ObjectBuilderSettingsTest {
props.setProperty(MutableProcessingConfiguration.OBJECT_WRAPPER_KEY, "Default");
props.setProperty(MutableProcessingConfiguration.ARITHMETIC_ENGINE_KEY, "bigdecimal");
props.setProperty(MutableProcessingConfiguration.TEMPLATE_EXCEPTION_HANDLER_KEY, "rethrow");
- cfg.setSettings(props);
- assertEquals(DefaultObjectWrapper.class, cfg.getObjectWrapper().getClass());
- assertSame(BigDecimalArithmeticEngine.INSTANCE, cfg.getArithmeticEngine());
- assertSame(TemplateExceptionHandler.RETHROW_HANDLER, cfg.getTemplateExceptionHandler());
+ cfgB.setSettings(props);
+ assertEquals(DefaultObjectWrapper.class, cfgB.getObjectWrapper().getClass());
+ assertSame(BigDecimalArithmeticEngine.INSTANCE, cfgB.getArithmeticEngine());
+ assertSame(TemplateExceptionHandler.RETHROW_HANDLER, cfgB.getTemplateExceptionHandler());
assertEquals(Configuration.VERSION_3_0_0,
- ((DefaultObjectWrapper) cfg.getObjectWrapper()).getIncompatibleImprovements());
+ ((DefaultObjectWrapper) cfgB.getObjectWrapper()).getIncompatibleImprovements());
}
{
Properties props = new Properties();
props.setProperty(MutableProcessingConfiguration.OBJECT_WRAPPER_KEY, "DefaultObjectWrapper(3.0.0)");
- cfg.setSettings(props);
- assertEquals(DefaultObjectWrapper.class, cfg.getObjectWrapper().getClass());
+ cfgB.setSettings(props);
+ assertEquals(DefaultObjectWrapper.class, cfgB.getObjectWrapper().getClass());
assertEquals(
Configuration.VERSION_3_0_0,
- ((DefaultObjectWrapper) cfg.getObjectWrapper()).getIncompatibleImprovements());
+ ((DefaultObjectWrapper) cfgB.getObjectWrapper()).getIncompatibleImprovements());
}
}
@@ -911,7 +911,7 @@ public class ObjectBuilderSettingsTest {
assertEqualsEvaled(123, "org.apache.freemarker.core.ObjectBuilderSettingsTest$TestStaticFields.CONST");
// With shorthand class name:
- assertEqualsEvaled(Configuration.AUTO_DETECT_TAG_SYNTAX, "Configuration.AUTO_DETECT_TAG_SYNTAX");
+ assertEqualsEvaled(ParsingConfiguration.AUTO_DETECT_TAG_SYNTAX, "Configuration.AUTO_DETECT_TAG_SYNTAX");
try {
_ObjectBuilderSettingEvaluator.eval(
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7d61a45d/src/test/java/org/apache/freemarker/core/OptInTemplateClassResolverTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/OptInTemplateClassResolverTest.java b/src/test/java/org/apache/freemarker/core/OptInTemplateClassResolverTest.java
index 569b4c0..06e863c 100644
--- a/src/test/java/org/apache/freemarker/core/OptInTemplateClassResolverTest.java
+++ b/src/test/java/org/apache/freemarker/core/OptInTemplateClassResolverTest.java
@@ -25,6 +25,7 @@ import java.util.List;
import java.util.Set;
import org.apache.freemarker.core.util.OptInTemplateClassResolver;
+import org.apache.freemarker.test.TestConfigurationBuilder;
import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
@@ -51,10 +52,11 @@ public class OptInTemplateClassResolverTest extends TestCase {
private OptInTemplateClassResolver resolver = new OptInTemplateClassResolver(
ALLOWED_CLASSES, TRUSTED_TEMPLATES);
- private Configuration dummyCfg = new Configuration();
- private Template dummyTemp = Template.createPlainTextTemplate("foo.ftl", "", dummyCfg);
-
+
public void testOptIn() throws TemplateException {
+ Template dummyTemp = Template.createPlainTextTemplate("foo.ftl", "",
+ new TestConfigurationBuilder().build());
+
assertEquals(String.class, resolver.resolve("java.lang.String", null, dummyTemp));
assertEquals(Integer.class, resolver.resolve("java.lang.Integer", null, dummyTemp));
try {
@@ -66,18 +68,20 @@ public class OptInTemplateClassResolverTest extends TestCase {
}
public void testTrusted() throws TemplateException {
+ Configuration cfg = new TestConfigurationBuilder().build();
+
assertEquals(Long.class, resolver.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("lib/foo.ftl", "", dummyCfg)));
+ Template.createPlainTextTemplate("lib/foo.ftl", "", cfg)));
assertEquals(String.class, resolver.resolve("java.lang.String", null,
- Template.createPlainTextTemplate("lib/foo.ftl", "", dummyCfg)));
+ Template.createPlainTextTemplate("lib/foo.ftl", "", cfg)));
assertEquals(Long.class, resolver.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("/lib/foo.ftl", "", dummyCfg)));
+ Template.createPlainTextTemplate("/lib/foo.ftl", "", cfg)));
assertEquals(Long.class, resolver.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("include/foo.ftl", "", dummyCfg)));
+ Template.createPlainTextTemplate("include/foo.ftl", "", cfg)));
assertEquals(Long.class, resolver.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("trusted.ftl", "", dummyCfg)));
+ Template.createPlainTextTemplate("trusted.ftl", "", cfg)));
assertEquals(Long.class, resolver.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("/trusted.ftl", "", dummyCfg)));
+ Template.createPlainTextTemplate("/trusted.ftl", "", cfg)));
}
public void testCraftedTrusted() throws TemplateException {
@@ -112,7 +116,8 @@ public class OptInTemplateClassResolverTest extends TestCase {
public void testTrusted_checkFails(String templateName) {
try {
resolver.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate(templateName, "", dummyCfg));
+ Template.createPlainTextTemplate(templateName, "",
+ new TestConfigurationBuilder().build()));
fail();
} catch (TemplateException e) {
// Expected
@@ -120,87 +125,106 @@ public class OptInTemplateClassResolverTest extends TestCase {
}
public void testSettingParser() throws Exception {
- Configuration cfg = new Configuration(Configuration.VERSION_3_0_0);
-
- cfg.setSetting("new_builtin_class_resolver",
- "trusted_templates: foo.ftl, \"lib/*\"");
- TemplateClassResolver res = cfg.getNewBuiltinClassResolver();
- assertEquals(String.class, res.resolve("java.lang.String", null,
- Template.createPlainTextTemplate("foo.ftl", "", cfg)));
- assertEquals(String.class, res.resolve("java.lang.String", null,
- Template.createPlainTextTemplate("lib/bar.ftl", "", cfg)));
- try {
- res.resolve("java.lang.String", null,
- Template.createPlainTextTemplate("bar.ftl", "", cfg));
- fail();
- } catch (TemplateException e) {
- // Expected
- }
+ {
+ Configuration cfg = new TestConfigurationBuilder()
+ .setting(
+ "new_builtin_class_resolver",
+ "trusted_templates: foo.ftl, \"lib/*\"")
+ .build();
- cfg.setSetting("new_builtin_class_resolver",
- "allowed_classes: java.lang.String, java.lang.Integer");
- res = cfg.getNewBuiltinClassResolver();
- assertEquals(String.class, res.resolve("java.lang.String", null,
- Template.createPlainTextTemplate("foo.ftl", "", cfg)));
- assertEquals(Integer.class, res.resolve("java.lang.Integer", null,
- Template.createPlainTextTemplate("foo.ftl", "", cfg)));
- try {
- res.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("foo.ftl", "", cfg));
- fail();
- } catch (TemplateException e) {
- // good
+ TemplateClassResolver res = cfg.getNewBuiltinClassResolver();
+ assertEquals(String.class, res.resolve("java.lang.String", null,
+ Template.createPlainTextTemplate("foo.ftl", "", cfg)));
+ assertEquals(String.class, res.resolve("java.lang.String", null,
+ Template.createPlainTextTemplate("lib/bar.ftl", "", cfg)));
+ try {
+ res.resolve("java.lang.String", null,
+ Template.createPlainTextTemplate("bar.ftl", "", cfg));
+ fail();
+ } catch (TemplateException e) {
+ // Expected
+ }
}
- cfg.setSetting("new_builtin_class_resolver",
- "trusted_templates: foo.ftl, 'lib/*', " +
- "allowed_classes: 'java.lang.String', java.lang.Integer");
- res = cfg.getNewBuiltinClassResolver();
- assertEquals(String.class, res.resolve("java.lang.String", null,
- Template.createPlainTextTemplate("x.ftl", "", cfg)));
- assertEquals(Integer.class, res.resolve("java.lang.Integer", null,
- Template.createPlainTextTemplate("x.ftl", "", cfg)));
- try {
- res.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("x.ftl", "", cfg));
- fail();
- } catch (TemplateException e) {
- // Expected
+ {
+ Configuration cfg = new TestConfigurationBuilder()
+ .setting(
+ "new_builtin_class_resolver",
+ "allowed_classes: java.lang.String, java.lang.Integer")
+ .build();
+
+ TemplateClassResolver res = cfg.getNewBuiltinClassResolver();
+ assertEquals(String.class, res.resolve("java.lang.String", null,
+ Template.createPlainTextTemplate("foo.ftl", "", cfg)));
+ assertEquals(Integer.class, res.resolve("java.lang.Integer", null,
+ Template.createPlainTextTemplate("foo.ftl", "", cfg)));
+ try {
+ res.resolve("java.lang.Long", null,
+ Template.createPlainTextTemplate("foo.ftl", "", cfg));
+ fail();
+ } catch (TemplateException e) {
+ // good
+ }
}
- assertEquals(Long.class, res.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("foo.ftl", "", cfg)));
- assertEquals(Long.class, res.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("lib/bar.ftl", "", cfg)));
- try {
- res.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("x.ftl", "", cfg));
- fail();
- } catch (TemplateException e) {
- // Expected
+
+ {
+ Configuration cfg = new TestConfigurationBuilder()
+ .setting(
+ "new_builtin_class_resolver",
+ "trusted_templates: foo.ftl, 'lib/*', allowed_classes: 'java.lang.String',"
+ + " java.lang.Integer")
+ .build();
+ TemplateClassResolver res = cfg.getNewBuiltinClassResolver();
+ assertEquals(String.class, res.resolve("java.lang.String", null,
+ Template.createPlainTextTemplate("x.ftl", "", cfg)));
+ assertEquals(Integer.class, res.resolve("java.lang.Integer", null,
+ Template.createPlainTextTemplate("x.ftl", "", cfg)));
+ try {
+ res.resolve("java.lang.Long", null,
+ Template.createPlainTextTemplate("x.ftl", "", cfg));
+ fail();
+ } catch (TemplateException e) {
+ // Expected
+ }
+ assertEquals(Long.class, res.resolve("java.lang.Long", null,
+ Template.createPlainTextTemplate("foo.ftl", "", cfg)));
+ assertEquals(Long.class, res.resolve("java.lang.Long", null,
+ Template.createPlainTextTemplate("lib/bar.ftl", "", cfg)));
+ try {
+ res.resolve("java.lang.Long", null,
+ Template.createPlainTextTemplate("x.ftl", "", cfg));
+ fail();
+ } catch (TemplateException e) {
+ // Expected
+ }
}
try {
- cfg.setSetting("new_builtin_class_resolver", "wrong: foo");
+ new TestConfigurationBuilder().setSetting("new_builtin_class_resolver", "wrong: foo");
fail();
} catch (ConfigurationException e) {
// Expected
}
-
- cfg.setSetting("new_builtin_class_resolver",
- "\"allowed_classes\" : java.lang.String , " +
- "'trusted_templates' :\"lib:*\"");
- res = cfg.getNewBuiltinClassResolver();
- assertEquals(String.class, res.resolve("java.lang.String", null,
- Template.createPlainTextTemplate("x.ftl", "", cfg)));
- try {
- res.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("x.ftl", "", cfg));
- fail();
- } catch (TemplateException e) {
- // Expected
+
+ {
+ Configuration cfg = new TestConfigurationBuilder()
+ .setting(
+ "new_builtin_class_resolver",
+ "\"allowed_classes\" : java.lang.String , 'trusted_templates' :\"lib:*\"")
+ .build();
+ TemplateClassResolver res = cfg.getNewBuiltinClassResolver();
+ assertEquals(String.class, res.resolve("java.lang.String", null,
+ Template.createPlainTextTemplate("x.ftl", "", cfg)));
+ try {
+ res.resolve("java.lang.Long", null,
+ Template.createPlainTextTemplate("x.ftl", "", cfg));
+ fail();
+ } catch (TemplateException e) {
+ // Expected
+ }
+ assertEquals(Long.class, res.resolve("java.lang.Long", null,
+ Template.createPlainTextTemplate("lib:bar.ftl", "", cfg)));
}
- assertEquals(Long.class, res.resolve("java.lang.Long", null,
- Template.createPlainTextTemplate("lib:bar.ftl", "", cfg)));
}
}