WWW-Mechanize

 view release on metacpan or  search on metacpan

t/upload.t  view on Meta::CPAN

#!perl

use strict;
use warnings;
use Test::More tests => 5;
use URI::file ();

BEGIN {
    delete @ENV{qw( http_proxy HTTP_PROXY PATH IFS CDPATH ENV BASH_ENV)};
}
use_ok('WWW::Mechanize');

my $mech = WWW::Mechanize->new( cookie_jar => undef );
isa_ok( $mech, 'WWW::Mechanize' );

my $uri = URI::file->new_abs('t/upload.html')->as_string;
$mech->get($uri);
ok( $mech->success, $uri );

my $form      = $mech->form_number(1);
my $reqstring = $form->click->as_string;
$reqstring =~ s/\r//g;

# trim off possible extra newline
$reqstring =~ s/^\Z\n//m;

my $wanted = <<'EOT';
POST http://localhost/
Content-Length: 77
Content-Type: multipart/form-data; boundary=xYzZY

--xYzZY
Content-Disposition: form-data; name="submit"

Submit
--xYzZY--
EOT

is( $reqstring, $wanted, 'Proper posting' );

$mech->field( 'upload', 'dist.ini' );
$reqstring = $form->click->as_string;
like(
    $reqstring, qr/WWW-Mechanize/,
    'The uploaded file should be in the request'
);



( run in 1.035 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )