From a9f6220240ec301faf27382b5a1317b63f96b919 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Mon, 5 Oct 2009 11:38:48 -0700 Subject: [PATCH] Fix undef template variables in the SC. Fixes bug #11087 --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Wobject/SyndicatedContent.pm | 3 +- t/Asset/Wobject/SyndicatedContent.t | 39 ++++++++++++++++--- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index d94b735c1..e83508412 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -39,6 +39,7 @@ - fixed #11082: Admin group in Visitor group? - fixed #11049: form caching incorrectly - fixed #11088: i18n Survey Section Information + - fixed #11087: SC asset repeats its own description in feeds 7.8.0 - upgraded YUI to 2.8.0r4 diff --git a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm index aaaff5316..d11e31757 100644 --- a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm +++ b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm @@ -266,7 +266,8 @@ sub getTemplateVariables { $item{author} = WebGUI::HTML::filter(scalar $object->author, 'javascript'); $item{guid} = WebGUI::HTML::filter(scalar $object->guid, 'javascript'); $item{link} = WebGUI::HTML::filter(scalar $object->link, 'javascript'); - $item{description} = WebGUI::HTML::filter(scalar($object->description), 'javascript'); + my $description = WebGUI::HTML::filter(scalar($object->description), 'javascript'); + $item{description} = defined $description ? $description : ''; $item{descriptionFirst100words} = $item{description}; $item{descriptionFirst100words} =~ s/(((\S+)\s+){100}).*/$1/s; $item{descriptionFirst75words} = $item{descriptionFirst100words}; diff --git a/t/Asset/Wobject/SyndicatedContent.t b/t/Asset/Wobject/SyndicatedContent.t index cec27fb6b..d0845ad43 100644 --- a/t/Asset/Wobject/SyndicatedContent.t +++ b/t/Asset/Wobject/SyndicatedContent.t @@ -20,13 +20,12 @@ use Data::Dumper; use WebGUI::Test; use WebGUI::Session; -use Test::More tests => 19; # increment this value for each test you create +use Test::More tests => 20; # increment this value for each test you create use WebGUI::Asset::Wobject::SyndicatedContent; use XML::FeedPP; my $session = WebGUI::Test->session; my %var; -my (@rss_feeds); ############################## ## SETUP ## @@ -37,6 +36,7 @@ my $node = WebGUI::Asset->getImportNode($session); # Create a version tag to work in my $versionTag = WebGUI::VersionTag->getWorking($session); $versionTag->set({name=>"SyndicatedContent Test"}); +WebGUI::Test->tagsToRollback($versionTag); my $syndicated_content = $node->addChild({className=>'WebGUI::Asset::Wobject::SyndicatedContent'}); ############################## @@ -106,8 +106,35 @@ cmp_ok(scalar(@{$var->{item_loop}}), '>', 0, 'the item loop has items'); my $processed_template = eval {$syndicated_content->processTemplate($var,undef,$template) }; ok($processed_template, "A response was received from processTemplate."); -END { - # Clean up after thy self - $versionTag->rollback(); -} +#################################################################### +# +# getTemplateVariables +# +#################################################################### +##Construct a feed with no description, so the resulting template variables can +##be checked for an undef description +my $feed = XML::FeedPP->new(< + +Revision Log - /WebGUI/ + + + + +1970-01-01T00:53:41 + +12312 - Ready for 7.7.20 development. + + + +colin + +https://svn.webgui.org/svnweb/plainblack/revision?rev=12312 +1970-01-01T00:53:41 +1970-01-01T00:53:41 + +EOFEED + +my $vars = $syndicated_content->getTemplateVariables($feed); +ok( defined $vars->{item_loop}->[0]->{description}, 'getTemplateVariables: description is not undefined');