From 193d30ec41bfda86695bddf375cc424876cf2e3c Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Wed, 27 Jan 2010 21:38:12 -0800 Subject: [PATCH] Fix the RootTitle macro. --- lib/WebGUI/Macro/RootTitle.pm | 9 +++++++-- t/Macro/RootTitle.t | 17 ++++------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/lib/WebGUI/Macro/RootTitle.pm b/lib/WebGUI/Macro/RootTitle.pm index 4fe5cba7d..ebb7b63ab 100644 --- a/lib/WebGUI/Macro/RootTitle.pm +++ b/lib/WebGUI/Macro/RootTitle.pm @@ -12,6 +12,7 @@ package WebGUI::Macro::RootTitle; use strict; use WebGUI::Asset; +use WebGUI::Exception; =head1 NAME @@ -40,9 +41,13 @@ sub process { ##Get my root. $lineage = substr($lineage,0,12); - my $root = WebGUI::Asset->newByLineage($session,$lineage); + my $root = eval { WebGUI::Asset->newByLineage($session,$lineage); }; + + if (Exception::Class->caught()) { + $session->log->error('RootTitle macro: '.$@); + return ""; + } - return "" unless defined $root; return $root->get("title"); } diff --git a/t/Macro/RootTitle.t b/t/Macro/RootTitle.t index 16a82ca56..65110757f 100644 --- a/t/Macro/RootTitle.t +++ b/t/Macro/RootTitle.t @@ -32,6 +32,7 @@ my $session = WebGUI::Test->session; my $versionTag = WebGUI::VersionTag->getWorking($session); $versionTag->set({name=>"Adding assets for RootTitle tests"}); +addToCleanup($versionTag); my $root = WebGUI::Asset->getRoot($session); my %properties_A = ( @@ -117,7 +118,7 @@ my $asset_ = $root->addChild(\%properties__, $properties__{id}); $versionTag->commit; -my $origLineage = $asset_->get('lineage'); +my $origLineage = $asset_->lineage; my $newLineage = substr $origLineage, 0, length($origLineage)-1; $session->db->write('update asset set lineage=? where assetId=?',[$newLineage, $asset_->getId]); @@ -160,16 +161,11 @@ my @testSets = ( ); my $numTests = scalar @testSets; -$numTests += 2; +$numTests += 1; plan tests => $numTests; -my $macro = 'WebGUI::Macro::RootTitle'; -my $loaded = use_ok($macro); - -SKIP: { - -skip "Unable to load $macro", $numTests-1 unless $loaded; +use WebGUI::Macro::RootTitle; is( WebGUI::Macro::RootTitle::process($session), @@ -184,11 +180,6 @@ foreach my $testSet (@testSets) { is($output, $testSet->{title}, $testSet->{comment}); } -} - END { ##Clean-up after yourself, always $session->db->write('update asset set lineage=? where assetId=?',[$origLineage, $asset_->getId]); - if (defined $versionTag and ref $versionTag eq 'WebGUI::VersionTag') { - $versionTag->rollback; - } }