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/expressions.t | 37 +++++++++++++++ t/mustache-extra.t | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 172 insertions(+) create mode 100644 t/mustache-extra.t (limited to 't') diff --git a/t/expressions.t b/t/expressions.t index 0a3ebf3..02b1b3a 100644 --- a/t/expressions.t +++ b/t/expressions.t @@ -26,4 +26,41 @@ render_ok( "/ separator" ); +{ local $TODO = "unimplemented"; +render_ok( + '{{#article}}

{{title}}

- {{../date}}{{/article}}', + { article => { title => 'Backtracking' }, date => '2012-10-01' }, + '

Backtracking

- 2012-10-01', + "backtracking with ../" +); + +render_ok( + <<'TEMPLATE', +{{#page}} +{{#article}}

{{title}}

- {{../../date}}{{/article}} +{{/page}} +TEMPLATE + { + page => { + article => { title => 'Multilevel Backtracking' }, + }, + date => '2012-10-01', + }, + <<'RENDERED', +

Multilevel Backtracking

- 2012-10-01 +RENDERED + "multilevel backtracking with ../" +); + +render_ok( + '{{#article}}

{{title}}

- {{../metadata.date}}{{/article}}', + { + article => { title => 'Backtracking' }, + metadata => { date => '2012-10-01' }, + }, + '

Backtracking

- 2012-10-01', + "backtracking into other hash variables with ../ and ." +); +} + done_testing; 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