[mutter] tests/stacking: Test always-on-top stacking and focus
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] tests/stacking: Test always-on-top stacking and focus
- Date: Tue, 20 Sep 2022 17:48:31 +0000 (UTC)
commit 7ac982d0d28b669cfc61e9c2cb85d86e2665fe54
Author: Sebastian Wick <sebastian wick redhat com>
Date: Sat Jul 9 12:30:23 2022 +0200
tests/stacking: Test always-on-top stacking and focus
Adds the command make_above to set and unset always-on-top behavior of a
window and tests stacking and focus when activating other windows and
switching workspaces.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2489>
src/tests/meson.build | 1 +
src/tests/stacking/always-on-top.metatest | 51 +++++++++++++++++++++++++++++++
src/tests/test-runner.c | 23 ++++++++++++++
3 files changed, 75 insertions(+)
---
diff --git a/src/tests/meson.build b/src/tests/meson.build
index 9c26e33481..bc0d535c56 100644
--- a/src/tests/meson.build
+++ b/src/tests/meson.build
@@ -442,6 +442,7 @@ stacking_tests = [
'map-on-hotplug',
'workspace-basic',
'workspace-test',
+ 'always-on-top',
]
foreach stacking_test: stacking_tests
diff --git a/src/tests/stacking/always-on-top.metatest b/src/tests/stacking/always-on-top.metatest
new file mode 100644
index 0000000000..12a04dddb4
--- /dev/null
+++ b/src/tests/stacking/always-on-top.metatest
@@ -0,0 +1,51 @@
+num_workspaces 2
+
+new_client 1 wayland
+create 1/1
+show 1/1
+create 1/2
+show 1/2
+create 1/3
+show 1/3
+wait
+
+assert_stacking_workspace 0 1/1 1/2 1/3
+assert_stacking_workspace 1
+assert_focused 1/3
+
+local_activate 1/1
+
+assert_stacking_workspace 0 1/2 1/3 1/1
+assert_stacking_workspace 1
+assert_focused 1/1
+
+make_above 1/3 true
+
+assert_stacking_workspace 0 1/2 1/1 1/3
+assert_stacking_workspace 1
+assert_focused 1/1
+
+local_activate 1/2
+
+assert_stacking_workspace 0 1/1 1/2 1/3
+assert_stacking_workspace 1
+assert_focused 1/2
+
+activate_workspace 1
+
+assert_stacking_workspace 0 1/1 1/2 1/3
+assert_stacking_workspace 1
+assert_focused none
+
+activate_workspace 0
+
+assert_stacking_workspace 0 1/1 1/2 1/3
+assert_stacking_workspace 1
+assert_focused 1/2
+
+make_above 1/3 false
+local_activate 1/1
+
+assert_stacking_workspace 0 1/2 1/3 1/1
+assert_stacking_workspace 1
+assert_focused 1/1
diff --git a/src/tests/test-runner.c b/src/tests/test-runner.c
index 0553e251d3..845a5441af 100644
--- a/src/tests/test-runner.c
+++ b/src/tests/test-runner.c
@@ -1148,6 +1148,29 @@ test_case_do (TestCase *test,
meta_window_change_workspace (window, workspace);
}
+ else if (strcmp (argv[0], "make_above") == 0)
+ {
+ if (argc != 3 ||
+ (g_ascii_strcasecmp (argv[2], "true") != 0 &&
+ g_ascii_strcasecmp (argv[2], "false") != 0))
+ BAD_COMMAND("usage: %s <client-id>/<window-id> [true|false]",
+ argv[0]);
+
+ MetaTestClient *client;
+ const char *window_id;
+ if (!test_case_parse_window_id (test, argv[1], &client, &window_id, error))
+ return FALSE;
+
+ MetaWindow *window;
+ window = meta_test_client_find_window (client, window_id, error);
+ if (!window)
+ return FALSE;
+
+ if (g_ascii_strcasecmp (argv[2], "true") == 0)
+ meta_window_make_above (window);
+ else
+ meta_window_unmake_above (window);
+ }
else
{
BAD_COMMAND("Unknown command %s", argv[0]);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]