App-Sky
view release on metacpan or search on metacpan
#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 14;
use Test::Differences (qw( eq_or_diff ));
use App::Sky::Module ();
use App::Sky::Exception ();
{
my $m = App::Sky::Module->new(
{
base_upload_cmd => [qw(rsync -a -v --progress --inplace)],
dest_upload_prefix => 'hostgator:public_html/',
dest_upload_url_prefix => 'http://www.shlomifish.org/',
}
);
# TEST
ok( $m, 'Module App::Sky::Module was created.' );
# TEST
eq_or_diff(
$m->base_upload_cmd(),
[qw(rsync -a -v --progress --inplace)],
"base_upload_cmd was set.",
);
{
my $results = $m->get_upload_results(
{
'filenames' => ['Shine4U.webm'],
'target_dir' => 'Files/files/video/',
}
);
# TEST
ok( $results, "Results were returned." );
# TEST
eq_or_diff(
$results->upload_cmd(),
[
qw(rsync -a -v --progress --inplace Shine4U.webm hostgator:public_html/Files/files/video/)
],
"results->upload_cmd() is correct.",
);
# TEST
eq_or_diff(
[ map { $_->as_string() } @{ $results->urls() } ],
[ 'http://www.shlomifish.org/Files/files/video/Shine4U.webm', ],
'The result URLs are correct.',
);
}
{
my $results = $m->get_upload_results(
{
'filenames' => ['../../My-Lemon.webm'],
'target_dir' => 'Files/files/video/',
}
);
# TEST
ok( $results, "../../ Results were returned." );
# TEST
eq_or_diff(
$results->upload_cmd(),
[
qw(rsync -a -v --progress --inplace ../../My-Lemon.webm hostgator:public_html/Files/files/video/)
],
"../../ results->upload_cmd() is correct.",
);
# TEST
eq_or_diff(
[ map { $_->as_string() } @{ $results->urls() } ],
[ 'http://www.shlomifish.org/Files/files/video/My-Lemon.webm', ],
'URLs for using basename.',
);
}
{
my $results = $m->get_upload_results(
{
'filenames' => ['/home/shlomif/progs/perl/MetaData.pm'],
'target_dir' => 'share-dir/code/',
}
);
# TEST
ok( $results, "Absolute URL - results obj was returned." );
# TEST
eq_or_diff(
$results->upload_cmd(),
[
qw(rsync -a -v --progress --inplace /home/shlomif/progs/perl/MetaData.pm hostgator:public_html/share-dir/code/)
],
"Absolute URL - results->upload_cmd() is correct.",
);
# TEST
eq_or_diff(
[ map { $_->as_string() } @{ $results->urls() } ],
[ 'http://www.shlomifish.org/share-dir/code/MetaData.pm', ],
'Absolute URL - URLs for using basename.',
);
}
}
{
my $m = App::Sky::Module->new(
{
base_upload_cmd => [qw(rsync -a -v --progress --inplace)],
dest_upload_prefix => 'shlomif@perl-begin.org:sites/perl-begin',
dest_upload_url_prefix => 'http://perl-begin.org/',
}
);
{
eval {
my $results = $m->get_upload_results(
{
'filenames' => ['/home/shlomif/progs/foo:bar.pm'],
'target_dir' => 'Files/files/code/',
}
);
};
my $E = $@;
# TEST
ok( $E, 'An exception was thrown.' );
# TEST
isa_ok(
$E,
'App::Sky::Exception::Upload::Filename::InvalidChars',
'Exception is right.'
);
# TEST
eq_or_diff( $E->invalid_chars(), [':'],
"Invalid characters is fine.", );
}
}
( run in 1.303 second using v1.01-cache-2.11-cpan-b16cb0d3907 )