#!/opt/perl58/bin/perl -w use Test::More 'no_plan'; package Catch; sub TIEHANDLE { my($class, $var) = @_; return bless { var => $var }, $class; } sub PRINT { my($self) = shift; ${'main::'.$self->{var}} .= join '', @_; } sub OPEN {} # XXX Hackery in case the user redirects sub CLOSE {} # XXX STDERR/STDOUT. This is not the behavior we want. sub READ {} sub READLINE {} sub GETC {} sub BINMODE {} my $Original_File = 'lib/HTML/Display/Common.pm'; package main; # pre-5.8.0's warns aren't caught by a tied STDERR. $SIG{__WARN__} = sub { $main::_STDERR_ .= join '', @_; }; tie *STDOUT, 'Catch', '_STDOUT_' or die $!; tie *STDERR, 'Catch', '_STDERR_' or die $!; SKIP: { # A header testing whether we find all prerequisites : # Check for module parent eval { require parent }; skip "Need module parent to run this test", 1 if $@; # The original POD test undef $main::_STDOUT_; undef $main::_STDERR_; eval q{ my $example = sub { local $^W = 0; #line 22 lib/HTML/Display/Common.pm no warnings 'redefine'; *HTML::Display::WhizBang::display_html = sub {}; package HTML::Display::WhizBang; use parent 'HTML::Display::Common'; sub new { my ($class) = shift; my %args = @_; my $self = $class->SUPER::new(%args); # do stuff $self; }; ; } }; is($@, '', "example from line 22"); }; SKIP: { # A header testing whether we find all prerequisites : # Check for module HTML::Display eval { require HTML::Display }; skip "Need module HTML::Display to run this test", 1 if $@; # Check for module parent eval { require parent }; skip "Need module parent to run this test", 1 if $@; # The original POD test { undef $main::_STDOUT_; undef $main::_STDERR_; #line 22 lib/HTML/Display/Common.pm no warnings 'redefine'; *HTML::Display::WhizBang::display_html = sub {}; package HTML::Display::WhizBang; use parent 'HTML::Display::Common'; sub new { my ($class) = shift; my %args = @_; my $self = $class->SUPER::new(%args); # do stuff $self; }; package main; use HTML::Display; my $browser = HTML::Display->new( class => "HTML::Display::WhizBang"); isa_ok($browser,"HTML::Display::Common"); undef $main::_STDOUT_; undef $main::_STDERR_; } }; SKIP: { # A header testing whether we find all prerequisites : # The original POD test undef $main::_STDOUT_; undef $main::_STDERR_; }; SKIP: { # A header testing whether we find all prerequisites : # Check for module HTML::Display::Dump eval { require HTML::Display::Dump }; skip "Need module HTML::Display::Dump to run this test", 1 if $@; # The original POD test undef $main::_STDOUT_; undef $main::_STDERR_; eval q{ my $example = sub { local $^W = 0; #line 72 lib/HTML/Display/Common.pm no warnings 'redefine'; *HTML::Display::new = sub { my $class = shift; require HTML::Display::Dump; return HTML::Display::Dump->new(@_); }; my $html = "

Hello world!

"; my $browser = HTML::Display->new(); $browser->display( html => $html ); ; } }; is($@, '', "example from line 72"); }; SKIP: { # A header testing whether we find all prerequisites : # Check for module HTML::Display::Dump eval { require HTML::Display::Dump }; skip "Need module HTML::Display::Dump to run this test", 1 if $@; # The original POD test { undef $main::_STDOUT_; undef $main::_STDERR_; #line 72 lib/HTML/Display/Common.pm no warnings 'redefine'; *HTML::Display::new = sub { my $class = shift; require HTML::Display::Dump; return HTML::Display::Dump->new(@_); }; my $html = "

Hello world!

"; my $browser = HTML::Display->new(); $browser->display( html => $html ); isa_ok($browser, "HTML::Display::Dump","The browser"); is( $main::_STDOUT_,"

Hello world!

","HTML gets output"); undef $main::_STDOUT_; undef $main::_STDERR_; } }; SKIP: { # A header testing whether we find all prerequisites : # The original POD test undef $main::_STDOUT_; undef $main::_STDERR_; }; SKIP: { # A header testing whether we find all prerequisites : # Check for module HTML::Display::Dump eval { require HTML::Display::Dump }; skip "Need module HTML::Display::Dump to run this test", 1 if $@; # The original POD test undef $main::_STDOUT_; undef $main::_STDERR_; eval q{ my $example = sub { local $^W = 0; #line 97 lib/HTML/Display/Common.pm no warnings 'redefine'; *HTML::Display::new = sub { my $class = shift; require HTML::Display::Dump; return HTML::Display::Dump->new(@_); }; my $html = ''; my $browser = HTML::Display->new(); # This will display part of the Google logo $browser->display( html => $html, base => 'http://www.google.com' ); ; } }; is($@, '', "example from line 97"); }; SKIP: { # A header testing whether we find all prerequisites : # Check for module HTML::Display::Dump eval { require HTML::Display::Dump }; skip "Need module HTML::Display::Dump to run this test", 1 if $@; # The original POD test { undef $main::_STDOUT_; undef $main::_STDERR_; #line 97 lib/HTML/Display/Common.pm no warnings 'redefine'; *HTML::Display::new = sub { my $class = shift; require HTML::Display::Dump; return HTML::Display::Dump->new(@_); }; my $html = ''; my $browser = HTML::Display->new(); # This will display part of the Google logo $browser->display( html => $html, base => 'http://www.google.com' ); isa_ok($browser, "HTML::Display::Dump","The browser"); is( $main::_STDOUT_, '', "HTML gets output"); $main::_STDOUT_ = ""; $browser->display( html => $html, location => 'http://www.google.com' ); is( $main::_STDOUT_, '', "HTML gets output"); undef $main::_STDOUT_; undef $main::_STDERR_; } }; SKIP: { # A header testing whether we find all prerequisites : # The original POD test undef $main::_STDOUT_; undef $main::_STDERR_; };