]> git.sur5r.net Git - i3/i3/blobdiff - testcases/t/120-multiple-cmds.t
Merge branch 'release-4.16.1'
[i3/i3] / testcases / t / 120-multiple-cmds.t
index 784329fbe2a82b80667b5109e5bcd25f63cfdefe..114d712968e8191126f82c2a0d5b9d37c2fb6acd 100644 (file)
@@ -1,6 +1,19 @@
 #!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;
@@ -45,6 +58,7 @@ ok(($unused ~~ @{get_workspace_names()}), 'workspace exists after moving');
 # 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');
@@ -53,4 +67,21 @@ ok(($unused ~~ @{get_workspace_names()}), 'workspace exists after moving');
 
 # 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;