webgui/t/Macro.t
2007-01-04 19:11:17 +00:00

86 lines
2.8 KiB
Perl

#-------------------------------------------------------------------
# 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
#-------------------------------------------------------------------
use FindBin;
use strict;
use lib "$FindBin::Bin/lib";
use WebGUI::Test;
use WebGUI::Session;
use WebGUI::Macro;
use WebGUI::Asset;
use Test::More; # increment this value for each test you create
my $session = WebGUI::Test->session;
my $defaultAsset = WebGUI::Asset->getDefault($session);
$session->asset($defaultAsset);
##Create a non-admin user who will be in the Registered User group
my $registeredUser = WebGUI::User->new($session, "new");
$registeredUser->username('TimBob');
$session->user({user => $registeredUser});
my %originalMacros = %{ $session->config->get('macros') };
##Overwrite any local configuration so that we know how to call it.
foreach my $macro (qw/GroupText LoginToggle PageTitle/) {
$session->config->addToHash('macros', $macro, $macro);
}
plan tests => 5;
my $macroText = "CompanyName: ^c;";
WebGUI::Macro::process($session, \$macroText),
is(
$macroText,
"CompanyName: ".$session->setting->get('companyName'),
"c_companyName Macro in text processed okay"
);
my $macroText = "PageTitle: ^PageTitle;";
WebGUI::Macro::process($session, \$macroText),
is(
$macroText,
"PageTitle: ".$session->asset->getTitle,
"PageTitle Macro in text processed okay"
);
my $macroText = q|GroupText(Registered Users, example) : ^GroupText("Registered Users","example");|;
WebGUI::Macro::process($session, \$macroText),
is(
$macroText,
"GroupText(Registered Users, example) : example",
"GroupText Macro in text processed okay for registered user"
);
my $macroText = q|GroupText(Registered Users, example: c/CompanyName Macro) : ^GroupText("Registered Users","example: ^c;");|;
WebGUI::Macro::process($session, \$macroText),
is(
$macroText,
"GroupText(Registered Users, example: c/CompanyName Macro) : example: ".$session->setting->get('companyName'),
"GroupText Macro with nested c_companyName macro"
);
my $macroText = q|GroupText(Registered Users, example: PageTitle): ^GroupText("Registered Users","example: ^PageTitle;");|;
WebGUI::Macro::process($session, \$macroText),
is(
$macroText,
"GroupText(Registered Users, example: PageTitle): example: ".$session->asset->getTitle,
"GroupText Macro with nested PageTitle macro"
);
END {
$session->config->set('macros', \%originalMacros);
foreach my $dude ($registeredUser) {
$dude->delete if (defined $dude and ref $dude eq 'WebGUI::User');
}
}