]> git.sur5r.net Git - i3/i3/blobdiff - testcases/t/504-move-workspace-to-output.t
Skip internal workspaces with 'move workspace to output'
[i3/i3] / testcases / t / 504-move-workspace-to-output.t
index 8e48bafe366c0209da1e22d4aa00347d69468eff..86bad5e505a1b2bb8c6f68834c2cd17f52d8310b 100644 (file)
@@ -179,6 +179,36 @@ cmd '[con_mark=marked] move workspace to output current';
 ($x0, $x1) = workspaces_per_screen();
 ok($ws1 ~~ @$x0, 'ws1 on fake-0');
 
+################################################################################
+# Verify that '[class=".*"] move workspace to output' doesn't fail when
+# containers in the scratchpad are matched.
+# See issue: #3064.
+################################################################################
+my $__i3_scratch = get_ws('__i3_scratch');
+is(scalar @{$__i3_scratch->{floating_nodes}}, 0, 'scratchpad is empty');
+
+my $ws0 = fresh_workspace(output => 0);
+open_window(wm_class => 'a');
+
+my $ws1 = fresh_workspace(output => 1);
+open_window(wm_class => 'b');
+my $scratchpad_window = open_window(wm_class => 'c');
+cmd 'move to scratchpad';
+
+($x0, $x1) = workspaces_per_screen();
+ok($ws0 ~~ @$x0, 'ws0 on fake-0');
+ok($ws1 ~~ @$x1, 'ws1 on fake-1');
+
+my $reply = cmd '[class=".*"] move workspace to output fake-1';
+ok($reply->[0]->{success}, 'move successful');
+
+($x0, $x1) = workspaces_per_screen();
+ok($ws0 ~~ @$x1, 'ws0 on fake-1');
+ok($ws1 ~~ @$x1, 'ws1 on fake-1');
+
+$__i3_scratch = get_ws('__i3_scratch');
+is(scalar @{$__i3_scratch->{floating_nodes}}, 1, 'window still in scratchpad');
+
 ################################################################################
 
 done_testing;