From b28a6e50a066735adb696a53a4f11551020e32f6 Mon Sep 17 00:00:00 2001 From: Sebastian Keller Date: Thu, 18 Nov 2021 17:24:55 +0100 Subject: [PATCH] tests: Add test for maintaining constraints after client resizes This test ensures that windows that were resized such that they extend beyond the screen will be moved to be fully on the screen (if possible). This has been working on X11 since forever, but on Wayland only since the last commit. Part-of: --- src/tests/meson.build | 1 + ...client-resize-respect-constraints.metatest | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 src/tests/stacking/client-resize-respect-constraints.metatest diff --git a/src/tests/meson.build b/src/tests/meson.build index d084887be..cdc642117 100644 --- a/src/tests/meson.build +++ b/src/tests/meson.build @@ -293,6 +293,7 @@ stacking_tests = [ 'default-size', 'modals', 'map-fixed-size', + 'client-resize-respect-constraints', ] foreach stacking_test: stacking_tests diff --git a/src/tests/stacking/client-resize-respect-constraints.metatest b/src/tests/stacking/client-resize-respect-constraints.metatest new file mode 100644 index 000000000..021e0ed0e --- /dev/null +++ b/src/tests/stacking/client-resize-respect-constraints.metatest @@ -0,0 +1,43 @@ +# Tests that constraints are applied after a client initiated resize +# 1. Create a window that does not extend beyond the screen +# 2. Move it to a known position +# 3. Resize such that the following resize will extend beyond the screen +# 4. Check that the window was moved to the position that would allow it to fit on the screen + +new_client w wayland +create w/1 csd + +resize w/1 500 400 +show w/1 +wait + +assert_size w/1 500 400 + +move w/1 300 200 +assert_position w/1 300 200 + +resize w/1 600 500 +wait_reconfigure +assert_position w/1 200 100 + +destroy w/1 + + +new_client x x11 +create x/1 csd + +resize x/1 500 400 +show x/1 +wait + +assert_size x/1 500 400 + +move x/1 300 200 +assert_position x/1 300 200 + +resize x/1 600 500 +wait_reconfigure +assert_position x/1 200 100 + +destroy x/1 +