#------------------------------------------------------------------- # WebGUI is Copyright 2001-2009 Plain Black Corporation. #------------------------------------------------------------------- # Please read the legal notices (docs/legal.txt) and the license # (docs/license.txt) that came with this distribution before using # this software. #------------------------------------------------------------------- # http://www.plainblack.com info@plainblack.com #------------------------------------------------------------------- use strict; use HTML::TokeParser; use WebGUI::Test; use WebGUI::Session; use WebGUI::Asset; use WebGUI::VersionTag; use WebGUI; use Test::More; my $num_tests = 3; plan tests => 2 + $num_tests; my $session = WebGUI::Test->session; # put your tests here WebGUI::Test->originalConfig('templateParsers'); my $module = use_ok('HTML::Template::Expr'); my $plugin = use_ok('WebGUI::Asset::Template::HTMLTemplateExpr'); SKIP: { skip "HTML::Template::Expr or plugin not loaded", $num_tests unless $plugin; $session->config->set('templateParsers', ['WebGUI::Asset::Template::HTMLTemplate', 'WebGUI::Asset::Template::HTMLTemplateExpr',] ); my $template = setup_assets($session); my $templateOutput = $template->process({ "foo.bar" => "baz", "number.value" => 2 }); my $companyName = $session->config->get('companyName'); like($templateOutput, qr/NAME=$companyName/, "session variable with underscores"); like($templateOutput, qr/FOOBAR=baz/, "explicit variable with dots"); like($templateOutput, qr/EQN=4/, "explicit variable with dots in expr"); } sub setup_assets { my $session = shift; my $properties = { title => 'HTML Template Expr test', className => 'WebGUI::Asset::Template', url => 'dotted', parser => 'WebGUI::Asset::Template::HTMLTemplateExpr', id => 'htmltemplateexpr000001', # '1234567890123456789012' template => q!NAME=\nFOOBAR=\nEQN=!, }; my $template = WebGUI::Test->asset->addChild($properties, $properties->{id}); return $template; }