| #* |
| |
| @test interpolation.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. |
| |
| *# |
| |
| Start with simple string interpolation : |
| |
| #set($name = "jason") |
| $provider.concat("it will cost you $10.00", "") |
| |
| #set($image = "dog") |
| $provider.concat("${image}.jpg", "") |
| |
| #set($foo-bar = "foobar") |
| $provider.concat("${foo-bar}.jpg", "") |
| |
| #set($foo_bar = "foobar") |
| $provider.concat("${foo_bar}.jpg", "") |
| |
| #set($one = 1) |
| #set($two = 2) |
| #set($three = 3) |
| $provider.concat("${one}${two}${three}", "") |
| $provider.concat("$one $two $three", "") |
| |
| How about a directive? Sure : |
| |
| #set($arr = ["a","b","c"]) |
| #set($foo = "#foreach($a in $arr) >$a< #end") |
| |
| $foo |
| |
| For our next trick, lets interpolate a.... VelociMacro! |
| |
| #macro( interpfoo ) |
| Hi, I'm a VM! |
| #end |
| |
| #set($ivm = "#interpfoo()") |
| |
| $ivm |
| |
| And now, for something completely different : |
| |
| #set($code = "#if(false) True #else False #end") |
| |
| $code |
| |
| Now, non interpolated stringlits : |
| |
| #set($a = "$code") |
| #set($b = '$code') |
| #set($c = '$!$\!code') |
| |
| $a |
| $b |
| $c |
| |
| Now, check comments within strings. double quotes they should be removed. |
| Single quotes, they should be kept literal. |
| |
| #set($c1 = "test##test") |
| #set($c2 = "test ##test") |
| #set($c3 = "##test") |
| #set($c4 = "test#* hello *#test") |
| #set($c5 = 'test##test') |
| #set($c6 = 'test#* hello *#test') |
| |
| $c1 |
| $c2 |
| $c3 |
| $c4 |
| $c5 |
| $c6 |
| |
| -- end -- |