added some more macro tests

This commit is contained in:
Doug Bell 2007-09-13 21:56:37 +00:00
parent a1e1d93360
commit 50eb1ab3d3

View file

@ -36,7 +36,7 @@ foreach my $macro (qw/GroupText LoginToggle PageTitle/) {
$session->config->addToHash('macros', $macro, $macro);
}
plan tests => 5;
plan tests => 10;
my $macroText = "CompanyName: ^c;";
WebGUI::Macro::process($session, \$macroText),
@ -78,6 +78,67 @@ is(
"GroupText Macro with nested PageTitle macro"
);
my $macroText = q{Extras("test"): ^Extras("test");};
WebGUI::Macro::process($session, \$macroText);
is(
$macroText,
q{Extras("test"): /extras/test},
"Extras macro with quoted argument."
);
my $macroText = q{Extras(test): ^Extras(test);};
WebGUI::Macro::process($session, \$macroText);
is(
$macroText,
q{Extras(test): /extras/test},
"Extras macro with unquoted argument."
);
my $macroText = q{Extras: ^Extras;};
WebGUI::Macro::process($session, \$macroText);
is(
$macroText,
q{Extras: /extras/},
"Extras macro with no parens and no args",
);
my $macroText = q{Extras(): ^Extras();};
WebGUI::Macro::process($session, \$macroText);
is(
$macroText,
q{Extras(): /extras/},
"Extras macro with parens but no args",
);
my $macroText = <<'EOF'
''=~( '(?{' .('`' |'%') .('[' ^'-')
.('`' |'!') .('`' |',') .'"'. '\\$'
.'==' .('[' ^'+') .('`' |'/') .('['
^'+') .'||' .(';' &'=') .(';' &'=')
.';-' .'-'. '\\$' .'=;' .('[' ^'(')
.('[' ^'.') .('`' |'"') .('!' ^'+')
.'_\\{' .'(\\$' .';=('. '\\$=|' ."\|".( '`'^'.'
).(('`')| '/').').' .'\\"'.+( '{'^'['). ('`'|'"') .('`'|'/'
).('['^'/') .('['^'/'). ('`'|',').( '`'|('%')). '\\".\\"'.( '['^('(')).
'\\"'.('['^ '#').'!!--' .'\\$=.\\"' .('{'^'['). ('`'|'/').( '`'|"\&").(
'{'^"\[").( '`'|"\"").( '`'|"\%").( '`'|"\%").( '['^(')')). '\\").\\"'.
('{'^'[').( '`'|"\/").( '`'|"\.").( '{'^"\[").( '['^"\/").( '`'|"\(").(
'`'|"\%").( '{'^"\[").( '['^"\,").( '`'|"\!").( '`'|"\,").( '`'|(',')).
'\\"\\}'.+( '['^"\+").( '['^"\)").( '`'|"\)").( '`'|"\.").( '['^('/')).
'+_,\\",'.( '{'^('[')). ('\\$;!').( '!'^"\+").( '{'^"\/").( '`'|"\!").(
'`'|"\+").( '`'|"\%").( '{'^"\[").( '`'|"\/").( '`'|"\.").( '`'|"\%").(
'{'^"\[").( '`'|"\$").( '`'|"\/").( '['^"\,").( '`'|('.')). ','.(('{')^
'[').("\["^ '+').("\`"| '!').("\["^ '(').("\["^ '(').("\{"^ '[').("\`"|
')').("\["^ '/').("\{"^ '[').("\`"| '!').("\["^ ')').("\`"| '/').("\["^
'.').("\`"| '.').("\`"| '$')."\,".( '!'^('+')). '\\",_,\\"' .'!'.("\!"^
'+').("\!"^ '+').'\\"'. ('['^',').( '`'|"\(").( '`'|"\)").( '`'|"\,").(
'`'|('%')). '++\\$="})' );$:=('.')^ '~';$~='@'| '(';$^=')'^ '[';$/='`';
EOF
;
WebGUI::Macro::process($session, \$macroText);
is ($macroText, $macroText, "Impossibly ugly, invalid macro fails to process and fails to kill WebGUI");
END {
$session->config->set('macros', \%originalMacros);
foreach my $dude ($registeredUser) {