#!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 multiple commands (using ';') and multiple operations (using ',')
#
use i3test;
# quote the workspace name and use a ; (command separator) in its name
#####################################################################
+cmd 'open';
$unused = get_unused_workspace;
$unused .= ';a';
ok(!($unused ~~ @{get_workspace_names()}), 'workspace does not exist yet');
# TODO: need a non-invasive command before implementing a test which uses ','
+################################################################################
+# regression test: 10 invalid commands should not crash i3 (10 is the stack
+# depth)
+################################################################################
+
+cmd 'move gibberish' for (0 .. 10);
+
+does_i3_live;
+
+################################################################################
+# regression test: an invalid command should come back with an error.
+################################################################################
+
+my $reply = cmd 'bullshit-command-which-we-never-implement meh';
+is(scalar @$reply, 1, 'got one command reply');
+ok(!$reply->[0]->{success}, 'reply has success == false');
+
done_testing;