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_multi Binary files differnew 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_one Binary files differnew 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_lwi Binary files differnew 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_lwi Binary files differnew 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_r Binary files differnew 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_rd Binary files differnew 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_rdr Binary files differnew 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_rdru Binary files differnew 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_rdrul Binary files differnew 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_lwi Binary files differnew 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_default Binary files differnew file mode 100644 index 0000000..2c52059 --- /dev/null +++ b/test/scr/thumbnail_default |