diff options
Diffstat (limited to 'test')
| -rwxr-xr-x | test/feh-scr.i | 143 | ||||
| -rwxr-xr-x | test/run-interactive | 2 | ||||
| -rw-r--r-- | test/scr/draw_all_multi | bin | 0 -> 11416 bytes | |||
| -rw-r--r-- | test/scr/draw_all_one | bin | 0 -> 11113 bytes | |||
| -rw-r--r-- | test/scr/feh_full_lwi | bin | 0 -> 17898 bytes | |||
| -rw-r--r-- | test/scr/feh_lwi | bin | 0 -> 19070 bytes | |||
| -rw-r--r-- | test/scr/feh_lwi_scroll_r | bin | 0 -> 19072 bytes | |||
| -rw-r--r-- | test/scr/feh_lwi_scroll_rd | bin | 0 -> 19081 bytes | |||
| -rw-r--r-- | test/scr/feh_lwi_scroll_rdr | bin | 0 -> 19075 bytes | |||
| -rw-r--r-- | test/scr/feh_lwi_scroll_rdru | bin | 0 -> 19066 bytes | |||
| -rw-r--r-- | test/scr/feh_lwi_scroll_rdrul | bin | 0 -> 19072 bytes | |||
| -rw-r--r-- | test/scr/feh_scaledown_lwi | bin | 0 -> 19744 bytes | |||
| -rw-r--r-- | test/scr/thumbnail_default | bin | 0 -> 1712 bytes | 
13 files changed, 144 insertions, 1 deletions
| diff --git a/test/feh-scr.i b/test/feh-scr.i new file mode 100755 index 0000000..a67b511 --- /dev/null +++ b/test/feh-scr.i @@ -0,0 +1,143 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use 5.010; +use autodie qw/:all/; + +use Cwd; +use GD qw/:DEFAULT :cmp/; +use Test::More tests => 11; +use Time::HiRes qw/sleep/; +use X11::GUITest qw/:ALL/; + +my ($pid_xnest, $pid_twm); +my $win; +my ($width, $height); +my $pwd = getcwd(); + +sub waitfor(&) { +	my ($sub) = @_; +	my $out; +	for (1 .. 40) { +		sleep(0.05); +		$out = &{$sub}; +		if ($out) { +			return $out; +		} +	} +	return 0; +} + +sub feh_start { +	my ($opts, $files) = @_; +	my $id; + +	$opts //= q{}; +	$files //= 'test/ok/png'; + +	StartApp("feh ${opts} ${files}"); +	($id) = WaitWindowViewable(qr{^feh}); + +	if (not $id) { +		BAIL_OUT("Unable to start feh ${opts} ${files}"); +	} + +	if (not SetInputFocus($id)) { +		BAIL_OUT("Unable to focus window"); +	} + +	return $id; +} + +sub feh_stop { +	SendKeys('{ESC}'); +	if (not waitfor { not FindWindowLike(qr{^feh}) }) { +		BAIL_OUT("Unclosed feh window still open, cannot continue"); +	} +} + +sub same_files { +	my ($one, $two) = @_; + +	my $img_one = GD::Image->new($one); +	my $img_two = GD::Image->new($two); + +	return( ! ($img_one->compare($img_two) & GD_CMP_IMAGE)); +} + +sub check_scr { +	my ($file) = @_; + +	system("import -silent -window root /tmp/feh_${$}.png"); + +	ok( +		same_files("test/scr/${file}", "/tmp/feh_${$}.png"), +		"X root window is test/scr/${file}" +	); +} + +if (FindWindowLike(qr{^feh})) { +	BAIL_OUT('It appears you have an open feh window. Please close it.'); +} + +feh_start( +	"--draw-actions --draw-filename --info 'echo foo; echo bar' " +	. '--action quux --action5 baz --action8 "nrm \'%f\'"', +	'test/bg/exact/in test/bg/large/w/in test/bg/large/h/in' +); +check_scr('draw_all_multi'); +feh_stop(); + +feh_start( +	"--draw-actions --draw-filename --info 'echo foo; echo bar' " +	. '--action quux --action5 baz --action8 "nrm \'%f\'"', +	'test/bg/exact/in' +); +check_scr('draw_all_one'); +feh_stop(); + +feh_start( +	'--fullscreen', +	'test/bg/large/w/in' +); +check_scr('feh_full_lwi'); +feh_stop(); + +feh_start( +	q{}, +	'test/bg/large/w/in' +); +check_scr('feh_lwi'); + +SendKeys('^({RIG})'); +check_scr('feh_lwi_scroll_r'); + +SendKeys('^({DOW})'); +check_scr('feh_lwi_scroll_rd'); + +SendKeys('^({RIG})'); +check_scr('feh_lwi_scroll_rdr'); + +SendKeys('^({UP})'); +check_scr('feh_lwi_scroll_rdru'); + +SendKeys('^({LEF})'); +check_scr('feh_lwi_scroll_rdrul'); + +feh_stop(); + +feh_start( +	'--scale-down', +	'test/bg/large/w/in' +); +check_scr('feh_scaledown_lwi'); +feh_stop(); + +feh_start( +	'--thumbnails', +	'test/ok/gif test/ok/jpg test/ok/png test/ok/pnm' +); +check_scr('thumbnail_default'); +feh_stop(); + +unlink("/tmp/feh_${$}.png"); diff --git a/test/run-interactive b/test/run-interactive index 6a3e5e3..fab6517 100755 --- a/test/run-interactive +++ b/test/run-interactive @@ -3,7 +3,7 @@  Xnest -geometry 500x500 :7 > /dev/null 2>&1 &  pid=${!} -DISPLAY=:7 prove -v test/feh.i +DISPLAY=:7 prove test/feh-scr.i test/feh.i  ret=${?}  kill ${pid} diff --git a/test/scr/draw_all_multi b/test/scr/draw_all_multiBinary files differ new file mode 100644 index 0000000..d105fbe --- /dev/null +++ b/test/scr/draw_all_multi diff --git a/test/scr/draw_all_one b/test/scr/draw_all_oneBinary files differ new file mode 100644 index 0000000..7a3b796 --- /dev/null +++ b/test/scr/draw_all_one diff --git a/test/scr/feh_full_lwi b/test/scr/feh_full_lwiBinary files differ new file mode 100644 index 0000000..e46cb05 --- /dev/null +++ b/test/scr/feh_full_lwi diff --git a/test/scr/feh_lwi b/test/scr/feh_lwiBinary files differ new file mode 100644 index 0000000..16855f7 --- /dev/null +++ b/test/scr/feh_lwi diff --git a/test/scr/feh_lwi_scroll_r b/test/scr/feh_lwi_scroll_rBinary files differ new file mode 100644 index 0000000..5003a88 --- /dev/null +++ b/test/scr/feh_lwi_scroll_r diff --git a/test/scr/feh_lwi_scroll_rd b/test/scr/feh_lwi_scroll_rdBinary files differ new file mode 100644 index 0000000..333b9e3 --- /dev/null +++ b/test/scr/feh_lwi_scroll_rd diff --git a/test/scr/feh_lwi_scroll_rdr b/test/scr/feh_lwi_scroll_rdrBinary files differ new file mode 100644 index 0000000..1e921f1 --- /dev/null +++ b/test/scr/feh_lwi_scroll_rdr diff --git a/test/scr/feh_lwi_scroll_rdru b/test/scr/feh_lwi_scroll_rdruBinary files differ new file mode 100644 index 0000000..455a2c2 --- /dev/null +++ b/test/scr/feh_lwi_scroll_rdru diff --git a/test/scr/feh_lwi_scroll_rdrul b/test/scr/feh_lwi_scroll_rdrulBinary files differ new file mode 100644 index 0000000..5003a88 --- /dev/null +++ b/test/scr/feh_lwi_scroll_rdrul diff --git a/test/scr/feh_scaledown_lwi b/test/scr/feh_scaledown_lwiBinary files differ new file mode 100644 index 0000000..47d5add --- /dev/null +++ b/test/scr/feh_scaledown_lwi diff --git a/test/scr/thumbnail_default b/test/scr/thumbnail_defaultBinary files differ new file mode 100644 index 0000000..2c52059 --- /dev/null +++ b/test/scr/thumbnail_default | 
