diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-10-04 18:21:30 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-10-04 18:21:30 -0500 |
commit | 17d50c83f2a4be7405fa151fb66620c132b01f0f (patch) | |
tree | b11f8bc9aa769a073ad7d6d830a808b6b3430497 /t | |
parent | 6a0925c2c2028654fe8facb9f4388352b8d380d6 (diff) | |
download | text-handlebars-17d50c83f2a4be7405fa151fb66620c132b01f0f.tar.gz text-handlebars-17d50c83f2a4be7405fa151fb66620c132b01f0f.zip |
implement the built-in block helpers
Diffstat (limited to 't')
-rw-r--r-- | t/block-helper-builtins.t | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/t/block-helper-builtins.t b/t/block-helper-builtins.t new file mode 100644 index 0000000..338e067 --- /dev/null +++ b/t/block-helper-builtins.t @@ -0,0 +1,178 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use lib 't/lib'; +use Test::More; +use Test::Handlebars; + +render_ok( + <<'TEMPLATE', +<div class="entry"> + <h1>{{title}}</h1> + + {{#with author}} + <h2>By {{firstName}} {{lastName}}</h2> + {{/with}} +</div> +TEMPLATE + { + title => 'My first post!', + author => { + firstName => 'Charles', + lastName => 'Jolley', + }, + }, + <<'RENDERED', +<div class="entry"> + <h1>My first post!</h1> + + <h2>By Charles Jolley</h2> +</div> +RENDERED + "with helper" +); + +{ local $TODO = "unimplemented"; local $SIG{__WARN__} = sub { }; +render_ok( + <<'TEMPLATE', +<ul class="people_list"> + {{#each people}} + <li>{{this}}</li> + {{/each}} +</ul> +TEMPLATE + { + people => [ + "Yehuda Katz", + "Alan Johnson", + "Charles Jolley", + ], + }, + <<'RENDERED', +<ul class="people_list"> + <li>Yehuda Katz</li> + <li>Alan Johnson</li> + <li>Charles Jolley</li> +</ul> +RENDERED + "each helper" +); +} + +render_ok( + <<'TEMPLATE', +<div class="entry"> + {{#if author}} + <h1>{{firstName}} {{lastName}}</h1> + {{/if}} +</div> +TEMPLATE + {}, + <<'RENDERED', +<div class="entry"> +</div> +RENDERED + "if helper (false)" +); + +render_ok( + <<'TEMPLATE', +<div class="entry"> + {{#if author}} + <h1>{{firstName}} {{lastName}}</h1> + {{/if}} +</div> +TEMPLATE + { + author => 1, + firstName => "Yehuda", + lastName => "Katz", + }, + <<'RENDERED', +<div class="entry"> + <h1>Yehuda Katz</h1> +</div> +RENDERED + "if helper (true)" +); + +{ local $TODO = "unimplemented"; +render_ok( + <<'TEMPLATE', +<div class="entry"> + {{#if author}} + <h1>{{firstName}} {{lastName}}</h1> + {{else}} + <h1>Unknown Author</h1> + {{/if}} +</div> +TEMPLATE + {}, + <<'RENDERED', +<div class="entry"> + <h1>Unknown Author</h1> +</div> +RENDERED + "if/else helper (false)" +); + +render_ok( + <<'TEMPLATE', +<div class="entry"> + {{#if author}} + <h1>{{firstName}} {{lastName}}</h1> + {{else}} + <h1>Unknown Author</h1> + {{/if}} +</div> +TEMPLATE + { + author => 1, + firstName => "Yehuda", + lastName => "Katz", + }, + <<'RENDERED', +<div class="entry"> + <h1>Yehuda Katz</h1> +</div> +RENDERED + "if/else helper (true)" +); +} + +render_ok( + <<'TEMPLATE', +<div class="entry"> + {{#unless license}} + <h3 class="warning">WARNING: This entry does not have a license!</h3> + {{/unless}} +</div> +TEMPLATE + {}, + <<'RENDERED', +<div class="entry"> + <h3 class="warning">WARNING: This entry does not have a license!</h3> +</div> +RENDERED + "unless helper (false)" +); + +render_ok( + <<'TEMPLATE', +<div class="entry"> + {{#unless license}} + <h3 class="warning">WARNING: This entry does not have a license!</h3> + {{/unless}} +</div> +TEMPLATE + { + license => 1, + }, + <<'RENDERED', +<div class="entry"> +</div> +RENDERED + "unless helper (true)" +); + +done_testing; |