From c6e9d322a80f79abdefa14e5cdf72bd8f6ed9136 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Tue, 19 Aug 2008 22:03:39 +0000 Subject: [PATCH] Fix how update and addRevision handle defaults from the definition subroutine when it returns an array ref. --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset.pm | 3 +++ lib/WebGUI/AssetVersioning.pm | 3 +++ t/Asset/Template.t | 4 +++- 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index e3d4eb23c..ae8f095ce 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -20,6 +20,7 @@ - fixed: Getting an i18n key from a file that does not exist. - fixed: Tree Navigation menu shows level numbers - fixed: loginBox macro no longer can return user to "logout" page, logging them out + - fixed: Template Assets broken 7.5.20 - fixed: DataForm acknowledgement screen shows incorrect value for Date/Time fields diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 6f02bae75..21cabd782 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -2270,6 +2270,9 @@ sub update { # use the default value because default and update were both undef if ($value eq "" && exists $definition->{properties}{$property}{defaultValue}) { $value = $definition->{properties}{$property}{defaultValue}; + if (ref($value) eq 'ARRAY') { + $value = $value->[0]; + } } # set the property diff --git a/lib/WebGUI/AssetVersioning.pm b/lib/WebGUI/AssetVersioning.pm index 5c2084bf8..ef5a4b82f 100644 --- a/lib/WebGUI/AssetVersioning.pm +++ b/lib/WebGUI/AssetVersioning.pm @@ -126,6 +126,9 @@ sub addRevision { # get the default values of each property foreach my $property (keys %{$definition->{properties}}) { $defaults{$property} = $definition->{properties}{$property}{defaultValue}; + if (ref($defaults{$property}) eq 'ARRAY') { + $defaults{$property} = $defaults{$property}->[0]; + } } # prime the tables diff --git a/t/Asset/Template.t b/t/Asset/Template.t index 5c6192370..756dd4b62 100644 --- a/t/Asset/Template.t +++ b/t/Asset/Template.t @@ -15,7 +15,7 @@ use lib "$FindBin::Bin/../lib"; use WebGUI::Test; use WebGUI::Session; use WebGUI::Asset::Template; -use Test::More tests => 10; # increment this value for each test you create +use Test::More tests => 11; # increment this value for each test you create use Test::Deep; my $session = WebGUI::Test->session; @@ -38,6 +38,8 @@ my $importNode = WebGUI::Asset::Template->getImportNode($session); my $template = $importNode->addChild({className=>"WebGUI::Asset::Template", title=>"test", url=>"testingtemplates", template=>$template, namespace=>'WebGUI Test Template'}); 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); ok($output =~ m/\bBBBBB\b/, "process() - variables");