The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
use strict;
use lib 'inc';
use IO::Catch;

use vars qw($_STDOUT_ );
tie *STDOUT, 'IO::Catch', '_STDOUT_' or die $!;

# Disable all ReadLine functionality
$ENV{PERL_RL} = 0;
delete $ENV{PAGER}
  if $ENV{PAGER};
$ENV{PERL_HTML_DISPLAY_CLASS}="HTML::Display::Dump";

use Test::More tests => 6;

use_ok('WWW::Mechanize::Shell');
my $s = WWW::Mechanize::Shell->new( 'test', rcfile => undef, warnings => undef );
isa_ok $s, 'WWW::Mechanize::Shell';

SKIP: {
    $s->agent->{base} = 'http://example.com';
    $s->agent->update_html(<<HTML);
            <html>
                <head><base href="http://example.com" />
		<title>An HTML page</title>
		</head>
                <body>Some body</body>
            </html>
HTML
    $s->cmd('title');
    chomp $_STDOUT_;
    is($_STDOUT_,"An HTML page", "Title gets output correctly");

    undef $_STDOUT_;
    $s->agent->update_html(<<HTML);
            <html>
                <head><base href="http://example.com" />
		<title></title>
		</head>
                <body>Some body</body>
            </html>
HTML
    $s->cmd('title');
    chomp $_STDOUT_;
    is($_STDOUT_,"<empty title>", "Empty title gets output correctly");

    undef $_STDOUT_;
    $s->agent->update_html(<<HTML);
            <html>
                <head><base href="http://example.com" />
		<title>0</title>
		</head>
                <body>Some body</body>
            </html>
HTML
    $s->cmd('title');
    chomp $_STDOUT_;
    is($_STDOUT_,"0", "False title gets output correctly");

    undef $_STDOUT_;
    $s->agent->update_html(<<HTML);
            <html>
                <head><base href="http://example.com" />
		</head>
                <body>Some body</body>
            </html>
HTML
    $s->cmd('title');
    chomp $_STDOUT_;
    is($_STDOUT_,"<missing title>", "A missing title gets output correctly");
};