You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by he...@apache.org on 2006/11/19 11:24:47 UTC

svn commit: r476788 - in /jakarta/velocity/engine/trunk: src/test/org/apache/velocity/test/issues/ test/issues/ test/issues/velocity-285/ test/issues/velocity-285/compare/ test/issues/velocity-285/templates/

Author: henning
Date: Sun Nov 19 02:24:46 2006
New Revision: 476788

URL: http://svn.apache.org/viewvc?view=rev&rev=476788
Log:
Add test case for VELOCITY-285 (forgot to check that in).

Added:
    jakarta/velocity/engine/trunk/src/test/org/apache/velocity/test/issues/
    jakarta/velocity/engine/trunk/src/test/org/apache/velocity/test/issues/Velocity285TestCase.java   (with props)
    jakarta/velocity/engine/trunk/test/issues/
    jakarta/velocity/engine/trunk/test/issues/velocity-285/
    jakarta/velocity/engine/trunk/test/issues/velocity-285/compare/
    jakarta/velocity/engine/trunk/test/issues/velocity-285/compare/velocity285.vm.cmp
    jakarta/velocity/engine/trunk/test/issues/velocity-285/templates/
    jakarta/velocity/engine/trunk/test/issues/velocity-285/templates/velocity285.vm   (with props)

Added: jakarta/velocity/engine/trunk/src/test/org/apache/velocity/test/issues/Velocity285TestCase.java
URL: http://svn.apache.org/viewvc/jakarta/velocity/engine/trunk/src/test/org/apache/velocity/test/issues/Velocity285TestCase.java?view=auto&rev=476788
==============================================================================
--- jakarta/velocity/engine/trunk/src/test/org/apache/velocity/test/issues/Velocity285TestCase.java (added)
+++ jakarta/velocity/engine/trunk/src/test/org/apache/velocity/test/issues/Velocity285TestCase.java Sun Nov 19 02:24:46 2006
@@ -0,0 +1,122 @@
+package org.apache.velocity.test.issues;
+
+/*
+ * 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.    
+ */
+
+import java.io.BufferedWriter;
+import java.io.FileOutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.Velocity;
+import org.apache.velocity.runtime.RuntimeSingleton;
+import org.apache.velocity.test.BaseTestCase;
+
+/**
+ * Test Case for <a href="http://issues.apache.org/jira/browse/VELOCITY-285">Velocity Issue 285</a>.
+ */
+public class Velocity285TestCase
+        extends BaseTestCase
+{
+    /**
+     * Comparison file extension.
+     */
+    private static final String CMP_FILE_EXT = "cmp";
+
+    /**
+     * Comparison file extension.
+     */
+    private static final String RESULT_FILE_EXT = "res";
+
+    /**
+     * Results relative to the build directory.
+     */
+    private static final String RESULTS_DIR = TEST_RESULT_DIR + "/issues/velocity-285";
+
+    /**
+     * Template Directory
+     */
+    private static final String TEMPLATE_DIR = TEST_COMPARE_DIR + "/issues/velocity-285/templates";
+
+    /**
+     * Results relative to the build directory.
+     */
+    private static final String COMPARE_DIR = TEST_COMPARE_DIR + "/issues/velocity-285/compare";
+
+
+    public Velocity285TestCase(final String name)
+    	throws Exception
+    {
+        super(name);
+    }
+
+    public static Test suite()
+    {
+        return new TestSuite(Velocity285TestCase.class);
+    }
+
+    public void setUp()
+            throws Exception
+    {
+
+        assureResultsDirectoryExists(RESULTS_DIR);
+
+        Velocity.addProperty(
+                Velocity.FILE_RESOURCE_LOADER_PATH, TEMPLATE_DIR);
+
+        Velocity.init();
+    }
+
+    public void testVelocity285()
+            throws Exception
+    {
+        Template t = executeTest("velocity285.vm");
+    }
+
+    protected Template executeTest(final String templateName)
+    	throws Exception
+    {
+        Template template = RuntimeSingleton.getTemplate(templateName);
+
+        FileOutputStream fos =
+                new FileOutputStream (
+                        getFileName(RESULTS_DIR, templateName, RESULT_FILE_EXT));
+
+        Writer writer = new BufferedWriter(new OutputStreamWriter(fos));
+
+        VelocityContext context = new VelocityContext();
+
+        template.merge(context, writer);
+        writer.flush();
+        writer.close();
+
+        if (!isMatch(RESULTS_DIR, COMPARE_DIR, templateName,
+                        RESULT_FILE_EXT, CMP_FILE_EXT))
+        {
+            fail("Output incorrect for Template: " + templateName);
+        }
+
+        return template;
+    }
+}

Propchange: jakarta/velocity/engine/trunk/src/test/org/apache/velocity/test/issues/Velocity285TestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/velocity/engine/trunk/src/test/org/apache/velocity/test/issues/Velocity285TestCase.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date Revision

Added: jakarta/velocity/engine/trunk/test/issues/velocity-285/compare/velocity285.vm.cmp
URL: http://svn.apache.org/viewvc/jakarta/velocity/engine/trunk/test/issues/velocity-285/compare/velocity285.vm.cmp?view=auto&rev=476788
==============================================================================
--- jakarta/velocity/engine/trunk/test/issues/velocity-285/compare/velocity285.vm.cmp (added)
+++ jakarta/velocity/engine/trunk/test/issues/velocity-285/compare/velocity285.vm.cmp Sun Nov 19 02:24:46 2006
@@ -0,0 +1,23 @@
+<pre>
+
+call to test_loop ([[a, b], [a, b]])
+    in the loop the param should not be changed : ([[a, b], [a, b]])
+call to test_loop ([a, b])
+    in the loop the param should not be changed : ([a, b])
+call to test_loop (a)
+return
+    in the loop the param should not be changed : ([a, b])
+call to test_loop (b)
+return
+return
+    in the loop the param should not be changed : ([[a, b], [a, b]])
+call to test_loop ([a, b])
+    in the loop the param should not be changed : ([a, b])
+call to test_loop (a)
+return
+    in the loop the param should not be changed : ([a, b])
+call to test_loop (b)
+return
+return
+return
+</pre>

Added: jakarta/velocity/engine/trunk/test/issues/velocity-285/templates/velocity285.vm
URL: http://svn.apache.org/viewvc/jakarta/velocity/engine/trunk/test/issues/velocity-285/templates/velocity285.vm?view=auto&rev=476788
==============================================================================
--- jakarta/velocity/engine/trunk/test/issues/velocity-285/templates/velocity285.vm (added)
+++ jakarta/velocity/engine/trunk/test/issues/velocity-285/templates/velocity285.vm Sun Nov 19 02:24:46 2006
@@ -0,0 +1,14 @@
+<pre>
+#macro (test_loop $p)
+call to test_loop ($p)
+#foreach($child in $p)
+    in the loop the param should not be changed : ($p)
+#test_loop($child)
+#end
+return
+#end
+
+#set($l1=["a","b"])
+#set($l = [$l1,$l1])
+#test_loop($l)
+</pre>

Propchange: jakarta/velocity/engine/trunk/test/issues/velocity-285/templates/velocity285.vm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/velocity/engine/trunk/test/issues/velocity-285/templates/velocity285.vm
------------------------------------------------------------------------------
    svn:keywords = Id Author Date Revision



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org