From: Emmanuele Bassi Date: Thu, 26 Mar 2020 16:48:03 +0000 (+0000) Subject: tests: Add more cases for the trigger parser X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~19^2~24^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c75fdda8ddb0c0593f2f7d5cb7aa43f215462808;p=gtk4.git tests: Add more cases for the trigger parser --- diff --git a/testsuite/gtk/shortcuts.c b/testsuite/gtk/shortcuts.c index 27df0c839e..1236baeff0 100644 --- a/testsuite/gtk/shortcuts.c +++ b/testsuite/gtk/shortcuts.c @@ -153,17 +153,31 @@ test_trigger_equal (void) static void test_trigger_parse (void) { + enum + { + TRIGGER_KEYVAL, + TRIGGER_MNEMONIC, + TRIGGER_NEVER, + TRIGGER_INVALID + }; + struct { const char *str; GdkModifierType modifiers; guint keyval; + int trigger_type; } tests[] = { - { "z", GDK_CONTROL_MASK|GDK_MOD1_MASK, 'z' }, - { "U", GDK_CONTROL_MASK, 'u' }, - { "x", GDK_HYPER_MASK, 'x' }, - { "y", GDK_META_MASK, 'y' }, - { "KP_7", 0, GDK_KEY_KP_7 }, - { "exclam", GDK_SHIFT_MASK, '!' }, + { "z", GDK_CONTROL_MASK | GDK_MOD1_MASK, 'z', TRIGGER_KEYVAL }, + { "U", GDK_CONTROL_MASK, 'u', TRIGGER_KEYVAL }, + { "x", GDK_HYPER_MASK, 'x', TRIGGER_KEYVAL }, + { "y", GDK_META_MASK, 'y', TRIGGER_KEYVAL }, + { "KP_7", 0, GDK_KEY_KP_7, TRIGGER_KEYVAL }, + { "exclam", GDK_SHIFT_MASK, '!', TRIGGER_KEYVAL }, + { "never", 0, 0, TRIGGER_NEVER }, + { "_A", 0, GDK_KEY_a, TRIGGER_MNEMONIC }, + { "_s", 0, GDK_KEY_s, TRIGGER_MNEMONIC }, + { "foo", 0, 0, TRIGGER_INVALID }, + { "B", 0, 0, TRIGGER_INVALID }, }; GtkShortcutTrigger *trigger; int i; @@ -172,11 +186,36 @@ test_trigger_parse (void) { trigger = gtk_shortcut_trigger_parse_string (tests[i].str); - g_assert_true (GTK_IS_KEYVAL_TRIGGER (trigger)); - g_assert_cmpint (gtk_keyval_trigger_get_modifiers (GTK_KEYVAL_TRIGGER (trigger)), ==, tests[i].modifiers); - g_assert_cmpuint (gtk_keyval_trigger_get_keyval (GTK_KEYVAL_TRIGGER (trigger)), ==, tests[i].keyval); - - g_object_unref (trigger); + switch (tests[i].trigger_type) + { + case TRIGGER_INVALID: + g_assert_null (trigger); + break; + case TRIGGER_KEYVAL: + g_assert_true (GTK_IS_KEYVAL_TRIGGER (trigger)); + g_assert_cmpint (gtk_keyval_trigger_get_modifiers (GTK_KEYVAL_TRIGGER (trigger)), + ==, + tests[i].modifiers); + g_assert_cmpuint (gtk_keyval_trigger_get_keyval (GTK_KEYVAL_TRIGGER (trigger)), + ==, + tests[i].keyval); + break; + case TRIGGER_NEVER: + g_assert_true (GTK_IS_NEVER_TRIGGER (trigger)); + break; + case TRIGGER_MNEMONIC: + g_assert_true (GTK_IS_MNEMONIC_TRIGGER (trigger)); + g_assert_cmpuint (gtk_mnemonic_trigger_get_keyval (GTK_MNEMONIC_TRIGGER (trigger)), + ==, + tests[i].keyval); + break; + default: + g_assert_not_reached (); + break; + } + + if (tests[i].trigger_type != TRIGGER_INVALID) + g_object_unref (trigger); } }