Snippets can now select a template parser

(instead of being restricted to the configured default)
This commit is contained in:
Paul Driver 2011-03-31 15:19:03 -05:00
parent 3ad6c4eb3a
commit 3531c4d913
8 changed files with 197 additions and 34 deletions

View file

@ -33,7 +33,7 @@ isa_ok($snippet, 'WebGUI::Asset::Snippet');
# Test to see if we can set values
my $properties = {
cacheTimeout => 124,
processAsTemplate => 1,
templateParser => 'WebGUI::Asset::Template::HTMLTemplate',
mimeType => 'text/plain',
snippet => "Gooey's milkshake brings all the girls to the yard...",
};
@ -74,9 +74,9 @@ isnt ($editOutput, undef, 'www_edit returns something');
$snippet->update({
title => "authMethod",
processAsTemplate => 1,
templateParser => 'WebGUI::Asset::Template::TemplateToolkit',
cacheTimeout => 1,
snippet => q|^SQL(select value from settings where name="<tmpl_var title>");|
snippet => q|^SQL(select value from settings where name="[% title %]");|
});
WebGUI::Test->originalConfig('macros');

View file

@ -23,6 +23,8 @@ use Test::Exception;
use JSON qw{ from_json };
my $session = WebGUI::Test->session;
my $default = $session->config->get('defaultTemplateParser');
my $ht = 'WebGUI::Asset::Template::HTMLTemplate';
my $list = WebGUI::Asset::Template->getList($session);
cmp_deeply($list, {}, 'getList with no classname returns an empty hashref');
@ -33,16 +35,19 @@ my %var = (
conditional=>1,
loop=>[{},{},{},{},{}]
);
my $output = WebGUI::Asset::Template->processRaw($session,$tmplText,\%var);
my $output = WebGUI::Asset::Template->processRaw($session,$tmplText,\%var, $ht);
ok($output =~ m/\bAAAAA\b/, "processRaw() - variables");
ok($output =~ m/true/, "processRaw() - conditionals");
ok($output =~ m/\s(?:XY){5}\s/, "processRaw() - loops");
my $importNode = WebGUI::Asset::Template->getImportNode($session);
my $template = $importNode->addChild({className=>"WebGUI::Asset::Template", title=>"test", url=>"testingtemplates", template=>$tmplText, namespace=>'WebGUI Test Template'});
my $template = $importNode->addChild({className=>"WebGUI::Asset::Template"});
is($template->get('parser'), $default, "default parser is $default");
$template = $importNode->addChild({className=>"WebGUI::Asset::Template", title=>"test", url=>"testingtemplates", template=>$tmplText, namespace=>'WebGUI Test Template',parser=>$ht});
isa_ok($template, 'WebGUI::Asset::Template', "creating a template");
is($template->get('parser'), 'WebGUI::Asset::Template::HTMLTemplate', 'default parser is HTMLTemplate');
$var{variable} = "BBBBB";
$output = $template->process(\%var);
@ -111,6 +116,7 @@ my $template3 = $importNode->addChild({
title => 'headBlock test',
headBlock => "tag1 tag2 tag3",
template => "this is a template",
parser => $ht,
}, undef, time()-5);
ok(!$template3->get('headBlock'), 'headBlock is empty');
@ -205,6 +211,7 @@ my $trashTemplate = $importNode->addChild({
className => "WebGUI::Asset::Template",
title => 'Trash template',
template => q|Trash Trash Trash Trash|,
parser => $ht,
});
$trashTemplate->trash;
@ -229,6 +236,7 @@ my $brokenTemplate = $importNode->addChild({
className => "WebGUI::Asset::Template",
title => 'Broken template',
template => q|<tmpl_if unclosedIf>If clause with no ending tag|,
parser => $ht,
});
WebGUI::Test->interceptLogging;
@ -251,6 +259,7 @@ my $userStyleTemplate = $importNode->addChild({
url => "ufs",
template => "user function style",
namespace => 'WebGUI Test Template',
parser => $ht,
});
my $someOtherTemplate = $importNode->addChild({
@ -259,6 +268,7 @@ my $someOtherTemplate = $importNode->addChild({
url => "sot",
template => "some other template",
namespace => 'WebGUI Test Template',
parser => $ht,
});
$session->setting->set('userFunctionStyleId', $userStyleTemplate->getId);