#!perl
# vim:ts=4:sw=4:expandtab
+#
+# Please read the following documents before working on tests:
+# • http://build.i3wm.org/docs/testsuite.html
+# (or docs/testsuite)
+#
+# • http://build.i3wm.org/docs/lib-i3test.html
+# (alternatively: perldoc ./testcases/lib/i3test.pm)
+#
+# • http://build.i3wm.org/docs/ipc.html
+# (or docs/ipc)
+#
+# • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf
+# (unless you are already familiar with Perl)
use i3test;
cmd '[id="' . $second->id . '"] focus';
-sync_with_i3;
-
is($x->input_focus, $second->id, 'second con focused');
cmd 'floating enable';
cmd '[id="' . $second->id . '"] focus';
-sync_with_i3;
-
is($x->input_focus, $second->id, 'second con focused');
cmd 'floating enable';
cmd '[id="' . $second->id . '"] focus';
-sync_with_i3;
-
is($x->input_focus, $second->id, 'second con focused');
cmd 'floating enable';
$first = open_window({ background_color => '#ff0000' }); # window 8
$second = open_window({ background_color => '#00ff00' }); # window 9
-sync_with_i3;
-
is($x->input_focus, $second->id, 'second container focused');
cmd 'floating enable';
cmd 'focus tiling';
-sync_with_i3;
-
is($x->input_focus, $first->id, 'first (tiling) container focused');
cmd 'focus floating';
-sync_with_i3;
-
is($x->input_focus, $second->id, 'second (floating) container focused');
cmd 'focus floating';
-sync_with_i3;
-
is($x->input_focus, $second->id, 'second (floating) container still focused');
cmd 'focus mode_toggle';
-sync_with_i3;
-
is($x->input_focus, $first->id, 'first (tiling) container focused');
cmd 'focus mode_toggle';
-sync_with_i3;
-
is($x->input_focus, $second->id, 'second (floating) container focused');
#############################################################################
$second = open_floating_window({ background_color => '#00ff00' }); # window 11
$third = open_floating_window({ background_color => '#0000ff' }); # window 12
-sync_with_i3;
-
is($x->input_focus, $third->id, 'third container focused');
cmd 'focus left';
-sync_with_i3;
-
is($x->input_focus, $second->id, 'second container focused');
cmd 'focus left';
-sync_with_i3;
-
is($x->input_focus, $first->id, 'first container focused');
cmd 'focus left';
-sync_with_i3;
-
is($x->input_focus, $third->id, 'focus wrapped to third container');
cmd 'focus right';
-sync_with_i3;
-
is($x->input_focus, $first->id, 'focus wrapped to first container');
cmd 'focus right';
-sync_with_i3;
-
is($x->input_focus, $second->id, 'focus on second container');
done_testing;