From 359882cc212c76540a5be0d4bce4bfa606a3d60b Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Sat, 10 Oct 2009 16:49:36 -0700 Subject: [PATCH] Add cleanup for shopping carts and shipping drivers. Check for leaky carts and drivers. When cleaning up a cart, also clean up its address book. --- t/lib/WebGUI/Test.pm | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/t/lib/WebGUI/Test.pm b/t/lib/WebGUI/Test.pm index 649f73356..2a0472bb1 100644 --- a/t/lib/WebGUI/Test.pm +++ b/t/lib/WebGUI/Test.pm @@ -100,14 +100,16 @@ sub import { if ($ENV{WEBGUI_TEST_DEBUG}) { ##Offset Sessions, and Scratch by 1 because 1 will exist at the start my @checkCount = ( - Sessions => 'userSession', - Scratch => 'userSessionScratch', - Users => 'users', - Groups => 'groups', - mailQ => 'mailQueue', - Tags => 'assetVersionTag', - Assets => 'assetData', - Workflows => 'Workflow', + Sessions => 'userSession', + Scratch => 'userSessionScratch', + Users => 'users', + Groups => 'groups', + mailQ => 'mailQueue', + Tags => 'assetVersionTag', + Assets => 'assetData', + Workflows => 'Workflow', + Carts => 'cart', + 'Ship Drivers' => 'shipper', ); my %initCounts; for ( my $i = 0; $i < @checkCount; $i += 2) { @@ -763,6 +765,8 @@ were passed in. Currently able to destroy: WebGUI::User WebGUI::VersionTag WebGUI::Workflow + WebGUI::Shop::Cart + WebGUI::Shop::ShipDriver Example call: @@ -831,14 +835,20 @@ Example call: ); my %cleanup = ( - 'WebGUI::User' => 'delete', - 'WebGUI::Group' => 'delete', - 'WebGUI::Storage' => 'delete', - 'WebGUI::Shop::Cart' => 'delete', - 'WebGUI::Asset' => 'purge', - 'WebGUI::VersionTag' => 'rollback', - 'WebGUI::Workflow' => 'delete', - 'WebGUI::Session' => sub { + 'WebGUI::User' => 'delete', + 'WebGUI::Group' => 'delete', + 'WebGUI::Storage' => 'delete', + 'WebGUI::Asset' => 'purge', + 'WebGUI::VersionTag' => 'rollback', + 'WebGUI::Workflow' => 'delete', + 'WebGUI::Shop::ShipDriver' => 'delete', + 'WebGUI::Shop::Cart' => sub { + my $cart = shift; + my $addressBook = $cart->getAddressBook(); + $addressBook->delete if $addressBook; ##Should we call cleanupGuard instead??? + $cart->delete; + }, + 'WebGUI::Session' => sub { my $session = shift; $session->var->end; $session->close;