From fa8c5a1f9e8dd17424bc28d01bfe661dde50ddd7 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 2 Oct 2012 16:22:46 -0500 Subject: more tests --- t/mustache-extra.t | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 t/mustache-extra.t (limited to 't/mustache-extra.t') diff --git a/t/mustache-extra.t b/t/mustache-extra.t new file mode 100644 index 0000000..f1ee3e7 --- /dev/null +++ b/t/mustache-extra.t @@ -0,0 +1,135 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use lib 't/lib'; +use Test::More; +use Test::Handlebars; + +render_ok( + <<'TEMPLATE', +Shown. +{{#nothin}} +Never shown! +{{/nothin}} +TEMPLATE + { + person => 1, + nothin => 0, + }, + <<'RENDERED', +Shown. +RENDERED + "section with no value" +); + +render_ok( + <<'TEMPLATE', +Shown. +{{#nothin}} +Never shown! +{{/nothin}} +TEMPLATE + { + person => 1, + nothin => [], + }, + <<'RENDERED', +Shown. +RENDERED + "section with no value" +); + +render_ok( + <<'TEMPLATE', +

Today{{! +ignore me +}}.

+TEMPLATE + { + }, + <<'RENDERED', +

Today.

+RENDERED + "comments" +); + +render_ok( + '{{#l1}}{{#l2}}{{#l3}}{{l4}}{{/l3}}{{/l2}}{{/l1}}', + { l1 => { l2 => { l3 => { l4 => 'FOO' } } } }, + 'FOO', + "multi-level nesting" +); + +render_ok( + <<'TEMPLATE', +l1: +{{#l1}} + l2: +{{#l2}} + l3: +{{#l3}} + l4: {{l4}} +{{/l3}} +{{/l2}} +{{/l1}} +TEMPLATE + { + l1 => [ + { + l2 => { + l3 => [ + { l4 => 'FOO' }, + { l4 => 'BAR' }, + { l4 => 'BAZ' }, + ], + }, + }, + { + l2 => { + l3 => [ + { l4 => 'foo' }, + { l4 => 'bar' }, + { l4 => 'baz' }, + ], + }, + }, + ], + }, + <<'RENDERED', +l1: + l2: + l3: + l4: FOO + l4: BAR + l4: BAZ + l2: + l3: + l4: foo + l4: bar + l4: baz +RENDERED + "multi-level nesting" +); + +render_ok( + <<'TEMPLATE', +{{#name}} +Name: {{name}} +{{/name}} +TEMPLATE + { + name => [ + { name => 'foo' }, + { name => 'bar' }, + { name => 'baz' }, + ], + }, + <<'RENDERED', +Name: foo +Name: bar +Name: baz +RENDERED + "reusing variable names while nesting" +); + +done_testing; -- cgit v1.2.3-54-g00ecf