summaryrefslogtreecommitdiff
path: root/src/tests/wayland-unit-tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/wayland-unit-tests.c')
-rw-r--r--src/tests/wayland-unit-tests.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/tests/wayland-unit-tests.c b/src/tests/wayland-unit-tests.c
index 9b2ba7594..5bfc8592c 100644
--- a/src/tests/wayland-unit-tests.c
+++ b/src/tests/wayland-unit-tests.c
@@ -644,6 +644,39 @@ toplevel_bounds_monitors (void)
}
static void
+xdg_foreign_set_parent_of (void)
+{
+ MetaWaylandTestClient *wayland_test_client;
+ MetaWindow *window1;
+ MetaWindow *window2;
+ MetaWindow *window3;
+ MetaWindow *window4;
+
+ wayland_test_client =
+ meta_wayland_test_client_new (test_context, "xdg-foreign");
+
+ wait_for_sync_point (0);
+ wait_until_after_paint ();
+
+ window1 = find_client_window ("xdg-foreign-window1");
+ window2 = find_client_window ("xdg-foreign-window2");
+ window3 = find_client_window ("xdg-foreign-window3");
+ window4 = find_client_window ("xdg-foreign-window4");
+
+ g_assert_true (meta_window_get_transient_for (window4) ==
+ window3);
+ g_assert_true (meta_window_get_transient_for (window3) ==
+ window2);
+ g_assert_true (meta_window_get_transient_for (window2) ==
+ window1);
+ g_assert_null (meta_window_get_transient_for (window1));
+
+ meta_wayland_test_driver_emit_sync_event (test_driver, 0);
+
+ meta_wayland_test_client_finish (wayland_test_client);
+}
+
+static void
on_before_tests (void)
{
MetaWaylandCompositor *compositor =
@@ -686,6 +719,8 @@ init_tests (void)
toplevel_bounds_struts);
g_test_add_func ("/wayland/toplevel/bounds/monitors",
toplevel_bounds_monitors);
+ g_test_add_func ("/wayland/xdg-foreign/set-parent-of",
+ xdg_foreign_set_parent_of);
}
int