AnyEvent-FTP
view release on metacpan or search on metacpan
t/anyevent_ftp_client.t view on Meta::CPAN
local $/;
<$fh>;
};
is $remote, $data, 'remote matches';
is $called_open, 1, 'open emit';
is $called_close, 1, 'close emit';
};
unlink $fn;
ok !-e $fn, 'remote file deleted';
do {
my $data = 'some data';
my $xfer = eval { $client->stor('foo.txt', \$data) };
diag $@ if $@;
isa_ok $xfer, 'AnyEvent::FTP::Client::Transfer';
my $ret = eval { $xfer->recv; };
diag $@ if $@;
isa_ok $ret, 'AnyEvent::FTP::Response';
ok -e $fn, 'remote file created';
my $remote = do {
open my $fh, '<', $fn;
local $/;
<$fh>;
};
is $remote, $data, 'remote matches';
is $xfer->remote_name, 'foo.txt', 'remote_name = foo.txt';
};
unlink $fn;
ok !-e $fn, 'remote file deleted';
do {
my $data = 'some data';
my $cb = do {
my $buffer = $data;
sub {
my $tmp = $buffer;
undef $buffer;
$tmp;
};
};
my $ret = eval { $client->stor('foo.txt', $cb)->recv; };
diag $@ if $@;
isa_ok $ret, 'AnyEvent::FTP::Response';
ok -e $fn, 'remote file created';
my $remote = do {
open my $fh, '<', $fn;
local $/;
<$fh>;
};
is $remote, $data, 'remote matches';
};
unlink $fn;
ok !-e $fn, 'remote file deleted';
do {
my $data = 'some data';
my $glob = do {
my $dir = tempdir( CLEANUP => 1);
my $fn = File::Spec->catfile($dir, 'flub.txt');
open my $out, '>', $fn;
binmode $out;
print $out $data;
close $out;
open my $in, '<', $fn;
binmode $in;
$in;
};
my $ret = eval { $client->stor('foo.txt', $glob)->recv; };
diag $@ if $@;
isa_ok $ret, 'AnyEvent::FTP::Response';
ok -e $fn, 'remote file created';
my $remote = do {
open my $fh, '<', $fn;
local $/;
<$fh>;
};
is $remote, $data, 'remote matches';
};
unlink $fn;
ok !-e $fn, 'remote file deleted';
$client->quit->recv;
};
}
};
subtest 'login' => sub {
reset_timeout;
my $client = eval { AnyEvent::FTP::Client->new };
diag $@ if $@;
isa_ok $client, 'AnyEvent::FTP::Client';
prep_client( $client );
our $config;
$client->connect($config->{host}, $config->{port})->recv;
my $res = eval { $client->login($config->{user}, $config->{pass})->recv };
diag $@ if $@;
isa_ok $res, 'AnyEvent::FTP::Response';
is $res->code, 230, 'code = 230';
is eval { $client->quit->recv->code }, 221, 'code = 221';
diag $@ if $@;
$client->connect($config->{host}, $config->{port})->recv;
eval { $client->login('bogus', 'bogus')->recv };
my $error = $@;
isa_ok $error, 'AnyEvent::FTP::Response';
is $error->code, 530, 'code = 530';
eval { $client->quit->recv };
};
subtest 'uri' => sub {
reset_timeout;
skip_all 'requires client and server on localhost' if $ENV{AEF_REMOTE};
skip_all 'requires URI' unless eval q{ require URI };
my $client = eval { AnyEvent::FTP::Client->new };
diag $@ if $@;
isa_ok $client, 'AnyEvent::FTP::Client';
( run in 2.508 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )