From 3c5bb9722b99373a0730cd2f1c03d6a5649435d6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 3 Jan 2014 20:34:22 -0500 Subject: [PATCH] a11y tests: Prepare to dump AtkHypertext This will be used for links in labels soon. As a side-effect, the output for AtkHyperlinkImpl changes slightly. Update expected output accordingly. --- testsuite/a11y/accessibility-dump.c | 58 ++++++++++++++++++++++------- testsuite/a11y/link.txt | 5 ++- 2 files changed, 49 insertions(+), 14 deletions(-) diff --git a/testsuite/a11y/accessibility-dump.c b/testsuite/a11y/accessibility-dump.c index ce1a87a106..a72591eb45 100644 --- a/testsuite/a11y/accessibility-dump.c +++ b/testsuite/a11y/accessibility-dump.c @@ -467,31 +467,60 @@ dump_atk_value (AtkValue *atk_value, */ } +static void +dump_atk_hyperlink (AtkHyperlink *link, + guint depth, + GString *string) +{ + gint i; + + g_string_append_printf (string, "%*s\n", depth, ""); + g_string_append_printf (string, "%*sstart index: %d\n", depth, "", atk_hyperlink_get_start_index (link)); + g_string_append_printf (string, "%*send index: %d\n", depth, "", atk_hyperlink_get_end_index (link)); + g_string_append_printf (string, "%*sanchors:", depth, ""); + + for (i = 0; i < atk_hyperlink_get_n_anchors (link); i++) + { + gchar *uri; + + uri = atk_hyperlink_get_uri (link, i); + g_string_append_printf (string, " %s", uri); + g_free (uri); + } + + g_string_append_c (string, '\n'); +} + static void dump_atk_hyperlink_impl (AtkHyperlinkImpl *impl, guint depth, GString *string) { - AtkHyperlink *atk_link; - gint i; + AtkHyperlink *link; g_string_append_printf (string, "%*s\n", depth, ""); - atk_link = atk_hyperlink_impl_get_hyperlink (impl); + link = atk_hyperlink_impl_get_hyperlink (impl); + dump_atk_hyperlink (link, depth + DEPTH_INCREMENT, string); + g_object_unref (link); +} - g_string_append_printf (string, "%*sanchors:", depth, ""); +static void +dump_atk_hypertext (AtkHypertext *hypertext, + guint depth, + GString *string) +{ + gint i; + AtkHyperlink *link; - for (i = 0; i < atk_hyperlink_get_n_anchors (atk_link); i++) + g_string_append_printf (string, "%*s\n", depth, ""); + + for (i = 0; i < atk_hypertext_get_n_links (hypertext); i++) { - gchar *uri; - - uri = atk_hyperlink_get_uri (atk_link, i); - g_string_append_printf (string, " %s", uri); - g_free (uri); + link = atk_hypertext_get_link (hypertext, i); + dump_atk_hyperlink (link, depth + DEPTH_INCREMENT, string); + g_object_unref (link); } - g_string_append_c (string, '\n'); - - g_object_unref (atk_link); } static void @@ -641,6 +670,9 @@ dump_accessible (AtkObject *accessible, if (ATK_IS_HYPERLINK_IMPL (accessible)) dump_atk_hyperlink_impl (ATK_HYPERLINK_IMPL (accessible), depth, string); + if (ATK_IS_HYPERTEXT (accessible)) + dump_atk_hypertext (ATK_HYPERTEXT (accessible), depth, string); + if (ATK_IS_STREAMABLE_CONTENT (accessible)) dump_atk_streamable_content (ATK_STREAMABLE_CONTENT (accessible), depth, string); diff --git a/testsuite/a11y/link.txt b/testsuite/a11y/link.txt index e94e9c3eb1..e95e8bcc1f 100644 --- a/testsuite/a11y/link.txt +++ b/testsuite/a11y/link.txt @@ -23,4 +23,7 @@ window1 action 0 name: click action 0 description: Clicks the button - anchors: http://www.gtk.org + + start index: 0 + end index: 0 + anchors: http://www.gtk.org