X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=testcases%2Ft%2F129-focus-after-close.t;h=2ebfd61022012c5a913b53a53f614ba260f91d68;hb=7e424b2d71e4c3dbdb314aad03479fc8ee5480ff;hp=5fc3786e02292bfdbf988053aad25a56fc95a5a0;hpb=1a3b82eb02cc2da1078e73db24df10b89bf99260;p=i3%2Fi3 diff --git a/testcases/t/129-focus-after-close.t b/testcases/t/129-focus-after-close.t index 5fc3786e..2ebfd610 100644 --- a/testcases/t/129-focus-after-close.t +++ b/testcases/t/129-focus-after-close.t @@ -1,6 +1,19 @@ #!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) +# # Check if the focus is correctly restored after closing windows. # use i3test; @@ -106,6 +119,55 @@ sync_with_i3; is(get_focused($tmp), $middle, 'middle container focused'); +############################################################## +# check if the workspace container can be closed +############################################################## + +$tmp = fresh_workspace; + +my $window = open_window(); + +# one window opened on the current workspace +($nodes, $focus) = get_ws_content($tmp); +is(scalar @$nodes, 1, 'workspace contains one node'); + +# focus the workspace +cmd "focus parent"; +cmd "focus parent"; + +# try to kill the workspace +cmd "kill"; +sync_with_i3; + +# the workspace should now be empty +($nodes, $focus) = get_ws_content($tmp); +is(scalar @$nodes, 0, 'workspace is empty'); + +################################################################################ +# check if killing a workspace also closes floating windows. +################################################################################ + +$tmp = fresh_workspace; + +$window = open_window; +my $floating_window = open_floating_window; + +# one window opened on the current workspace +($nodes, $focus) = get_ws_content($tmp); +is(scalar @$focus, 2, 'workspace contains two nodes'); + +# focus the workspace +cmd "focus parent"; +cmd "focus parent"; + +# try to kill the workspace +cmd "kill"; +sync_with_i3; + +# the workspace should now be empty +($nodes, $focus) = get_ws_content($tmp); +is(scalar @$focus, 0, 'workspace is empty'); + ############################################################## # and now for something completely different: # check if the pointer position is relevant when restoring focus