54 lines
1.4 KiB
Perl
54 lines
1.4 KiB
Perl
#!perl
|
|
# vim:ts=4:sw=4:expandtab
|
|
#
|
|
# Please read the following documents before working on tests:
|
|
# • https://build.i3wm.org/docs/testsuite.html
|
|
# (or docs/testsuite)
|
|
#
|
|
# • https://build.i3wm.org/docs/lib-i3test.html
|
|
# (alternatively: perldoc ./testcases/lib/i3test.pm)
|
|
#
|
|
# • https://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)
|
|
#
|
|
# Tests whether opening an empty container and killing it again works
|
|
#
|
|
use List::Util qw(first);
|
|
use i3test;
|
|
|
|
my $tmp = fresh_workspace;
|
|
|
|
ok(@{get_ws_content($tmp)} == 0, 'no containers yet');
|
|
|
|
# Open a new container
|
|
cmd 'open';
|
|
|
|
ok(@{get_ws_content($tmp)} == 1, 'container opened');
|
|
|
|
cmd 'kill';
|
|
ok(@{get_ws_content($tmp)} == 0, 'container killed');
|
|
|
|
##############################################################
|
|
# open two containers and kill the one which is not focused
|
|
# by its ID to test if the parser correctly matches the window
|
|
##############################################################
|
|
|
|
cmd 'open';
|
|
cmd 'open';
|
|
ok(@{get_ws_content($tmp)} == 2, 'two containers opened');
|
|
|
|
my $content = get_ws_content($tmp);
|
|
my $not_focused = first { !$_->{focused} } @{$content};
|
|
my $id = $not_focused->{id};
|
|
|
|
cmd "[con_id=\"$id\"] kill";
|
|
|
|
$content = get_ws_content($tmp);
|
|
ok(@{$content} == 1, 'one container killed');
|
|
ok($content->[0]->{id} != $id, 'correct window killed');
|
|
|
|
done_testing;
|