diff --git a/t/Macro/AdminText.t b/t/Macro/AdminText.t new file mode 100644 index 000000000..c5b3c3863 --- /dev/null +++ b/t/Macro/AdminText.t @@ -0,0 +1,71 @@ +#------------------------------------------------------------------- +# WebGUI is Copyright 2001-2006 Plain Black Corporation. +#------------------------------------------------------------------- +# Please read the legal notices (docs/legal.txt) and the license +# (docs/license.txt) that came with this distribution before using +# this software. +#------------------------------------------------------------------- +# http://www.plainblack.com info@plainblack.com +#------------------------------------------------------------------- + +# ---- BEGIN DO NOT EDIT ---- +use strict; +use lib '../../lib'; +use Getopt::Long; +use WebGUI::Macro; +use WebGUI::Session; +use Data::Dumper; +# ---- END DO NOT EDIT ---- + +my $session = initialize(); # this line is required + + +use Test::More; # increment this value for each test you create + +my $numTests = 4; + +plan tests => $numTests; + +diag("Planning on running $numTests tests\n"); + +my $adminText = "^AdminText(admin);"; +my $output; + +$output = $adminText; +WebGUI::Macro::process($session, \$output); +is($output, '', 'user is not admin'); + +$session->user({userId => 3}); +$output = $adminText; +WebGUI::Macro::process($session, \$output); +is($output, '', 'user is admin, not in admin mode'); + +$session->var->switchAdminOn; +$output = $adminText; +WebGUI::Macro::process($session, \$output); +is($output, 'admin', 'admin in admin mode'); + +$session->var->switchAdminOff; +$output = $adminText; +WebGUI::Macro::process($session, \$output); +is($output, '', 'user is admin, not in admin mode'); + +cleanup($session); # this line is required + +# ---- DO NOT EDIT BELOW THIS LINE ----- + +sub initialize { + $|=1; # disable output buffering + my $configFile; + GetOptions( + 'configFile=s'=>\$configFile + ); + exit 1 unless ($configFile); + my $session = WebGUI::Session->open("../..",$configFile); +} + +sub cleanup { + my $session = shift; + $session->close(); +} + diff --git a/t/Macro/GroupText.t b/t/Macro/GroupText.t index 124bf1463..fef493a8e 100644 --- a/t/Macro/GroupText.t +++ b/t/Macro/GroupText.t @@ -10,7 +10,7 @@ # ---- BEGIN DO NOT EDIT ---- use strict; -use lib '../lib'; +use lib '../../lib'; use Getopt::Long; use WebGUI::Macro; use WebGUI::Session; @@ -19,101 +19,26 @@ use Data::Dumper; my $session = initialize(); # this line is required -#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 @settingMacros = ( - { - settingKey => 'companyEmail', - macro => 'e_companyEmail' - }, - { - settingKey => 'companyName', - macro => 'c_companyName' - }, - { - settingKey => 'companyURL', - macro => 'u_companyUrl' - }, -); - -##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; - -foreach my $macro ( @settingMacros ) { - ++$settingMacros; - if (exists $macroNames{ $macro->{macro} }) { - $macro->{shortcut} = $macroNames{ $macro->{macro} }; - $macro->{skip} = 0; - } - else { - $macro->{skip} = 1; - } -} - use Test::More; # increment this value for each test you create -my $numTests = 6 + $settingMacros; +my $numTests = 2; plan tests => $numTests; diag("Planning on running $numTests tests\n"); my $macroText = "^GroupText(3,local,foreigner);"; -my $AdminText = "^AdminText(admin);"; my $output; $output = $macroText; WebGUI::Macro::process($session, \$output); is($output, 'foreigner', 'GroupText, user not in group'); -$output = $adminText; -WebGUI::Macro::process($session, \$output); -is($output, '', 'AdminText, user not in group'); - $output = $macroText; $session->user({userId => 3}); WebGUI::Macro::process($session, \$output); is($output, 'local', 'GroupText, user in group'); -$output = $adminText; -WebGUI::Macro::process($session, \$output); -is($output, 'admin', 'AdminText, user is admin'); - -my $apText = "^AssetProxy(getting_started);"; -WebGUI::Macro::process($session, \$apText); -my $apPass = like($output, qr/If you're reading this/, 'AssetProxy functional check'); - -SKIP: { - skip("AssetProxy isn't working",1) unless $apPass; - $macroText = "^GroupText(3,^AssetProxy(getting_started);,foreigner)"; - $output = $macroText; - WebGUI::Macro::process($session, \$output); - like($output, qr/If you're reading this/, 'GroupText, nesting, in group'); -} - - -diag("Begin setting macro tests"); - -foreach my $macro ( @settingMacros ) { - SKIP: { - skip("Unable to lookup macro: $macro->{macro}",1) if $macro->{skip}; - my ($value) = $session->dbSlave->quickArray( - sprintf "select value from settings where name=%s", - $session->db->quote($macro->{settingKey}) - ); - my $macroVal = sprintf "^%s();", $macro->{shortcut}; - WebGUI::Macro::process($session, \$macroVal); - is($value, $macroVal, sprintf "Testing %s", $macro->{macro}); - } -} - cleanup($session); # this line is required # ---- DO NOT EDIT BELOW THIS LINE ----- @@ -125,7 +50,7 @@ sub initialize { 'configFile=s'=>\$configFile ); exit 1 unless ($configFile); - my $session = WebGUI::Session->open("..",$configFile); + my $session = WebGUI::Session->open("../..",$configFile); } sub cleanup {