Debian lenny version packages
[pkg-perl] / deb-src / libwww-mechanize-perl / libwww-mechanize-perl-1.34 / t / local / page_stack.t
1 #!perl
2
3 use warnings;
4 use strict;
5 use Test::More tests => 16;
6
7 use lib 't/local';
8 use LocalServer;
9
10 BEGIN {
11     delete @ENV{ grep { lc eq 'http_proxy' } keys %ENV };
12     delete @ENV{ qw( IFS CDPATH ENV BASH_ENV ) };
13     use_ok( 'WWW::Mechanize' );
14 }
15
16
17 my $server = LocalServer->spawn;
18 isa_ok( $server, 'LocalServer' );
19
20 STANDARD_STACK: {
21     my $mech = WWW::Mechanize->new;
22     isa_ok( $mech, 'WWW::Mechanize', 'Created object' );
23
24     is( scalar @{$mech->{page_stack}}, 0, 'Page stack starts empty' );
25     ok( $mech->get($server->url)->is_success, 'Got start page' );
26     is( scalar @{$mech->{page_stack}}, 0, 'Page stack starts empty' );
27     $mech->_push_page_stack();
28     is( scalar @{$mech->{page_stack}}, 1, 'Pushed item onto page stack' );
29     $mech->_push_page_stack();
30     is( scalar @{$mech->{page_stack}}, 2, 'Pushed item onto page stack' );
31     $mech->_pop_page_stack();
32     is( scalar @{$mech->{page_stack}}, 1, 'Popped item from page stack' );
33     $mech->_pop_page_stack();
34     is( scalar @{$mech->{page_stack}}, 0, 'Popped item from page stack' );
35     $mech->_pop_page_stack();
36     is( scalar @{$mech->{page_stack}}, 0, 'Cannot pop beyond end of page stack' );
37 }
38
39 NO_STACK: {
40     my $mech = WWW::Mechanize->new;
41     isa_ok( $mech, 'WWW::Mechanize', 'Created object' );
42     $mech->stack_depth(0);
43
44     is( scalar @{$mech->{page_stack}}, 0, 'Page stack starts empty' );
45     ok( $mech->get($server->url)->is_success, 'Got start page' );
46     is( scalar @{$mech->{page_stack}}, 0, 'Page stack starts empty' );
47     $mech->_push_page_stack();
48     is( scalar @{$mech->{page_stack}}, 0, 'Pushing has no effect' );
49 }