#!/usr/bin/perl -w
use strict;
use Test::More tests => 4;
use LWP::UserAgent;
use WWW::Mechanize;
use URI;
=pod
The monkeypatch introduced since at least WWW::Mechanize 1.34 only
ever allows one instance of every LWP::UserAgent descendant to have
credentials. This test checks that this buggy behaviour is gone.
=cut
my $uri = URI->new( 'http://localhost' );
my $realm = 'myrealm';
my $ua = LWP::UserAgent->new();
my $mech1 = WWW::Mechanize->new();
my $mech2 = WWW::Mechanize->new();
my $mech3 = WWW::Mechanize->new();
$mech1->credentials('mech1','mech1');
$mech2->credentials('mech2','mech2');
my @ua = $ua->credentials;
isnt( "@ua", "mech2 mech2", 'LWP::UserAgent instance retains its old credentials' );
is_deeply( [$mech1->get_basic_credentials( $realm, $uri )], ['mech1', 'mech1'], 'First instance retains its credentials' );
is_deeply( [$mech2->get_basic_credentials( $realm, $uri )], ['mech2', 'mech2'], 'Second instance retains its credentials' );
is_deeply( [$mech3->get_basic_credentials( $realm, $uri )], [], 'Untouched instance retains its credentials' );