aboutsummaryrefslogtreecommitdiff
path: root/testcases
diff options
context:
space:
mode:
Diffstat (limited to 'testcases')
-rw-r--r--testcases/t/503-workspace.t52
-rw-r--r--testcases/t/528-workspace-next-prev-reversed.t32
-rw-r--r--testcases/t/535-workspace-next-prev.t32
3 files changed, 108 insertions, 8 deletions
diff --git a/testcases/t/503-workspace.t b/testcases/t/503-workspace.t
index 04ac8a59..8a4aab9f 100644
--- a/testcases/t/503-workspace.t
+++ b/testcases/t/503-workspace.t
@@ -41,6 +41,10 @@ is(focused_ws, '2', 'workspace 2 on second output');
# ensure workspace 2 stays open
open_window;
+cmd 'workspace 6:c';
+# ensure workspace 6:c stays open
+open_window;
+
cmd 'focus output right';
is(focused_ws, '1', 'back on workspace 1');
@@ -50,13 +54,25 @@ cmd 'workspace 5';
# ensure workspace 5 stays open
open_window;
+# numbered w/ name workspaces must be created in reverse order compared to
+# other workspace types (because a new numbered w/ name workspace is prepended
+# to the list of similarly numbered workspaces).
+
+cmd 'workspace 6:b';
+# ensure workspace 5 stays open
+open_window;
+
+cmd 'workspace 6:a';
+# ensure workspace 5 stays open
+open_window;
+
################################################################################
# Use workspace next and verify the correct order.
################################################################################
# The current order should be:
-# output 1: 1, 5
-# output 2: 2
+# output 1: 1, 5, 6:a, 6:b
+# output 2: 2, 6:c
cmd 'workspace 1';
cmd 'workspace next';
# We need to sync after changing focus to a different output to wait for the
@@ -72,6 +88,27 @@ cmd 'workspace next';
sync_with_i3;
is(focused_ws, '5', 'workspace 5 focused');
+cmd 'workspace next';
+# We need to sync after changing focus to a different output to wait for the
+# EnterNotify to be processed, otherwise it will be processed at some point
+# later in time and mess up our subsequent tests.
+sync_with_i3;
+
+is(focused_ws, '6:a', 'workspace 6:a focused');
+cmd 'workspace next';
+# We need to sync after changing focus to a different output to wait for the
+# EnterNotify to be processed, otherwise it will be processed at some point
+# later in time and mess up our subsequent tests.
+sync_with_i3;
+
+is(focused_ws, '6:b', 'workspace 6:b focused');
+cmd 'workspace next';
+# We need to sync after changing focus to a different output to wait for the
+# EnterNotify to be processed, otherwise it will be processed at some point
+# later in time and mess up our subsequent tests.
+sync_with_i3;
+
+is(focused_ws, '6:c', 'workspace 6:b focused');
################################################################################
# Now try the same with workspace next_on_output.
@@ -81,9 +118,17 @@ cmd 'workspace 1';
cmd 'workspace next_on_output';
is(focused_ws, '5', 'workspace 5 focused');
cmd 'workspace next_on_output';
+is(focused_ws, '6:a', 'workspace 6:a focused');
+cmd 'workspace next_on_output';
+is(focused_ws, '6:b', 'workspace 6:b focused');
+cmd 'workspace next_on_output';
is(focused_ws, '1', 'workspace 1 focused');
cmd 'workspace prev_on_output';
+is(focused_ws, '6:b', 'workspace 6:b focused');
+cmd 'workspace prev_on_output';
+is(focused_ws, '6:a', 'workspace 6:a focused');
+cmd 'workspace prev_on_output';
is(focused_ws, '5', 'workspace 5 focused');
cmd 'workspace prev_on_output';
is(focused_ws, '1', 'workspace 1 focused');
@@ -95,6 +140,9 @@ cmd 'workspace 2';
sync_with_i3;
cmd 'workspace prev_on_output';
+is(focused_ws, '6:c', 'workspace 6:c focused');
+
+cmd 'workspace prev_on_output';
is(focused_ws, '2', 'workspace 2 focused');
done_testing;
diff --git a/testcases/t/528-workspace-next-prev-reversed.t b/testcases/t/528-workspace-next-prev-reversed.t
index b58457b8..f5e11466 100644
--- a/testcases/t/528-workspace-next-prev-reversed.t
+++ b/testcases/t/528-workspace-next-prev-reversed.t
@@ -56,9 +56,9 @@ sync_with_i3;
# Setup workspaces so that they stay open (with an empty container).
# open_window ensures, this
#
-# numbered named
-# output 1 (left) : 1, 2, 3, 6, 7, B, F, C
-# output 2 (right): 4, 5, A, D, E
+# numbered numbered w/ names named
+# output 1 (left): 4, 5, 8:d, 8:e, A, D, E
+# output 2 (right): 1, 2, 3, 6, 7, 8:a, 8:b, 8:c B, F, C
#
################################################################################
@@ -68,6 +68,11 @@ cmd 'workspace D'; open_window;
cmd 'workspace 4'; open_window;
cmd 'workspace 5'; open_window;
cmd 'workspace E'; open_window;
+# numbered w/ name workspaces must be created in reverse order compared to
+# other workspace types (because a new numbered w/ name workspace is prepended
+# to the list of similarly numbered workspaces).
+cmd 'workspace 8:e'; open_window;
+cmd 'workspace 8:d'; open_window;
cmd 'focus output right';
cmd 'workspace 1'; open_window;
@@ -78,10 +83,19 @@ cmd 'workspace F'; open_window;
cmd 'workspace 6'; open_window;
cmd 'workspace C'; open_window;
cmd 'workspace 7'; open_window;
+# numbered w/ name workspaces must be created in reverse order compared to
+# other workspace types (because a new numbered w/ name workspace is prepended
+# to the list of similarly numbered workspaces).
+cmd 'workspace 8:c'; open_window;
+cmd 'workspace 8:b'; open_window;
+cmd 'workspace 8:a'; open_window;
################################################################################
# Use workspace next and verify the correct order.
# numbered -> numerical sort
+# numbered w/ names -> numerical sort. Workspaces with the same number but
+# different names sort by output, followed by reverse creation time on each
+# output.
# named -> sort by creation time
################################################################################
cmd 'workspace 1';
@@ -94,6 +108,12 @@ assert_next('5');
assert_next('6');
assert_next('7');
+assert_next('8:a');
+assert_next('8:b');
+assert_next('8:c');
+assert_next('8:d');
+assert_next('8:e');
+
assert_next('B');
assert_next('F');
assert_next('C');
@@ -112,6 +132,12 @@ assert_prev('C');
assert_prev('F');
assert_prev('B');
+assert_prev('8:e');
+assert_prev('8:d');
+assert_prev('8:c');
+assert_prev('8:b');
+assert_prev('8:a');
+
assert_prev('7');
assert_prev('6');
assert_prev('5');
diff --git a/testcases/t/535-workspace-next-prev.t b/testcases/t/535-workspace-next-prev.t
index 0020586e..8510370c 100644
--- a/testcases/t/535-workspace-next-prev.t
+++ b/testcases/t/535-workspace-next-prev.t
@@ -56,9 +56,9 @@ sync_with_i3;
# Setup workspaces so that they stay open (with an empty container).
# open_window ensures, this
#
-# numbered named
-# output 1 (left) : 1, 2, 3, 6, 7, B, F, C
-# output 2 (right): 4, 5, A, D, E
+# numbered numbered w/ names named
+# output 1 (left) : 1, 2, 3, 6, 7, 8:a, 8:b, 8:c B, F, C
+# output 2 (right): 4, 5, 8:d, 8:e, A, D, E
#
################################################################################
@@ -68,6 +68,11 @@ cmd 'workspace D'; open_window;
cmd 'workspace 4'; open_window;
cmd 'workspace 5'; open_window;
cmd 'workspace E'; open_window;
+# numbered w/ name workspaces must be created in reverse order compared to
+# other workspace types (because a new numbered w/ name workspace is prepended
+# to the list of similarly numbered workspaces).
+cmd 'workspace 8:e'; open_window;
+cmd 'workspace 8:d'; open_window;
cmd 'focus output left';
cmd 'workspace 1'; open_window;
@@ -78,10 +83,19 @@ cmd 'workspace F'; open_window;
cmd 'workspace 6'; open_window;
cmd 'workspace C'; open_window;
cmd 'workspace 7'; open_window;
+# numbered w/ name workspaces must be created in reverse order compared to
+# other workspace types (because a new numbered w/ name workspace is prepended
+# to the list of similarly numbered workspaces).
+cmd 'workspace 8:c'; open_window;
+cmd 'workspace 8:b'; open_window;
+cmd 'workspace 8:a'; open_window;
################################################################################
# Use workspace next and verify the correct order.
# numbered -> numerical sort
+# numbered w/ names -> numerical sort. Workspaces with the same number but
+# different names sort by output, followed by reverse creation time on each
+# output.
# named -> sort by creation time
################################################################################
cmd 'workspace 1';
@@ -94,6 +108,12 @@ assert_next('5');
assert_next('6');
assert_next('7');
+assert_next('8:a');
+assert_next('8:b');
+assert_next('8:c');
+assert_next('8:d');
+assert_next('8:e');
+
assert_next('B');
assert_next('F');
assert_next('C');
@@ -112,6 +132,12 @@ assert_prev('C');
assert_prev('F');
assert_prev('B');
+assert_prev('8:e');
+assert_prev('8:d');
+assert_prev('8:c');
+assert_prev('8:b');
+assert_prev('8:a');
+
assert_prev('7');
assert_prev('6');
assert_prev('5');