Android-ElectricSheep-Automator
view release on metacpan or search on metacpan
lib/Android/ElectricSheep/Automator/ADB.pm view on Meta::CPAN
# adb shell xyz
# will set $? to 127
# but
# e.g. adb shell input keycombination 1 2
# will exit with $?=0 and print some error message!
# Searching for 'Error:' in STDERR is ok?
# TODO: this needs to be dealt with here.
if( (! $res) || $@ || ($err=~/\bError\: /) ){
carp "STDERR:\n${err}\nOTHER INFO: $@\n\n"
.(($@=~/IPC::Run: .*timed out/)
?"\nWARNING: it looks like a timeout has occured.\n\n"
:""
)
.__PACKAGE__.'::run()'." : error, failed to execute command (see above for stderr): ".join(' ', @cmd)
; # end carp
return [1, $out, $err];
}
return [0, $out, $err];
}
sub start_server { shift->run('start-server') }
xt/live/300-dump_current_screen_ui.t view on Meta::CPAN
ok(defined($mother), 'Android::ElectricSheep::Automator->new()'." : called and got defined result.") or BAIL_OUT;
# returns a hash of 'raw' and 'XML::LibXML'
my $res = $mother->dump_current_screen_ui();
ok(defined($res), 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : called and got good result.") or BAIL_OUT;
is(ref($res), 'HASH', 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : called and got good result which is a HASHref.") or BAIL_OUT("no it is '".ref($res)."'");
for ('raw', 'XML::LibXML'){
ok(exists($res->{$_}), 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : result contains key '$_'.") or BAIL_OUT("--BEGIN result:\n${res}\n--END result.\nno it is as above.");
ok(defined($res->{$_}), 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : result contains key '$_' which is defined.") or BAIL_OUT("--BEGIN result:\n${res}\n--END result.\nno it is as above.");
}
ok($res->{'raw'}=~/^<\?xml/, 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : called and got good result which looks like an XML string.") or BAIL_OUT("--BEGIN result:\n${res}\n--END result.\nno it is as above.");
# now save it to a file
my $outfile = File::Spec->catfile($tmpdir, 'ui.xml');
$res = $mother->dump_current_screen_ui({
'filename' => $outfile
});
ok(defined($res), 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : called and got good result.") or BAIL_OUT;
is(ref($res), 'HASH', 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : called and got good result which is a HASHref.") or BAIL_OUT("no it is '".ref($res)."'");
for ('raw', 'XML::LibXML', 'XML::LibXML::XPathContext'){
ok(exists($res->{$_}), 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : result contains key '$_'.") or BAIL_OUT("--BEGIN result:\n${res}\n--END result.\nno it is as above.");
ok(defined($res->{$_}), 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : result contains key '$_' which is defined.") or BAIL_OUT("--BEGIN result:\n${res}\n--END result.\nno it is as above.");
}
ok($res->{'raw'}=~/^<\?xml/, 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : called and got good result which looks like an XML string.") or BAIL_OUT("--BEGIN result:\n${res}\n--END result.\nno it is as above.");
ok(-f $outfile, 'Android::ElectricSheep::Automator->dump_current_screen_ui()'." : called and result saved to output file '$outfile'.") or BAIL_OUT;
diag "temp dir: $tmpdir ..." if exists($ENV{'PERL_TEST_TEMPDIR_TINY_NOCLEANUP'}) && $ENV{'PERL_TEST_TEMPDIR_TINY_NOCLEANUP'}>0;
# END
done_testing();
sleep(1);
( run in 0.384 second using v1.01-cache-2.11-cpan-64827b87656 )