From: Matthias Clasen Date: Tue, 20 Jun 2023 16:33:02 +0000 (-0400) Subject: a11y: Fix tests X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~118^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=cca6a66518e33779f37ad7853f7408d06bd5926d;p=gtk4.git a11y: Fix tests The change to make hidden follow mappedness means that we now need to arrange for our test cases to be mapped. --- diff --git a/testsuite/a11y/general.c b/testsuite/a11y/general.c index 006023919d..78c7c55a54 100644 --- a/testsuite/a11y/general.c +++ b/testsuite/a11y/general.c @@ -8,18 +8,20 @@ static void test_hidden (void) { + GtkWidget *window; GtkWidget *widget; + window = gtk_window_new (); widget = gtk_button_new (); - g_object_ref_sink (widget); + gtk_window_set_child (GTK_WINDOW (window), widget); - gtk_test_accessible_assert_state (widget, GTK_ACCESSIBLE_STATE_HIDDEN, FALSE); + gtk_test_accessible_assert_state (widget, GTK_ACCESSIBLE_STATE_HIDDEN, TRUE); - gtk_widget_set_visible (widget, FALSE); + gtk_window_present (GTK_WINDOW (window)); - gtk_test_accessible_assert_state (widget, GTK_ACCESSIBLE_STATE_HIDDEN, TRUE); + gtk_test_accessible_assert_state (widget, GTK_ACCESSIBLE_STATE_HIDDEN, FALSE); - g_object_unref (widget); + gtk_window_destroy (GTK_WINDOW (window)); } static void diff --git a/testsuite/a11y/names.c b/testsuite/a11y/names.c index 4a76b03420..2eba20edea 100644 --- a/testsuite/a11y/names.c +++ b/testsuite/a11y/names.c @@ -5,7 +5,7 @@ static void test_name_content (void) { - GtkWidget *label1, *label2, *box, *button; + GtkWidget *window, *label1, *label2, *box, *button; char *name; label1 = gtk_label_new ("a"); @@ -16,13 +16,10 @@ test_name_content (void) gtk_box_append (GTK_BOX (box), label1); gtk_box_append (GTK_BOX (box), label2); gtk_button_set_child (GTK_BUTTON (button), box); - g_object_ref_sink (button); - /* gtk_at_context_get_name only works on realized contexts */ - gtk_widget_realize_at_context (label1); - gtk_widget_realize_at_context (label2); - gtk_widget_realize_at_context (box); - gtk_widget_realize_at_context (button); + window = gtk_window_new (); + gtk_window_set_child (GTK_WINDOW (window), button); + gtk_window_present (GTK_WINDOW (window)); name = gtk_at_context_get_name (gtk_accessible_get_at_context (GTK_ACCESSIBLE (label1))); g_assert_cmpstr (name, ==, "a"); @@ -43,17 +40,20 @@ test_name_content (void) g_assert_cmpstr (name, ==, "a"); g_free (name); - g_object_unref (button); + gtk_window_destroy (GTK_WINDOW (window)); } static void test_name_tooltip (void) { - GtkWidget *image = gtk_image_new (); + GtkWidget *window, *image; char *name; - g_object_ref_sink (image); - gtk_widget_realize_at_context (image); + image = gtk_image_new (); + + window = gtk_window_new (); + gtk_window_set_child (GTK_WINDOW (window), image); + gtk_window_present (GTK_WINDOW (window)); gtk_widget_set_tooltip_text (image, "tooltip"); @@ -61,16 +61,44 @@ test_name_tooltip (void) g_assert_cmpstr (name, ==, "tooltip"); g_free (name); - g_object_unref (image); + gtk_window_destroy (GTK_WINDOW (window)); +} + +static void +test_name_menubutton (void) +{ + GtkWidget *window, *widget; + char *name; + + widget = gtk_menu_button_new (); + gtk_menu_button_set_popover (GTK_MENU_BUTTON (widget), gtk_popover_new ()); + + window = gtk_window_new (); + gtk_window_set_child (GTK_WINDOW (window), widget); + gtk_window_present (GTK_WINDOW (window)); + + gtk_widget_set_tooltip_text (widget, "tooltip"); + + name = gtk_at_context_get_name (gtk_accessible_get_at_context (GTK_ACCESSIBLE (widget))); + g_assert_cmpstr (name, ==, "tooltip"); + g_free (name); + + gtk_window_destroy (GTK_WINDOW (window)); } static void test_name_label (void) { - GtkWidget *image = gtk_image_new (); + GtkWidget *window, *image; char *name; char *desc; + image = gtk_image_new (); + + window = gtk_window_new (); + gtk_window_set_child (GTK_WINDOW (window), image); + gtk_window_present (GTK_WINDOW (window)); + g_object_ref_sink (image); gtk_widget_realize_at_context (image); @@ -89,13 +117,13 @@ test_name_label (void) g_free (name); g_free (desc); - g_object_unref (image); + gtk_window_destroy (GTK_WINDOW (window)); } static void test_name_prohibited (void) { - GtkWidget *widget; + GtkWidget *window, *widget; char *name; char *desc; @@ -104,8 +132,9 @@ test_name_prohibited (void) "label", "too late", NULL); - g_object_ref_sink (widget); - gtk_widget_realize_at_context (widget); + window = gtk_window_new (); + gtk_window_set_child (GTK_WINDOW (window), widget); + gtk_window_present (GTK_WINDOW (window)); name = gtk_at_context_get_name (gtk_accessible_get_at_context (GTK_ACCESSIBLE (widget))); desc = gtk_at_context_get_description (gtk_accessible_get_at_context (GTK_ACCESSIBLE (widget))); @@ -116,19 +145,20 @@ test_name_prohibited (void) g_free (name); g_free (desc); - g_object_unref (widget); + gtk_window_destroy (GTK_WINDOW (window)); } static void test_name_range (void) { - GtkWidget *scale; + GtkWidget *window, *scale; char *name; scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, 0, 100, 10); - g_object_ref_sink (scale); - gtk_widget_realize_at_context (scale); + window = gtk_window_new (); + gtk_window_set_child (GTK_WINDOW (window), scale); + gtk_window_present (GTK_WINDOW (window)); g_assert_true (gtk_accessible_get_accessible_role (GTK_ACCESSIBLE (scale)) == GTK_ACCESSIBLE_ROLE_SLIDER); g_assert_true (gtk_at_context_get_accessible_role (gtk_accessible_get_at_context (GTK_ACCESSIBLE (scale))) == GTK_ACCESSIBLE_ROLE_SLIDER); @@ -140,7 +170,7 @@ test_name_range (void) g_free (name); - g_object_unref (scale); + gtk_window_destroy (GTK_WINDOW (window)); } int @@ -150,6 +180,7 @@ main (int argc, char *argv[]) g_test_add_func ("/a11y/name/content", test_name_content); g_test_add_func ("/a11y/name/tooltip", test_name_tooltip); + g_test_add_func ("/a11y/name/menubutton", test_name_menubutton); g_test_add_func ("/a11y/name/label", test_name_label); g_test_add_func ("/a11y/name/prohibited", test_name_prohibited); g_test_add_func ("/a11y/name/range", test_name_range);