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 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
#!/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/WWW/Mechanize/Shell.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 WWW::Mechanize::Shell
eval { require WWW::Mechanize::Shell };
skip "Need module WWW::Mechanize::Shell to run this test", 1
if $@;
# Check for module strict
eval { require strict };
skip "Need module strict 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 33 lib/WWW/Mechanize/Shell.pm
#!/usr/bin/perl -w
use strict;
use WWW::Mechanize::Shell;
my $shell = WWW::Mechanize::Shell->new("shell");
if (@ARGV) {
$shell->source_file( @ARGV );
} else {
$shell->cmdloop;
};
;
}
};
is($@, '', "example from line 33");
};
SKIP: {
# A header testing whether we find all prerequisites :
# Check for module WWW::Mechanize::Shell
eval { require WWW::Mechanize::Shell };
skip "Need module WWW::Mechanize::Shell to run this test", 1
if $@;
# Check for module strict
eval { require strict };
skip "Need module strict to run this test", 1
if $@;
# The original POD test
{
undef $main::_STDOUT_;
undef $main::_STDERR_;
#line 33 lib/WWW/Mechanize/Shell.pm
#!/usr/bin/perl -w
use strict;
use WWW::Mechanize::Shell;
my $shell = WWW::Mechanize::Shell->new("shell");
if (@ARGV) {
$shell->source_file( @ARGV );
} else {
$shell->cmdloop;
};
BEGIN {
require WWW::Mechanize::Shell;
$ENV{PERL_RL} = 0;
$ENV{COLUMNS} = '80';
$ENV{LINES} = '24';
};
BEGIN {
no warnings 'once';
no warnings 'redefine';
*WWW::Mechanize::Shell::cmdloop = sub {};
*WWW::Mechanize::Shell::display_user_warning = sub {};
*WWW::Mechanize::Shell::source_file = sub {};
};
isa_ok( $shell, "WWW::Mechanize::Shell" );
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_;
};
|