From 314a12def2cb5e7ef27d3671c34747d9dd0480df Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Mon, 13 Apr 2009 17:33:42 +0000 Subject: [PATCH] Add an autoclean-up method to WebGUI::Test, and convert the Story test to use it. --- t/Asset/Story.t | 8 ++++---- t/lib/WebGUI/Test.pm | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/t/Asset/Story.t b/t/Asset/Story.t index 454969a90..016a83b7d 100644 --- a/t/Asset/Story.t +++ b/t/Asset/Story.t @@ -53,6 +53,9 @@ $archiveTag->commit; my $storage1 = WebGUI::Storage->create($session); my $storage2 = WebGUI::Storage->create($session); +WebGUI::Test->storagesToDelete($storage1, $storage2); +diag $storage1->getId; +diag $session->id->toHex($storage1->getId); SKIP: { @@ -359,8 +362,7 @@ cmp_deeply( isnt($newPhotoData->[0]->{storageId}, $photoData->[0]->{storageId}, '... and storage 0 is duplicated'); isnt($newPhotoData->[1]->{storageId}, $photoData->[1]->{storageId}, '... and storage 1 is duplicated'); -WebGUI::Storage->get($session, $newPhotoData->[0]->{storageId})->delete; -WebGUI::Storage->get($session, $newPhotoData->[1]->{storageId})->delete; +WebGUI::Test->storagesToDelete( map { $_->{storageId} } @{ $newPhotoData } ); } @@ -368,8 +370,6 @@ END { $story->purge if $story; $archive->purge if $archive; $topic->purge if $topic; - $storage1->delete if $storage1; - $storage2->delete if $storage2; $archiveTag->rollback; WebGUI::VersionTag->getWorking($session)->rollback; } diff --git a/t/lib/WebGUI/Test.pm b/t/lib/WebGUI/Test.pm index 5f613c593..952813e28 100644 --- a/t/lib/WebGUI/Test.pm +++ b/t/lib/WebGUI/Test.pm @@ -52,6 +52,7 @@ my %originalConfig; my $originalSetting; my @groupsToDelete; +my @storagesToDelete; BEGIN { @@ -140,6 +141,15 @@ END { foreach my $group (@groupsToDelete) { $group->delete; } + foreach my $stor (@storagesToDelete) { + if ($SESSION->id->valid($stor)) { + my $storage = WebGUI::Storage->get($SESSION, $stor); + $storage->delete if $storage; + } + else { + $stor->delete; + } + } if ($ENV{WEBGUI_TEST_DEBUG}) { $Test->diag('Sessions: '.$SESSION->db->quickScalar('select count(*) from userSession')); $Test->diag('Scratch : '.$SESSION->db->quickScalar('select count(*) from userSessionScratch')); @@ -393,6 +403,8 @@ sub originalConfig { Push a list of group objects onto the stack of groups to be automatically deleted at the end of the test. +This is a class method. + =cut sub groupsToDelete { @@ -402,6 +414,22 @@ sub groupsToDelete { #---------------------------------------------------------------------------- +=head2 storagesToDelete ( $storage, [$storageId ] ) + +Push a list of storage objects or storageIds onto the stack of storage locaitons +at the end of the test. + +This is a class method. + +=cut + +sub storagesToDelete { + my $class = shift; + push @storagesToDelete, @_; +} + +#---------------------------------------------------------------------------- + =head1 BUGS When trying to load the APR module, perl invariably throws an Out Of Memory