summaryrefslogtreecommitdiff
path: root/test/feh.i
diff options
context:
space:
mode:
Diffstat (limited to 'test/feh.i')
-rwxr-xr-xtest/feh.i48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/feh.i b/test/feh.i
new file mode 100755
index 0000000..0a38bf1
--- /dev/null
+++ b/test/feh.i
@@ -0,0 +1,48 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use 5.010;
+
+use Test::More tests => 3;
+use X11::GUITest qw/
+ FindWindowLike
+ StartApp
+ SendKeys
+ WaitWindowViewable
+/;
+
+sub feh_start {
+ my ($opts, $files) = @_;
+
+ $opts //= q{};
+ $files //= 'test/ok.png';
+
+ StartApp("feh ${opts} ${files}");
+ if (WaitWindowViewable(qr{^feh}) == 0) {
+ BAIL_OUT("Unable to start feh ${opts} ${files}");
+ }
+}
+
+sub test_no_win {
+ my ($reason) = @_;
+
+ for (1 .. 10) {
+ sleep(0.1);
+ if (FindWindowLike(qr{^feh}) == 0) {
+ pass("Window closed ($reason)");
+ return;
+ }
+ }
+ fail("Window closed ($reason)");
+ BAIL_OUT("unclosed window still open, cannot continue");
+}
+
+if (FindWindowLike(qr{^feh})) {
+ BAIL_OUT('It appears you have an open feh window. Please close it.');
+}
+
+for my $key (qw/q x {ESC}/) {
+ feh_start();
+ SendKeys($key);
+ test_no_win("$key pressed");
+}