The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -T

use warnings;
use strict;
use Test::More;

BEGIN {
    eval 'use Test::Warn';
    plan skip_all => 'Test::Warn required to test warn' if $@;
    plan tests => 6;
}

BEGIN {
    use_ok( 'WWW::Mechanize' );
}

my $m = WWW::Mechanize->new;
isa_ok( $m, 'WWW::Mechanize' );

warning_like {
    $m->warn( 'Something bad' );
} qr[Something bad.+line \d+], 'Passes the message, and includes the line number';

warning_like {
    $m->quiet(1);
    $m->warn( 'Something bad' );
} undef, 'Quiets correctly';

my $hushed = WWW::Mechanize->new( quiet => 1 );
isa_ok( $hushed, 'WWW::Mechanize' );
warning_like {
    $hushed->warn( 'Something bad' );
} undef, 'Quiets correctly';