CPAN-Testers-WWW-Reports-Query-AJAX
view release on metacpan or search on metacpan
t/10query.t view on Meta::CPAN
pc_na => 0,
pc_unknown => 0
}
}
);
#----------------------------------------------------------------------------
# Test Conditions
BEGIN {
eval "use Test::MockObject";
$nomock = $@;
unless($nomock) {
$mock1 = Test::MockObject->new();
$mock1->fake_module( 'WWW::Mechanize',
'agent_alias' => \&fake_alias,
'get' => \&fake_get,
'success' => \&fake_success,
'content' => \&fake_content );
$mock1->fake_new( 'WWW::Mechanize' );
$mock1->mock( 'agent_alias', \&fake_alias );
$mock1->mock( 'get', \&fake_get );
$mock1->mock( 'success', \&fake_success );
$mock1->mock( 'content', \&fake_content );
}
}
#----------------------------------------------------------------------------
# Test Main
SKIP: {
skip "Test::MockObject required for testing", 118 if $nomock;
my $query = CPAN::Testers::WWW::Reports::Query::AJAX->new();
is($query,undef,"no args, no object" );
for my $args (@args) {
$RAW = $args->{raw};
my $query = CPAN::Testers::WWW::Reports::Query::AJAX->new( %{$args->{args}} );
ok($query,"got response: $args->{args}{dist}" . ($args->{args}{version} ? "-$args->{args}{version}" : '') );
my $raw = $query->raw();
my $data = $query->data();
#diag( join(', ', map {"$_ => $args->{args}{$_}"} keys %{$args->{args}} ) );
#diag( "raw=$raw" );
is($query->is_success, 1, '.. returned successfully');
is($query->error, '', '.. no errors');
if($args->{results}) {
is($query->all, $args->{results}{all}, '.. counted all reports');
is($query->pass, $args->{results}{pass}, '.. counted pass reports');
is($query->fail, $args->{results}{fail}, '.. counted fail reports');
is($query->na, $args->{results}{na}, '.. counted na reports');
is($query->unknown, $args->{results}{unknown}, '.. counted unknown reports');
is($query->pc_pass, $args->{results}{pc_pass}, '.. percentage pass reports');
is($query->pc_fail, $args->{results}{pc_fail}, '.. percentage fail reports');
is($query->pc_na, $args->{results}{pc_na}, '.. percentage na reports');
is($query->pc_unknown, $args->{results}{pc_unknown}, '.. percentage unknown reports');
}
if($raw) {
my $version = $args->{args}{version} || '0.15';
if($args->{args}{format} && $args->{args}{format} eq 'html') {
is($query->{options}{format},$args->{args}{format},'.. format the same: html');
like($raw,qr{<td><a href=(\\)?"javascript:selectReports\('App-Maisha-$version'\);(\\)?">$version</a></td>},'.. got version statement in raw');
ok(1,".. we don't parse html format");
} elsif($args->{args}{format} && $args->{args}{format} eq 'csv') {
is($query->{options}{format},$args->{args}{format},'.. format the same: csv');
like($raw,qr{$version,\d+},'.. got version statement in raw');
ok($data->{$version},'.. got version in hash');
} else { # xml
is($query->{options}{format},'xml','.. default format: xml');
like($raw,qr{<version all=(\\"\d+\\"|"\d+").*?>$version</version>},'.. got version statement in raw');
ok($data->{$version},'.. got version in hash');
}
} else {
diag($query->error());
ok($query->error());
ok(1,'..skipped, request did not succeed');
}
}
}
# crude, but it'll hopefully do ;)
sub pingtest {
my $domain = 'www.cpantesters.org';
my $cmd = $^O =~ /solaris/i ? "ping -s $domain 56 1" :
$^O =~ /dos|os2|mswin32|netware|cygwin/i ? "ping -n 1 $domain "
: "ping -c 1 $domain >/dev/null 2>&1";
system($cmd);
my $retcode = $? >> 8;
# ping returns 1 if unable to connect
return $retcode;
}
sub fake_alias {}
sub fake_get {}
sub fake_success { return 1; }
sub fake_content { return $RAW; }
( run in 2.353 seconds using v1.01-cache-2.11-cpan-5a3173703d6 )