X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=testcases%2Ft%2F187-commands-parser.t;h=48f50e8d1266f2dad143e87d8973bbc531d88437;hb=2ead7745d6e6d911d689a83140c0c16530391b50;hp=6d67731a1e71a9914485962ebc3fc73215d1b042;hpb=fb0573e1831cf7e7b59b50a99db97bb85af78928;p=i3%2Fi3 diff --git a/testcases/t/187-commands-parser.t b/testcases/t/187-commands-parser.t index 6d67731a..48f50e8d 100644 --- a/testcases/t/187-commands-parser.t +++ b/testcases/t/187-commands-parser.t @@ -2,13 +2,13 @@ # vim:ts=4:sw=4:expandtab # # Please read the following documents before working on tests: -# • http://build.i3wm.org/docs/testsuite.html +# • https://build.i3wm.org/docs/testsuite.html # (or docs/testsuite) # -# • http://build.i3wm.org/docs/lib-i3test.html +# • https://build.i3wm.org/docs/lib-i3test.html # (alternatively: perldoc ./testcases/lib/i3test.pm) # -# • http://build.i3wm.org/docs/ipc.html +# • https://build.i3wm.org/docs/ipc.html # (or docs/ipc) # # • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf @@ -25,7 +25,7 @@ sub parser_calls { # TODO: use a timeout, so that we can error out if it doesn’t terminate # TODO: better way of passing arguments - my $stdout = qx(../test.commands_parser '$command' 2>&1 >&-); + my $stdout = qx(test.commands_parser '$command' 2>&1 >&-); # Filter out all debugging output. my @lines = split("\n", $stdout); @@ -44,7 +44,7 @@ sub parser_calls { # The first call has only a single command, the following ones are consolidated # for performance. is(parser_calls('move workspace 3'), - 'cmd_move_con_to_workspace_name(3)', + 'cmd_move_con_to_workspace_name(3, (null))', 'single number (move workspace 3) ok'); is(parser_calls( @@ -57,19 +57,19 @@ is(parser_calls( 'move workspace 3: foobar; ' . 'move workspace "3: foobar"; ' . 'move workspace "3: foobar, baz"; '), - "cmd_move_con_to_workspace_name(3)\n" . - "cmd_move_con_to_workspace_name(3)\n" . - "cmd_move_con_to_workspace_name(3)\n" . - "cmd_move_con_to_workspace_name(foobar)\n" . - "cmd_move_con_to_workspace_name(torrent)\n" . + "cmd_move_con_to_workspace_name(3, (null))\n" . + "cmd_move_con_to_workspace_name(3, (null))\n" . + "cmd_move_con_to_workspace_name(3, (null))\n" . + "cmd_move_con_to_workspace_name(foobar, (null))\n" . + "cmd_move_con_to_workspace_name(torrent, (null))\n" . "cmd_move_workspace_to_output(LVDS1)\n" . - "cmd_move_con_to_workspace_name(3: foobar)\n" . - "cmd_move_con_to_workspace_name(3: foobar)\n" . - "cmd_move_con_to_workspace_name(3: foobar, baz)", + "cmd_move_con_to_workspace_name(3: foobar, (null))\n" . + "cmd_move_con_to_workspace_name(3: foobar, (null))\n" . + "cmd_move_con_to_workspace_name(3: foobar, baz, (null))", 'move ok'); is(parser_calls('move workspace 3: foobar, nop foo'), - "cmd_move_con_to_workspace_name(3: foobar)\n" . + "cmd_move_con_to_workspace_name(3: foobar, (null))\n" . "cmd_nop(foo)", 'multiple ops (move workspace 3: foobar, nop foo) ok'); @@ -86,9 +86,9 @@ is(parser_calls( 'resize shrink left 25 px or 33 ppt; ' . 'resize shrink left 25'), "cmd_resize(shrink, left, 10, 10)\n" . - "cmd_resize(shrink, left, 25, 10)\n" . + "cmd_resize(shrink, left, 25, 0)\n" . "cmd_resize(shrink, left, 25, 33)\n" . - "cmd_resize(shrink, left, 25, 10)", + "cmd_resize(shrink, left, 25, 0)", 'simple resize ok'); is(parser_calls('resize shrink left 25 px or 33 ppt,'), @@ -131,11 +131,11 @@ is(parser_calls('[con_mark="yay"] focus'), # commands being parsed due to the configuration, people might send IPC # commands with leading or trailing newlines. is(parser_calls("workspace test\n"), - 'cmd_workspace_name(test)', + 'cmd_workspace_name(test, (null))', 'trailing whitespace stripped off ok'); is(parser_calls("\nworkspace test"), - 'cmd_workspace_name(test)', + 'cmd_workspace_name(test, (null))', 'trailing whitespace stripped off ok'); ################################################################################ @@ -144,13 +144,42 @@ is(parser_calls("\nworkspace test"), ################################################################################ is(parser_calls('unknown_literal'), - "ERROR: Expected one of these tokens: , '[', 'move', 'exec', 'exit', 'restart', 'reload', 'shmlog', 'debuglog', 'border', 'layout', 'append_layout', 'workspace', 'focus', 'kill', 'open', 'fullscreen', 'split', 'floating', 'mark', 'unmark', 'resize', 'rename', 'nop', 'scratchpad', 'mode', 'bar'\n" . + "ERROR: Expected one of these tokens: , '[', '" . join("', '", qw( + move + exec + exit + restart + reload + shmlog + debuglog + border + layout + append_layout + workspace + focus + kill + open + fullscreen + sticky + split + floating + mark + unmark + resize + rename + nop + scratchpad + swap + title_format + mode + bar + )) . "'\n" . "ERROR: Your command: unknown_literal\n" . "ERROR: ^^^^^^^^^^^^^^^", 'error for unknown literal ok'); is(parser_calls('move something to somewhere'), - "ERROR: Expected one of these tokens: 'window', 'container', 'to', 'workspace', 'output', 'scratchpad', 'left', 'right', 'up', 'down', 'position', 'absolute'\n" . + "ERROR: Expected one of these tokens: 'window', 'container', 'to', '--no-auto-back-and-forth', 'workspace', 'output', 'mark', 'scratchpad', 'left', 'right', 'up', 'down', 'position', 'absolute'\n" . "ERROR: Your command: move something to somewhere\n" . "ERROR: ^^^^^^^^^^^^^^^^^^^^^^", 'error for unknown literal ok'); @@ -160,27 +189,27 @@ is(parser_calls('move something to somewhere'), ################################################################################ is(parser_calls('workspace "foo"'), - 'cmd_workspace_name(foo)', + 'cmd_workspace_name(foo, (null))', 'Command with simple double quotes ok'); is(parser_calls('workspace "foo'), - 'cmd_workspace_name(foo)', + 'cmd_workspace_name(foo, (null))', 'Command without ending double quotes ok'); is(parser_calls('workspace "foo \"bar"'), - 'cmd_workspace_name(foo "bar)', + 'cmd_workspace_name(foo "bar, (null))', 'Command with escaped double quotes ok'); is(parser_calls('workspace "foo \\'), - 'cmd_workspace_name(foo \\)', + 'cmd_workspace_name(foo \\, (null))', 'Command with single backslash in the end ok'); is(parser_calls('workspace "foo\\\\bar"'), - 'cmd_workspace_name(foo\\bar)', + 'cmd_workspace_name(foo\\bar, (null))', 'Command with escaped backslashes ok'); is(parser_calls('workspace "foo\\\\\\"bar"'), - 'cmd_workspace_name(foo\\"bar)', + 'cmd_workspace_name(foo\\"bar, (null))', 'Command with escaped double quotes after escaped backslashes ok'); ################################################################################ @@ -189,7 +218,7 @@ is(parser_calls('workspace "foo\\\\\\"bar"'), ################################################################################ is(parser_calls("resize shrink width 10 px or"), - "ERROR: Expected one of these tokens: \n" . + "ERROR: Expected one of these tokens: \n" . "ERROR: Your command: resize shrink width 10 px or\n" . "ERROR: ", "error for resize command with incomplete 'or'-construction ok");