From: Matthias Clasen Date: Sat, 6 May 2023 00:47:38 +0000 (-0400) Subject: Add a test for quick key events X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~300^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=8495e0e4124c62d348d83d11f7cfb0bad1cd0ab4;p=gtk4.git Add a test for quick key events --- diff --git a/testsuite/headless/headless-input-tests.py b/testsuite/headless/headless-input-tests.py index f291d723b8..10c152399b 100644 --- a/testsuite/headless/headless-input-tests.py +++ b/testsuite/headless/headless-input-tests.py @@ -38,6 +38,7 @@ def wait(millis): display = None window = None +entry = None expected_change = None def key_pressed_cb (controller, keyval, keycode, state): @@ -232,11 +233,44 @@ def launch_observer(): # we need to wait out the map animation, or pointer coords will be off wait(1000) +def launch_entry(): + global display + global window + global entry + + if verbose: + print('launch entry') + + if display == None: + display = Gdk.Display.open(os.getenv('WAYLAND_DISPLAY')) + + window = Gtk.Window.new() + + entry = Gtk.Entry.new() + + window.set_child(entry) + + window.connect('notify::is-active', got_active) + window.maximize() + window.present() + + wait(500) + + assert window.is_active(), "Observer not active" + assert window.get_width() == 1024, "Window not maximized" + assert window.get_height() == 768, "Window not maximized" + + # we need to wait out the map animation, or pointer coords will be off + wait(1000) + def stop_observer(): global window window.destroy() window = None +def expect_entry_text(text): + assert text == entry.get_text(), 'Unexpected entry text: ' + entry.get_text() + def key_press(keyval): if verbose: print(f'press key {keyval}') @@ -298,6 +332,27 @@ def basic_keyboard_tests(): print(f'Error in basic_keyboard_tests: {e}') terminate() +def quick_typing_test(): + try: + launch_entry() + + key_press(Gdk.KEY_T) + key_release(Gdk.KEY_T) + key_press(Gdk.KEY_e) + key_release(Gdk.KEY_e) + key_press(Gdk.KEY_s) + key_release(Gdk.KEY_s) + key_press(Gdk.KEY_t) + key_release(Gdk.KEY_t) + + wait(100) + expect_entry_text('Test') + + stop_observer() + except AssertionError as e: + print(f'Error in quick_typing_test: {e}') + terminate() + def basic_pointer_tests(): try: if verbose: @@ -490,6 +545,7 @@ def run_commands(): basic_keyboard_tests() basic_pointer_tests() dnd_tests() + quick_typing_test() def mutter_appeared(name): global remote_desktop