From cc35cc6c4e3ed5d2c2126c1bca6e460bec6f08ab Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 28 Jul 2020 16:34:01 -0400 Subject: [PATCH] a11y: Add tests for mnemonics We set up labelled-by accessible relations when a label is set as mnemonic widget. Verify that that happens as expected. --- testsuite/a11y/label.c | 43 ++++++++++++++++++++++++++++++++++++++ testsuite/a11y/meson.build | 1 + 2 files changed, 44 insertions(+) create mode 100644 testsuite/a11y/label.c diff --git a/testsuite/a11y/label.c b/testsuite/a11y/label.c new file mode 100644 index 0000000000..29803d990a --- /dev/null +++ b/testsuite/a11y/label.c @@ -0,0 +1,43 @@ +#include + +static void +label_relations (void) +{ + GtkWidget *label = gtk_label_new ("a"); + GtkWidget *label2 = gtk_label_new ("b"); + GtkWidget *entry = gtk_entry_new (); + GList *list; + + g_object_ref_sink (label); + g_object_ref_sink (label2); + g_object_ref_sink (entry); + + gtk_test_accessible_assert_relation (GTK_ACCESSIBLE (entry), GTK_ACCESSIBLE_RELATION_LABELLED_BY, NULL); + + gtk_widget_add_mnemonic_label (entry, label); + + list = g_list_append (NULL, label); + gtk_test_accessible_assert_relation (GTK_ACCESSIBLE (entry), GTK_ACCESSIBLE_RELATION_LABELLED_BY, list); + g_list_free (list); + + gtk_widget_add_mnemonic_label (entry, label2); + + list = g_list_append (NULL, label); + list = g_list_append (list, label2); + gtk_test_accessible_assert_relation (GTK_ACCESSIBLE (entry), GTK_ACCESSIBLE_RELATION_LABELLED_BY, list); + g_list_free (list); + + g_object_unref (entry); + g_object_unref (label); + g_object_unref (label2); +} + +int +main (int argc, char *argv[]) +{ + gtk_test_init (&argc, &argv, NULL); + + g_test_add_func ("/a11y/label/relations", label_relations); + + return g_test_run (); +} diff --git a/testsuite/a11y/meson.build b/testsuite/a11y/meson.build index 81384c7bbf..cd27dc80a2 100644 --- a/testsuite/a11y/meson.build +++ b/testsuite/a11y/meson.build @@ -16,6 +16,7 @@ tests = [ { 'name': 'dialog' }, { 'name': 'entry' }, { 'name': 'image' }, + { 'name': 'label' }, { 'name': 'progressbar' }, { 'name': 'scrollbar' }, { 'name': 'separator' },