From f75aea0e0a57a603203e6334fba4936bc5623a74 Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@finalrewind.org>
Date: Mon, 4 Oct 2010 20:24:34 +0200
Subject: Tests for keyboard based zooming

---
 test/feh-scr.i          |  59 ++++++++++++++++++++++++++++++++++++++++++++----
 test/scr/feh_lhi        | Bin 0 -> 13552 bytes
 test/scr/feh_lhi_i      | Bin 0 -> 34338 bytes
 test/scr/feh_lhi_ii     | Bin 0 -> 71938 bytes
 test/scr/feh_lhi_iir    | Bin 0 -> 15536 bytes
 test/scr/feh_lhi_iirr   | Bin 0 -> 15431 bytes
 test/scr/feh_lhi_iirri  | Bin 0 -> 64012 bytes
 test/scr/feh_lhi_iirrio | Bin 0 -> 72552 bytes
 test/scr/feh_lhi_o      | Bin 0 -> 120797 bytes
 test/scr/feh_lhi_oo     | Bin 0 -> 131624 bytes
 test/scr/feh_lhi_ooo    | Bin 0 -> 141170 bytes
 11 files changed, 54 insertions(+), 5 deletions(-)
 create mode 100644 test/scr/feh_lhi
 create mode 100644 test/scr/feh_lhi_i
 create mode 100644 test/scr/feh_lhi_ii
 create mode 100644 test/scr/feh_lhi_iir
 create mode 100644 test/scr/feh_lhi_iirr
 create mode 100644 test/scr/feh_lhi_iirri
 create mode 100644 test/scr/feh_lhi_iirrio
 create mode 100644 test/scr/feh_lhi_o
 create mode 100644 test/scr/feh_lhi_oo
 create mode 100644 test/scr/feh_lhi_ooo

diff --git a/test/feh-scr.i b/test/feh-scr.i
index 05960a2..5067ba7 100755
--- a/test/feh-scr.i
+++ b/test/feh-scr.i
@@ -6,7 +6,7 @@ use autodie qw/:all/;
 
 use Cwd;
 use GD qw/:DEFAULT :cmp/;
-use Test::More tests => 27;
+use Test::More tests => 38;
 use Time::HiRes qw/sleep/;
 use X11::GUITest qw/:ALL/;
 
@@ -14,6 +14,7 @@ my ($pid_xnest, $pid_twm);
 my $win;
 my ($width, $height);
 my $pwd = getcwd();
+my $test_id = 0;
 
 sub waitfor(&) {
 	my ($sub) = @_;
@@ -62,6 +63,10 @@ sub same_files {
 	my $img_one = GD::Image->new($one);
 	my $img_two = GD::Image->new($two);
 
+	if (not defined $img_one or not defined $img_two) {
+		return 0;
+	}
+
 	return( ! ($img_one->compare($img_two) & GD_CMP_IMAGE));
 }
 
@@ -75,11 +80,17 @@ sub check_scr {
 
 sub test_scr {
 	my ($file) = @_;
+	my $msg = "X root window is test/scr/${file}";
+
+	$test_id++;
 
-	ok(
-		waitfor { check_scr($file) },
-		"X root window is test/scr/${file}",
-	);
+	if (waitfor { check_scr($file) }) {
+		pass($msg);
+	}
+	else {
+		fail($msg);
+		rename("/tmp/feh_${$}.png", "/tmp/feh_${$}_${test_id}_${file}.png");
+	}
 }
 
 if (FindWindowLike(qr{^feh})) {
@@ -216,6 +227,44 @@ test_scr('draw_nothing');
 
 feh_stop();
 
+feh_start(q{}, 'test/bg/large/h/in');
+test_scr('feh_lhi');
+
+SendKeys('{UP}');
+test_scr('feh_lhi_i');
+
+SendKeys('{UP}');
+test_scr('feh_lhi_ii');
+
+SendKeys('^({RIG})');
+test_scr('feh_lhi_iir');
+
+SendKeys('^({RIG})');
+test_scr('feh_lhi_iirr');
+
+SendKeys('{UP}');
+test_scr('feh_lhi_iirri');
+
+SendKeys('{DOW}');
+test_scr('feh_lhi_iirrio');
+
+feh_stop();
+
+feh_start(q{}, 'test/bg/large/h/in');
+test_scr('feh_lhi');
+
+SendKeys('{DOW}');
+test_scr('feh_lhi_o');
+
+SendKeys('{DOW}');
+test_scr('feh_lhi_oo');
+
+SendKeys('{DOW}');
+test_scr('feh_lhi_ooo');
+
+feh_stop();
+
+
 unlink('test/bg/exact/.tc/in.txt');
 rmdir('test/bg/exact/.tc');
 unlink("/tmp/feh_${$}.png");
diff --git a/test/scr/feh_lhi b/test/scr/feh_lhi
new file mode 100644
index 0000000..f16d150
Binary files /dev/null and b/test/scr/feh_lhi differ
diff --git a/test/scr/feh_lhi_i b/test/scr/feh_lhi_i
new file mode 100644
index 0000000..108dfb6
Binary files /dev/null and b/test/scr/feh_lhi_i differ
diff --git a/test/scr/feh_lhi_ii b/test/scr/feh_lhi_ii
new file mode 100644
index 0000000..1fb695f
Binary files /dev/null and b/test/scr/feh_lhi_ii differ
diff --git a/test/scr/feh_lhi_iir b/test/scr/feh_lhi_iir
new file mode 100644
index 0000000..396ee99
Binary files /dev/null and b/test/scr/feh_lhi_iir differ
diff --git a/test/scr/feh_lhi_iirr b/test/scr/feh_lhi_iirr
new file mode 100644
index 0000000..81748a3
Binary files /dev/null and b/test/scr/feh_lhi_iirr differ
diff --git a/test/scr/feh_lhi_iirri b/test/scr/feh_lhi_iirri
new file mode 100644
index 0000000..43b8fa1
Binary files /dev/null and b/test/scr/feh_lhi_iirri differ
diff --git a/test/scr/feh_lhi_iirrio b/test/scr/feh_lhi_iirrio
new file mode 100644
index 0000000..c9e287b
Binary files /dev/null and b/test/scr/feh_lhi_iirrio differ
diff --git a/test/scr/feh_lhi_o b/test/scr/feh_lhi_o
new file mode 100644
index 0000000..ec48c01
Binary files /dev/null and b/test/scr/feh_lhi_o differ
diff --git a/test/scr/feh_lhi_oo b/test/scr/feh_lhi_oo
new file mode 100644
index 0000000..784d7d7
Binary files /dev/null and b/test/scr/feh_lhi_oo differ
diff --git a/test/scr/feh_lhi_ooo b/test/scr/feh_lhi_ooo
new file mode 100644
index 0000000..ad14384
Binary files /dev/null and b/test/scr/feh_lhi_ooo differ
-- 
cgit v1.2.3