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 2016/06/12 16:54:15 UTC

[34/50] incubator-freemarker git commit: Added tests for 3 layer autoIncludes

Added tests for 3 layer autoIncludes


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/aea8cb75
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/aea8cb75
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/aea8cb75

Branch: refs/heads/2.3
Commit: aea8cb75f05bd5be99bf331e4484b9314b782541
Parents: 428b374
Author: ddekany <dd...@apache.org>
Authored: Wed Jun 8 20:12:27 2016 +0200
Committer: ddekany <dd...@apache.org>
Committed: Wed Jun 8 20:12:27 2016 +0200

----------------------------------------------------------------------
 .../core/AutoImportAndIncludeTest.java          | 101 +++++++++++++++++++
 1 file changed, 101 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/aea8cb75/src/test/java/freemarker/core/AutoImportAndIncludeTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/freemarker/core/AutoImportAndIncludeTest.java b/src/test/java/freemarker/core/AutoImportAndIncludeTest.java
index ea50078..91faa4b 100644
--- a/src/test/java/freemarker/core/AutoImportAndIncludeTest.java
+++ b/src/test/java/freemarker/core/AutoImportAndIncludeTest.java
@@ -109,6 +109,107 @@ public class AutoImportAndIncludeTest extends TemplateTest {
         }
     }
 
+    @Test
+    public void test3LayerIncludesNoClashes() throws Exception {
+        Configuration cfg = getConfiguration();
+        cfg.addAutoInclude("t1.ftl");
+
+        TemplateConfiguration tc = new TemplateConfiguration();
+        tc.addAutoInclude("t2.ftl");
+        cfg.setTemplateConfigurations(
+                new ConditionalTemplateConfigurationFactory(new FileNameGlobMatcher("main.ftl"), tc));
+
+        {
+            Template t = cfg.getTemplate("main.ftl");
+            StringWriter sw = new StringWriter();
+            Environment env = t.createProcessingEnvironment(null, sw);
+            env.addAutoInclude("t3.ftl");
+    
+            env.process();
+            assertEquals("T1;T2;T3;In main: t1;t2;t3;", sw.toString());
+        }
+
+        {
+            Template t = cfg.getTemplate("main.ftl");
+            StringWriter sw = new StringWriter();
+            Environment env = t.createProcessingEnvironment(null, sw);
+    
+            env.process();
+            assertEquals("T1;T2;In main: t1;t2;", sw.toString());
+        }
+        
+        {
+            Template t = cfg.getTemplate("main2.ftl");
+            StringWriter sw = new StringWriter();
+            Environment env = t.createProcessingEnvironment(null, sw);
+            env.addAutoInclude("t3.ftl");
+    
+            env.process();
+            assertEquals("T1;T3;In main2: t1;t3;", sw.toString());
+        }
+        
+        cfg.removeAutoInclude("t1.ftl");
+        
+        {
+            Template t = cfg.getTemplate("main.ftl");
+            StringWriter sw = new StringWriter();
+            Environment env = t.createProcessingEnvironment(null, sw);
+            env.addAutoInclude("t3.ftl");
+    
+            env.process();
+            assertEquals("T2;T3;In main: t2;t3;", sw.toString());
+        }
+    }
+    
+    @Test
+    public void test3LayerIncludesNoClashes2() throws Exception {
+        Configuration cfg = getConfiguration();
+        cfg.addAutoInclude("t1.ftl");
+        cfg.addAutoInclude("t2.ftl");
+        cfg.addAutoInclude("t3.ftl");
+
+        TemplateConfiguration tc = new TemplateConfiguration();
+        tc.addAutoInclude("t2.ftl");
+        cfg.setTemplateConfigurations(
+                new ConditionalTemplateConfigurationFactory(new FileNameGlobMatcher("main.ftl"), tc));
+
+        {
+            Template t = cfg.getTemplate("main.ftl");
+            StringWriter sw = new StringWriter();
+            Environment env = t.createProcessingEnvironment(null, sw);
+            env.addAutoInclude("t3.ftl");
+    
+            env.process();
+            assertEquals("T1;T2;T3;T2;T3;In main: t1;t2;t3;t2;t3;", sw.toString());
+        }
+    }
+
+    @Test
+    public void test3LayerIncludesClashes() throws Exception {
+        Configuration cfg = getConfiguration();
+        cfg.addAutoInclude("t1.ftl");
+        cfg.addAutoInclude("t3.ftl");
+        cfg.addAutoInclude("t2.ftl");
+        cfg.addAutoInclude("t3.ftl");
+
+        TemplateConfiguration tc = new TemplateConfiguration();
+        tc.addAutoInclude("t2.ftl");
+        tc.addAutoInclude("t2.ftl");
+        cfg.setTemplateConfigurations(
+                new ConditionalTemplateConfigurationFactory(new FileNameGlobMatcher("main.ftl"), tc));
+
+        {
+            Template t = cfg.getTemplate("main.ftl");
+            StringWriter sw = new StringWriter();
+            Environment env = t.createProcessingEnvironment(null, sw);
+            env.addAutoInclude("t3.ftl");
+            env.addAutoInclude("t3.ftl");
+    
+            env.process();
+            assertEquals("T1;T2;T3;T2;T3;In main: t1;t2;t3;t2;t3;", sw.toString());
+        }
+    }
+    
     @Override
     protected Configuration createConfiguration() throws Exception {
         Configuration cfg = new Configuration(Configuration.VERSION_2_3_24);