X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/42dfa9a7030e7d06288385076e348d34ec809128..7647d46acbc2a8253c0afeac5c706c3eb76995d5:/t/presenter/base/render.t diff --git a/t/presenter/base/render.t b/t/presenter/base/render.t new file mode 100644 index 000000000..5d7c96ea3 --- /dev/null +++ b/t/presenter/base/render.t @@ -0,0 +1,35 @@ +use strict; +use Test::Exception; +use Test::More; + +use lib 't'; +use Support::TestSetup; + +use SL::Presenter; + +Support::TestSetup::login(); + +my $pr = SL::Presenter->get; + +# Passing invalid parameters: +throws_ok { $pr->render(\'dummy', { unknown => 1 }) } qr/unsupported option/i, 'string ref, unknown parameter'; +throws_ok { $pr->render(\'dummy', { type => "excel" }) } qr/unsupported type/i, 'string ref, unsupported "type"'; +throws_ok { $pr->render({}) } qr/unsupported.*template.*reference.*type/i, 'string ref, unsupported template argument reference type'; +throws_ok { $pr->render('does/not/exist') } qr/template.*file.*not.*found/i, 'non-existing template file name'; + +# Type of return value: +is(ref($pr->render(\'Hallo')), 'SL::Presenter::EscapedText', 'render returns SL::Presenter::EscapedText'); + +# Actual return value for string ref parameters (enforce stringification from SL::Presenter::EscapedText before comparison): +is("" . $pr->render(\'Hallo [% world %]', world => 'Welt'), 'Hallo Welt', 'render string ref, no args'); +is("" . $pr->render(\'Hallo [% world %]', { process => 0 }, world => 'Welt'), 'Hallo [% world %]', 'render string ref, no processing'); +is("" . $pr->render(\'Hallo [% world %]', { type => 'js' }, world => 'Welt'), 'Hallo Welt', 'render string ref, different type'); + +# Actual return value for template file name parameters (enforce stringification from SL::Presenter::EscapedText before comparison): +is("" . $pr->render('t/render', world => 'Welt'), "Hallo Welt\n", 'render template file, no args'); +is("" . $pr->render('t/render', { process => 0 }, world => 'Welt'), "[\% USE HTML \%]Hallo [\% HTML.escape(world) \%]\n", 'render template file, no processing'); +is("" . $pr->render('t/render', { type => 'js' }, thingy => 'jungle'), "Welcome to the jungle\n", 'render template file, different type'); + +done_testing; + +1;