[mutter] tests: Add test for maintaining constraints after client resizes



commit b28a6e50a066735adb696a53a4f11551020e32f6
Author: Sebastian Keller <skeller gnome org>
Date:   Thu Nov 18 17:24:55 2021 +0100

    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: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2103>

 src/tests/meson.build                              |  1 +
 .../client-resize-respect-constraints.metatest     | 43 ++++++++++++++++++++++
 2 files changed, 44 insertions(+)
---
diff --git a/src/tests/meson.build b/src/tests/meson.build
index d084887be9..cdc6421177 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 0000000000..021e0ed0e3
--- /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
+


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]