1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
#!/usr/bin/perl
use strict;
use warnings;
package MockCGI;
sub new
{
my $self = {};
bless $self, shift;
return $self;
}
sub redirect
{
my ( $self, $path ) = (@_);
return "ReDirect-To: $path";
}
sub script_name
{
my $self = shift;
return "{{{Script Name}}}";
}
package main;
use vars qw($exit_count);
BEGIN
{
*CORE::GLOBAL::exit = sub { ++$exit_count; };
}
use lib './t/lib';
use Test::More tests => 6;
use HTML::Widgets::NavMenu::Test::Data;
use HTML::Widgets::NavMenu::Test::Stdout;
use HTML::Widgets::NavMenu ();
my $test_data = get_test_data();
{
eval {
my $nav_menu = HTML::Widgets::NavMenu->new(
'path_info' => "",
@{ $test_data->{'minimal'} },
'ul_classes' => [ "navbarmain", ("navbarnested") x 5 ],
);
};
# TEST
isa_ok( $@, "HTML::Widgets::NavMenu::Error::Redirect", "\$@" );
reset_out_buffer();
$exit_count = 0;
$@->CGIpm_perform_redirect( MockCGI->new() );
# TEST
is(
get_out_buffer(),
"ReDirect-To: {{{Script Name}}}/",
"Checking that redirect-to works"
);
# TEST
is( $exit_count, 1, "Counting an exit" );
}
{
eval {
my $nav_menu = HTML::Widgets::NavMenu->new(
'path_info' => "/hello/world//",
@{ $test_data->{'minimal'} },
'ul_classes' => [ "navbarmain", ("navbarnested") x 5 ],
);
};
# TEST
isa_ok( $@, "HTML::Widgets::NavMenu::Error::Redirect", "\$@" );
reset_out_buffer();
$exit_count = 0;
$@->CGIpm_perform_redirect( MockCGI->new() );
# TEST
is(
get_out_buffer(),
"ReDirect-To: {{{Script Name}}}/hello/world/",
"Checking that redirect-to works"
);
# TEST
is( $exit_count, 1, "Counting an exit" );
}
|