aboutsummaryrefslogtreecommitdiff
path: root/velocity-engine-core/src/test/resources/templates/range.vm
diff options
context:
space:
mode:
Diffstat (limited to 'velocity-engine-core/src/test/resources/templates/range.vm')
-rw-r--r--velocity-engine-core/src/test/resources/templates/range.vm93
1 files changed, 93 insertions, 0 deletions
diff --git a/velocity-engine-core/src/test/resources/templates/range.vm b/velocity-engine-core/src/test/resources/templates/range.vm
new file mode 100644
index 00000000..4fdbb021
--- /dev/null
+++ b/velocity-engine-core/src/test/resources/templates/range.vm
@@ -0,0 +1,93 @@
+#*
+
+@test range.vm
+
+This template is used for Velocity regression testing.
+If you alter this template make sure you change the
+corresponding comparison file so that the regression
+test doesn't fail incorrectly.
+
+Tests the range operator [n..m]
+
+*#
+[1..5]
+#foreach($i in [1..5]) $i #end
+
+-----
+[0..0]
+#foreach($i in [0..0]) $i #end
+
+-----
+[-4..-5]
+#foreach($i in [-4..-5]) $i #end
+
+-----
+[ 1 .. 5 ]
+#foreach($i in [ 1 .. 5 ]) $i #end
+
+-----
+[5..1]
+#foreach($i in [5..1]) $i #end
+
+-----
+[-5..5]
+#foreach($i in [-5..5]) $i #end
+
+-----
+[5..-5]
+#foreach($i in [5..-5]) $i #end
+
+-----
+#set($a = 1)
+#set($b = 5)
+refs \$a=$a \$b=$b [\$a..\$b]
+#foreach($i in [$a..$b]) $i #end
+
+-----
+#set($a = 1)
+#set($b = "5")
+refs \$a=$a \$b="$b" [\$a.."\$b"]
+#foreach($i in [$a..$b]) $i #end
+
+-----
+[\$a.. 7]
+#foreach($i in [$a.. 7]) $i #end
+
+-----
+[-7 ..\$a]
+#foreach($i in [-7 ..$a]) $i #end
+
+-----
+[ -7 ..\$a]
+#foreach($i in[ -7 ..$a]) $i #end
+
+------
+#set($foo = [0..5])
+setting in \$foo -> [0..5] :
+#foreach($i in $foo )$i #end
+
+----
+
+Now some use-case examples. Suppose we want a table to have 10 rows
+
+#set($arr = ["a","b","c"])
+
+<table>
+#foreach($i in $arr)
+<tr><td>$i</td></tr>
+#end
+#foreach($i in [4..10])
+<tr><td>&nbsp;</td></tr>
+#end
+</table>
+
+----
+Wide loop should not OOM
+#foreach($i in [0..67000000])
+#if($i == 100)
+that's enough
+#break
+#end
+#end
+
+=done=