From f1159269a03efe1447292a87a2319a1b68dad511 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Tue, 25 Jul 2006 20:54:08 +0000 Subject: [PATCH] Macro Tests: refactored all macro tests to remove a very evil hack for inserting macros into the config. The new method is much cleaner and uses the Config API. Updated the docs for the RootTitle macro, both POD and online help. --- lib/WebGUI/Macro/RootTitle.pm | 2 +- lib/WebGUI/i18n/English/Macro_RootTitle.pm | 4 +- t/Macro/AdminText.t | 13 +++++-- t/Macro/AdminToggle.t | 10 +++-- t/Macro/At_username.t | 13 +++++-- t/Macro/CanEditText.t | 9 +++-- t/Macro/D_date.t | 13 +++++-- t/Macro/EditableToggle.t | 9 +++-- t/Macro/Extras.t | 12 ++++-- t/Macro/FetchMimeType.t | 13 +++++-- t/Macro/FileUrl.t | 10 +++-- t/Macro/GroupAdd.t | 9 +++-- t/Macro/GroupDelete.t | 9 +++-- t/Macro/GroupText.t | 9 +++-- t/Macro/H_homeLink.t | 9 +++-- t/Macro/Hash_userId.t | 12 ++++-- t/Macro/International.t | 13 +++++-- t/Macro/LastModified.t | 12 ++++-- t/Macro/Page.t | 9 +++-- t/Macro/PageTitle.t | 13 +++++-- t/Macro/PageUrl.t | 13 +++++-- t/Macro/Quote.t | 13 +++++-- t/Macro/SQL.t | 18 +++++---- t/Macro/SettingMacros.t | 45 ++++++++-------------- t/Macro/Slash_gatewayUrl.t | 12 ++++-- t/Macro/Spacer.t | 12 ++++-- t/Macro/Splat_random.t | 12 ++++-- t/Macro/Thumbnail.t | 9 +++-- t/Macro/URLEncode.t | 13 +++++-- t/Macro/User.t | 9 +++-- t/Macro/a_account.t | 9 +++-- t/lib/WebGUI/Macro_Config.pm | 9 +++-- 32 files changed, 245 insertions(+), 132 deletions(-) diff --git a/lib/WebGUI/Macro/RootTitle.pm b/lib/WebGUI/Macro/RootTitle.pm index 40b63eab0..5c34c68e0 100644 --- a/lib/WebGUI/Macro/RootTitle.pm +++ b/lib/WebGUI/Macro/RootTitle.pm @@ -25,7 +25,7 @@ Macro for returning the title of the root for this page. If an asset exists in the session variable cache and and it's topmost parent (root) can be found the title for that asset -is returned. Otherwise a space is returned. +is returned. Otherwise an empty string is returned. =cut diff --git a/lib/WebGUI/i18n/English/Macro_RootTitle.pm b/lib/WebGUI/i18n/English/Macro_RootTitle.pm index 1439e1401..8f29ca805 100644 --- a/lib/WebGUI/i18n/English/Macro_RootTitle.pm +++ b/lib/WebGUI/i18n/English/Macro_RootTitle.pm @@ -17,8 +17,10 @@ our $I18N = {

^RootTitle;
Returns the title of the root of the current page. For instance, the main root in WebGUI is the "Home" page. Many advanced sites have many roots and thus need a way to display to the user which root they are in.

+

If the macro is called outside of an asset, or if the root can't be found, then +the macro returns an empty string

|, - lastUpdated => 1146609161, + lastUpdated => 1153849842, }, }; diff --git a/t/Macro/AdminText.t b/t/Macro/AdminText.t index b93e381ee..a3b62e461 100644 --- a/t/Macro/AdminText.t +++ b/t/Macro/AdminText.t @@ -26,10 +26,8 @@ my $numTests = 4; plan tests => $numTests; - -unless ($session->config->get('macros')->{'AdminText'}) { - Macro_Config::insert_macro($session, 'AdminText', 'AdminText'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'AdminText', 'AdminText'); my $adminText = "^AdminText(admin);"; my $output; @@ -52,3 +50,10 @@ $session->var->switchAdminOff; $output = $adminText; WebGUI::Macro::process($session, \$output); is($output, '', 'user is admin, not in admin mode'); + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/AdminToggle.t b/t/Macro/AdminToggle.t index aca8d13e4..b6a522980 100644 --- a/t/Macro/AdminToggle.t +++ b/t/Macro/AdminToggle.t @@ -23,9 +23,9 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'AdminToggle'}) { - Macro_Config::insert_macro($session, 'AdminToggle', 'AdminToggle'); -} + +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'AdminToggle', 'AdminToggle'); my ($versionTag, $template) = addTemplate(); @@ -192,4 +192,8 @@ END { if (defined $versionTag and ref $versionTag eq 'WebGUI::VersionTag') { $versionTag->rollback; } + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/At_username.t b/t/Macro/At_username.t index 37381f937..4799f0c25 100644 --- a/t/Macro/At_username.t +++ b/t/Macro/At_username.t @@ -26,10 +26,8 @@ my $numTests = 2; plan tests => $numTests; - -unless ($session->config->get('macros')->{'@'}) { - Macro_Config::insert_macro($session, '@', 'At_username'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, '@', 'At_username'); my $macroText = "^@;"; my $output; @@ -42,3 +40,10 @@ $output = $macroText; $session->user({userId => 3}); WebGUI::Macro::process($session, \$output); is($output, 'Admin', 'username = Admin'); + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/CanEditText.t b/t/Macro/CanEditText.t index 8a9b5968d..945a8a7c7 100644 --- a/t/Macro/CanEditText.t +++ b/t/Macro/CanEditText.t @@ -22,9 +22,8 @@ my $session = WebGUI::Test->session; use Test::More; # increment this value for each test you create -unless ($session->config->get('macros')->{'CanEditText'}) { - Macro_Config::insert_macro($session, 'CanEditText', 'CanEditText'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'CanEditText', 'CanEditText'); my $adminText = "^CanEditText(editor);"; my $output; @@ -126,4 +125,8 @@ END { ##Clean-up after yourself, always foreach my $dude (@users) { $dude->delete if (defined $dude and ref $dude eq 'WebGUI::User'); } + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/D_date.t b/t/Macro/D_date.t index b0cec7959..1205c8dab 100644 --- a/t/Macro/D_date.t +++ b/t/Macro/D_date.t @@ -41,15 +41,20 @@ my $numTests = scalar @testSets; plan tests => $numTests; - my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'D'}) { - Macro_Config::insert_macro($session, 'D', 'Date'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'D', 'Date'); foreach my $testSet (@testSets) { $output = sprintf $macroText, $testSet->{format}, $wgbday; WebGUI::Macro::process($session, \$output); is($output, $testSet->{output}, 'testing '.$testSet->{format}); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/EditableToggle.t b/t/Macro/EditableToggle.t index 09b73680c..71d71e07a 100644 --- a/t/Macro/EditableToggle.t +++ b/t/Macro/EditableToggle.t @@ -23,9 +23,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'EditableToggle'}) { - Macro_Config::insert_macro($session, 'EditableToggle', 'EditableToggle'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'EditableToggle', 'EditableToggle'); my $homeAsset = WebGUI::Asset->getDefault($session); $session->asset($homeAsset); @@ -291,4 +290,8 @@ END { ##Clean-up after yourself, always foreach my $dude (@users) { $dude->delete if (defined $dude and ref $dude eq 'WebGUI::User'); } + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/Extras.t b/t/Macro/Extras.t index 66e51c3d5..a31b22771 100644 --- a/t/Macro/Extras.t +++ b/t/Macro/Extras.t @@ -21,9 +21,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'Extras'}) { - Macro_Config::insert_macro($session, 'Extras', 'Extras'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'Extras', 'Extras'); my @testSets = ( { ##Just get the extras path @@ -59,3 +58,10 @@ foreach my $testSet (@testSets) { is($output, $testSet->{output}, 'testing '.$macro); } +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} + diff --git a/t/Macro/FetchMimeType.t b/t/Macro/FetchMimeType.t index ecba47b81..af85528fc 100644 --- a/t/Macro/FetchMimeType.t +++ b/t/Macro/FetchMimeType.t @@ -21,10 +21,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'FetchMimeType'}) { - Macro_Config::insert_macro($session, 'FetchMimeType', 'FetchMimeType'); -} - +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'FetchMimeType', 'FetchMimeType'); my $macroText = '^FetchMimeType("%s");'; my $output; @@ -63,3 +61,10 @@ foreach my $testSet (@testSets) { WebGUI::Macro::process($session, \$output); is($output, $testSet->{output}, $testSet->{comment} ); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/FileUrl.t b/t/Macro/FileUrl.t index 9e5a700c1..104204823 100644 --- a/t/Macro/FileUrl.t +++ b/t/Macro/FileUrl.t @@ -24,9 +24,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; my $i18n = WebGUI::International->new($session, 'Macro_FileUrl'); -unless ($session->config->get('macros')->{'FileUrl'}) { - Macro_Config::insert_macro($session, 'FileUrl', 'FileUrl'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'FileUrl', 'FileUrl'); ##Add more Asset configurations here. my @testSets = ( @@ -138,4 +137,9 @@ sub setupTest { END { ##Clean-up after yourself, always $versionTag->rollback; + + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/GroupAdd.t b/t/Macro/GroupAdd.t index 90f912ceb..978db39a2 100644 --- a/t/Macro/GroupAdd.t +++ b/t/Macro/GroupAdd.t @@ -23,9 +23,8 @@ use HTML::TokeParser; my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'GroupAdd'}) { - Macro_Config::insert_macro($session, 'GroupAdd', 'GroupAdd'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'GroupAdd', 'GroupAdd'); my $homeAsset = WebGUI::Asset->getDefault($session); my ($versionTag, $template, $groups, $users) = setupTest($session, $homeAsset); @@ -217,4 +216,8 @@ END { ##Clean-up after yourself, always if (defined $versionTag and ref $versionTag eq 'WebGUI::VersionTag') { $versionTag->rollback; } + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/GroupDelete.t b/t/Macro/GroupDelete.t index cd694d895..9ec2d82fb 100644 --- a/t/Macro/GroupDelete.t +++ b/t/Macro/GroupDelete.t @@ -23,9 +23,8 @@ use HTML::TokeParser; my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'GroupDelete'}) { - Macro_Config::insert_macro($session, 'GroupDelete', 'GroupDelete'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'GroupDelete', 'GroupDelete'); my $homeAsset = WebGUI::Asset->getDefault($session); my ($versionTag, $template, $groups, $users) = setupTest($session, $homeAsset); @@ -216,4 +215,8 @@ END { ##Clean-up after yourself, always if (defined $versionTag and ref $versionTag eq 'WebGUI::VersionTag') { $versionTag->rollback; } + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/GroupText.t b/t/Macro/GroupText.t index 3a601b825..37a258198 100644 --- a/t/Macro/GroupText.t +++ b/t/Macro/GroupText.t @@ -25,9 +25,8 @@ use Test::More; # increment this value for each test you create plan tests => 3 + 4; -unless ($session->config->get('macros')->{'GroupText'}) { - Macro_Config::insert_macro($session, 'GroupText', 'GroupText'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'GroupText', 'GroupText'); my $macroText = q!^GroupText("Admins","admin","visitor");!; my $output; @@ -116,5 +115,9 @@ END { $dude->delete if (defined $dude and ref $dude eq 'WebGUI::User'); } $session->db->dbh->do('DROP TABLE IF EXISTS myUserTable'); + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/H_homeLink.t b/t/Macro/H_homeLink.t index 7a67833fa..f21b4eb77 100644 --- a/t/Macro/H_homeLink.t +++ b/t/Macro/H_homeLink.t @@ -23,9 +23,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'H_homeLink'}) { - Macro_Config::insert_macro($session, 'H', 'H_homeLink'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'H', 'H_homeLink'); my ($versionTag, $template) = addTemplate(); @@ -129,4 +128,8 @@ END { if (defined $versionTag and ref $versionTag eq 'WebGUI::VersionTag') { $versionTag->rollback; } + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/Hash_userId.t b/t/Macro/Hash_userId.t index 32ee973f8..fa83d666b 100644 --- a/t/Macro/Hash_userId.t +++ b/t/Macro/Hash_userId.t @@ -24,9 +24,8 @@ my $session = WebGUI::Test->session; use Test::More; # increment this value for each test you create -unless ($session->config->get('macros')->{'#'}) { - Macro_Config::insert_macro($session, '#', 'Hash_userId'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, '#', 'Hash_userId'); my @testSets = ( { @@ -49,3 +48,10 @@ foreach my $testSet (@testSets) { WebGUI::Macro::process($session, \$output); is($output, $testSet->{userId}, 'testing '.$testSet->{comment}); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/International.t b/t/Macro/International.t index 42a1c54e7..98c64995e 100644 --- a/t/Macro/International.t +++ b/t/Macro/International.t @@ -22,10 +22,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'International'}) { - Macro_Config::insert_macro($session, 'International', 'International'); -} - +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'International', 'International'); my $macroText = '^International("%s","%s");'; my $output; @@ -63,3 +61,10 @@ foreach my $testSet (@testSets) { WebGUI::Macro::process($session, \$output); is($output, $testSet->{output}, $testSet->{comment} ); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/LastModified.t b/t/Macro/LastModified.t index b4d49de16..e81effed5 100644 --- a/t/Macro/LastModified.t +++ b/t/Macro/LastModified.t @@ -21,9 +21,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'LastModified'}) { - Macro_Config::insert_macro($session, 'LastModified', 'LastModified'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'LastModified', 'LastModified'); my $homeAsset = WebGUI::Asset->getDefault($session); @@ -71,3 +70,10 @@ TODO: { ok(0, 'Check label and format'); ok(0, 'Create asset with revisionDate = 0 and check label "never"'); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/Page.t b/t/Macro/Page.t index a35e35ae7..7a6a9ca39 100644 --- a/t/Macro/Page.t +++ b/t/Macro/Page.t @@ -22,9 +22,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'Page'}) { - Macro_Config::insert_macro($session, 'Page', 'Page'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'Page', 'Page'); ##Add more Asset configurations here. my @testSets = ( @@ -89,4 +88,8 @@ sub setupTest { END { ##Clean-up after yourself, always $versionTag->rollback; + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/PageTitle.t b/t/Macro/PageTitle.t index c6235af74..f4d6be4a4 100644 --- a/t/Macro/PageTitle.t +++ b/t/Macro/PageTitle.t @@ -22,10 +22,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'PageTitle'}) { - Macro_Config::insert_macro($session, 'PageTitle', 'PageTitle'); -} - +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'PageTitle', 'PageTitle'); my $macroText = '^PageTitle;'; my $output; @@ -46,3 +44,10 @@ TODO: { local $TODO = "Tests to make later"; ok(0, 'Fetch title from locally made asset with known title'); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/PageUrl.t b/t/Macro/PageUrl.t index a8d5461ed..8f284f38b 100644 --- a/t/Macro/PageUrl.t +++ b/t/Macro/PageUrl.t @@ -22,10 +22,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'PageUrl'}) { - Macro_Config::insert_macro($session, 'PageUrl', 'PageUrl'); -} - +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'PageUrl', 'PageUrl'); my $macroText = '^PageUrl;'; my $output; @@ -46,3 +44,10 @@ TODO: { local $TODO = "Tests to make later"; ok(0, 'Fetch url from locally made asset with known url'); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/Quote.t b/t/Macro/Quote.t index 42ae5ff3e..8f40dcf94 100644 --- a/t/Macro/Quote.t +++ b/t/Macro/Quote.t @@ -22,10 +22,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'Quote'}) { - Macro_Config::insert_macro($session, 'Quote', 'Quote'); -} - +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'Quote', 'Quote'); my $macroText = '^Quote("%s");'; my $output; @@ -55,3 +53,10 @@ foreach my $testSet (@testSets) { WebGUI::Macro::process($session, \$output); is($output, $testSet->{output}, 'testing '.$testSet->{input}); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/SQL.t b/t/Macro/SQL.t index 50bce5045..f4e7a3bd3 100644 --- a/t/Macro/SQL.t +++ b/t/Macro/SQL.t @@ -22,14 +22,9 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'SQL'}) { - Macro_Config::insert_macro($session, 'SQL', 'SQL'); -} - -unless ($session->config->get('macros')->{'/'}) { - Macro_Config::insert_macro($session, '/', 'Slash_gatewayUrl'); -} - +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'SQL', 'SQL'); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, '/', 'Slash_gatewayUrl'); my $macroText = '^SQL("%s","%s");'; @@ -101,3 +96,10 @@ foreach my $testSet (@testSets) { } $session->db->dbh->do('DROP TABLE testTable'); + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/SettingMacros.t b/t/Macro/SettingMacros.t index 091a73e16..2e5b35203 100644 --- a/t/Macro/SettingMacros.t +++ b/t/Macro/SettingMacros.t @@ -18,12 +18,9 @@ use WebGUI::Session; use Data::Dumper; use WebGUI::Macro_Config; -my $session = WebGUI::Test->session; +use Test::More; # increment this value for each test you create -#This test is to verify bugs with respect to Macros: -# - [ 1364838 ] ^GroupText Macro cannot execute other macros -# -# It also checks some macros which pull data out of the setting table. +my $session = WebGUI::Test->session; my @settingMacros = ( { @@ -40,36 +37,28 @@ my @settingMacros = ( }, ); -use Test::More; # increment this value for each test you create - -##Build a reverse hash of the macro settings in the session var so that -##we can lookup the aliases for each macro. - -my %macroNames = reverse %{ $session->config->get('macros') }; - -my $settingMacros = 0; - +##Build a reversed hash so we know how to call the macros based on +##their name +my @added_macros = (); foreach my $macro ( @settingMacros ) { - ++$settingMacros; - if (exists $macroNames{ $macro->{macro} }) { - $macro->{shortcut} = $macroNames{ $macro->{macro} }; - } - else { - Macro_Config::insert_macro($session, $macro->{macro}, $macro->{macro}); - $macro->{shortcut} = $macro->{macro}; - } + $macro->{shortcut} = $macro->{macro}; + push @added_macros, + WebGUI::Macro_Config::enable_macro($session, $macro->{shortcut}, $macro->{macro}); } -my $numTests = $settingMacros; - -plan tests => $numTests; +plan tests => scalar @settingMacros; foreach my $macro ( @settingMacros ) { my ($value) = $session->dbSlave->quickArray( - sprintf "select value from settings where name=%s", - $session->db->quote($macro->{settingKey}) - ); + "select value from settings where name=?", [$macro->{settingKey}]); my $macroVal = sprintf "^%s();", $macro->{shortcut}; WebGUI::Macro::process($session, \$macroVal); is($value, $macroVal, sprintf "Testing %s", $macro->{macro}); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/Slash_gatewayUrl.t b/t/Macro/Slash_gatewayUrl.t index c9b8c6cac..4149ab58e 100644 --- a/t/Macro/Slash_gatewayUrl.t +++ b/t/Macro/Slash_gatewayUrl.t @@ -22,9 +22,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'/'}) { - Macro_Config::insert_macro($session, '/', 'Slash_gatewayUrl'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, '/', 'Slash_gatewayUrl'); my $macroText = '^/;'; my $output; @@ -39,3 +38,10 @@ $output = $macroText; WebGUI::Macro::process($session, \$output); is($output, $session->url->gateway, 'fetching site gateway'); + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/Spacer.t b/t/Macro/Spacer.t index 1e7efad13..c83cfb08e 100644 --- a/t/Macro/Spacer.t +++ b/t/Macro/Spacer.t @@ -23,9 +23,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'Spacer'}) { - Macro_Config::insert_macro($session, 'Spacer', 'Spacer'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'Spacer', 'Spacer'); my @testSets = ( { @@ -86,3 +85,10 @@ sub simpleHTMLParser { return ($width, $height, $src, $alt, $style); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/Splat_random.t b/t/Macro/Splat_random.t index d1d3f54bb..24c486b60 100644 --- a/t/Macro/Splat_random.t +++ b/t/Macro/Splat_random.t @@ -30,9 +30,8 @@ use Data::Dumper; plan tests => 4; -unless ($session->config->get('macros')->{'Splat_random'}) { - Macro_Config::insert_macro($session, '*', 'Splat_random'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, '*', 'Splat_random'); my $macroText = q!^*(%s);!; my $output; @@ -74,3 +73,10 @@ WHOLE: for (my $i=0; $i<=999; $i++) { is(scalar(@bins), 4, "All bins have values on a sample size of 1000"); #diag Dumper \@bins; + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/Thumbnail.t b/t/Macro/Thumbnail.t index 850833bc9..21701f134 100644 --- a/t/Macro/Thumbnail.t +++ b/t/Macro/Thumbnail.t @@ -27,9 +27,8 @@ plan tests => 7; my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'Thumbnail'}) { - Macro_Config::insert_macro($session, 'Thumbnail', 'Thumbnail'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'Thumbnail', 'Thumbnail'); my $square = WebGUI::Image->new($session, 100, 100); $square->setBackgroundColor('#0000FF'); @@ -93,4 +92,8 @@ END { $versionTag->rollback; } ##Storage is cleaned up by rolling back the version tag + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/URLEncode.t b/t/Macro/URLEncode.t index e73b86225..b458fdde2 100644 --- a/t/Macro/URLEncode.t +++ b/t/Macro/URLEncode.t @@ -22,10 +22,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'URLEncode'}) { - Macro_Config::insert_macro($session, 'URLEncode', 'URLEncode'); -} - +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'URLEncode', 'URLEncode'); my $macroText = '^URLEncode("%s");'; my $output; @@ -63,3 +61,10 @@ foreach my $testSet (@testSets) { WebGUI::Macro::process($session, \$output); is($output, $testSet->{output}, 'testing '.$testSet->{input}); } + +END { + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } +} diff --git a/t/Macro/User.t b/t/Macro/User.t index b3571c7e9..752382e6b 100644 --- a/t/Macro/User.t +++ b/t/Macro/User.t @@ -22,9 +22,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'User'}) { - Macro_Config::insert_macro($session, 'User', 'User'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'User', 'User'); my @testSets = ( { @@ -90,4 +89,8 @@ END { ##Clean-up after yourself, always foreach my $dude (@users) { $dude->delete if (defined $dude and ref $dude eq 'WebGUI::User'); } + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/Macro/a_account.t b/t/Macro/a_account.t index 0a6309a8c..86d463cba 100644 --- a/t/Macro/a_account.t +++ b/t/Macro/a_account.t @@ -23,9 +23,8 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -unless ($session->config->get('macros')->{'a_account'}) { - Macro_Config::insert_macro($session, 'a', 'a_account'); -} +my @added_macros = (); +push @added_macros, WebGUI::Macro_Config::enable_macro($session, 'a', 'a_account'); # my ($versionTag, $template) = addTemplate(); @@ -132,4 +131,8 @@ END { if (defined $versionTag and ref $versionTag eq 'WebGUI::VersionTag') { $versionTag->rollback; } + foreach my $macro (@added_macros) { + next unless $macro; + $session->config->deleteFromHash("macros", $macro); + } } diff --git a/t/lib/WebGUI/Macro_Config.pm b/t/lib/WebGUI/Macro_Config.pm index 35d3d1b6d..9b26c05f8 100644 --- a/t/lib/WebGUI/Macro_Config.pm +++ b/t/lib/WebGUI/Macro_Config.pm @@ -1,10 +1,11 @@ -package Macro_Config; +package WebGUI::Macro_Config; -sub insert_macro { +sub enable_macro { my ($session, $nickname, $macroName) = @_; my %macros = %{ $session->config->get('macros') }; - $macros{$nickname} = $macroName; - $session->config->{_config}->{'macros'} = \%macros; + return '' if $macros{$nickname}; + $session->config->addToHash("macros", $nickname, $macroName); + return $nickname; } 1;