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 )