diff options
Diffstat (limited to 'test/feh.i')
| -rwxr-xr-x | test/feh.i | 112 | 
1 files changed, 111 insertions, 1 deletions
| @@ -4,7 +4,7 @@ use warnings;  use 5.010;  use Cwd; -use Test::More tests => 75; +use Test::More tests => 103;  use Time::HiRes qw/sleep/;  use X11::GUITest qw/:ALL/; @@ -12,6 +12,8 @@ my $win;  my ($width, $height);  my $pwd = getcwd(); +$ENV{HOME} = 'test'; +  sub waitfor(&) {  	my ($sub) = @_;  	my $out; @@ -185,6 +187,108 @@ sleep(0.8);  test_win_title($win, 'feh [2 of 3] - test/ok/gif');  feh_stop(); +$win = feh_start( +	'--action3 ";echo foo" --action7 "echo foo" ' . +	'--action8 ";touch feh_test_%u_%l" --action9 "rm feh_test_%u_%l"', +	'test/ok/png test/ok/gif test/ok/jpg' +); +test_win_title($win, 'feh [1 of 3] - test/ok/png'); +SendKeys('3'); +test_win_title($win, 'feh [1 of 3] - test/ok/png'); +SendKeys('7'); +test_win_title($win, 'feh [2 of 3] - test/ok/gif'); +SendKeys('8'); +test_win_title($win, 'feh [2 of 3] - test/ok/gif'); +ok(-e 'feh_test_2_3', 'feh action created file with correct format specifiers'); +SendKeys('9'); +ok(waitfor { not -e 'feh_test_2_3' }, 'feh action removed file'); +test_win_title($win, 'feh [3 of 3] - test/ok/jpg'); +feh_stop(); + + +# .config/feh/keys +# Action Unbinding + non-conflicting none/shift/control/meta modifiers + +$ENV{XDG_CONFIG_HOME} = 'test/config/keys'; + +$win = feh_start( +	'--action1 "touch a1" --action2 "touch a2" ' . +	'--action3 "touch a3" --action4 "touch a4" ' . +	'--action5 "touch a5" --action6 "touch a6" ', +	'test/ok/png test/ok/jpg test/ok/pnm' +); +test_win_title($win, 'feh [1 of 3] - test/ok/png'); +SendKeys('6'); +test_win_title($win, 'feh [1 of 3] - test/ok/png'); +SendKeys('{RIG}'); +test_win_title($win, 'feh [1 of 3] - test/ok/png'); +SendKeys('a'); +test_win_title($win, 'feh [2 of 3] - test/ok/jpg'); +SendKeys('b'); +test_win_title($win, 'feh [3 of 3] - test/ok/pnm'); +SendKeys('c'); +test_win_title($win, 'feh [1 of 3] - test/ok/png'); +SendKeys('d'); +test_win_title($win, 'feh [3 of 3] - test/ok/pnm'); +SendKeys('e'); +test_win_title($win, 'feh [2 of 3] - test/ok/jpg'); +SendKeys('f'); +test_win_title($win, 'feh [1 of 3] - test/ok/png'); +SendKeys('1'); +test_win_title($win, 'feh [1 of 3] - test/ok/png'); +SendKeys('x'); +ok(waitfor { -e 'a1' }, 'action 1 = X ok'); +SendKeys('X'); +ok(waitfor { -e 'a2' }, 'action 2 = Shift+X ok'); +SendKeys('^(x)'); +ok(waitfor { -e 'a3' }, 'action 3 = Ctrl+X ok'); +SendKeys('^(X)'); +ok(waitfor { -e 'a4' }, 'action 4 = Ctrl+Shift+X ok'); +SendKeys('%(x)'); +ok(waitfor { -e 'a5' }, 'action 5 = Alt+X ok'); +for my $f (qw(a1 a2 a3 a4 a5)) { +	unlink($f); +} +feh_stop(); + +$ENV{XDG_CONFIG_HOME} = 'test/config/themes'; + +$win = feh_start( +	'-Ttest_general', +	'test/ok/png test/ok/jpg' +); +SendKeys('1'); +ok(waitfor { -e 'a1' }, 'theme: action 1 okay'); +unlink('a1'); +feh_stop(); + +$win = feh_start( +	'-Ttest_general --action1 "touch c1"', +	'test/ok/png test/ok/jpg' +); +SendKeys('1'); +ok(waitfor { -e 'c1' }, 'theme: commandline overrides theme'); +unlink('c1'); +feh_stop(); + +$win = feh_start( +	'-Ttest_multiline', +	'test/ok/png test/ok/jpg' +); +SendKeys('1'); +ok(waitfor { -e 'a1' }, 'multiline theme: first line ok'); +SendKeys('2'); +ok(waitfor { -e 'a2' }, 'multiline theme: second line ok'); +SendKeys('3'); +ok(waitfor { -e 'a3' }, 'multiline theme: last line ok'); +for my $f (qw(a1 a2 a3)) { +	unlink($f); +} +feh_stop(); + +delete $ENV{XDG_CONFIG_HOME}; + +  $win = feh_start(q{}, 'test/ok/png ' x 100);  test_win_title($win, 'feh [1 of 100] - test/ok/png');  SendKeys('{PGD}'); @@ -341,3 +445,9 @@ ok(waitfor {  	},  	'disabled screen clip');  feh_stop(); + +# GH-35 "Custom window title crashes feh on unloadable files" +$win = feh_start('--title "feh %h"', 'test/ok/png test/fail/png test/ok/jpg'); +SendKeys('{RIG}'); +test_win_title($win, 'feh 16'); +feh_stop(); | 
