Applied patch from Jan Limpens 'ReflectionBasedDictionaryAdapter needs to check if...
[castle.git] / Tools / NVelocity / test / templates / velocimacro.vm
blobe3addc468c0f5808f4dca25e491d3f08e66b3c4e
1 #**
3 @test velocimacro.vm
5 This template is used for Velocity regression testing.
6 If you alter this template make sure you change the
7 corresponding comparison file so that the regression 
8 test doesn't fail incorrectly.
11 ## inline VM : shows how a tablerow might be generated
13 #macro( tablerow  $array $color )
14 #foreach( $element in $array )
15    <tr><tdi bgcolor=$color>$element</td></tr>
16 #end
17 #end
19 Now, use the \#quietnull example from the global library VM_global_library.vm : 
20 Now, there should be nothing in the brackets : >#quietnull($nada)<
22 #set($foo = "hello!")
23 Where there should be something here : >#quietnull($foo)<
25 #set($arr = ["$10.24","$15.32","$12.15"])
26 #set($col = "blue")
28 <table>
29 #tablerow( $arr $col)
30 </table>
33 Further tests.  The following VMs and non-VM should be properly escaped :
34 \#tablerow
35 \#quietnull
36 \#notavm
37 >\\#quietnull($nada)<
39 Now try to define a new quietnull VM :
40 #macro( quietnull $a )
41         QuietNull : $a
42 #end
44 It should have been rejected, as the default is to not let inlines override existing, and there
45 should be a message in velocity.log.
46 Therefore it should still function normally :
47 >#quietnull($foo)<
48 >#quietnull($nada)<
50 We should be able to use argless VMs (and directives....)
51 #macro( noargs )
52 Hello! I have no args!
53 #end
55 #noargs()
58 And there was a bug where I wasn't getting the params right for the use-instance :
60 #macro( showarg $i )
61 Arg :>$i<
62 #end
64 #showarg( $jdom.getRootElement().getChild("properties").getChild("author").getTextTrim() )
66 String literals should work as you expect :
67 #showarg( "stringliteral")
70 Test boolean args :
72 #testbool(true)
73 #testbool(false)
74 - Another fine Velocity Production -