[gtk+] a11y tests: Prepare to dump AtkHypertext



commit 3c5bb9722b99373a0730cd2f1c03d6a5649435d6
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Jan 3 20:34:22 2014 -0500

    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 |   54 +++++++++++++++++++++++++++-------
 testsuite/a11y/link.txt             |    5 ++-
 2 files changed, 47 insertions(+), 12 deletions(-)
---
diff --git a/testsuite/a11y/accessibility-dump.c b/testsuite/a11y/accessibility-dump.c
index ce1a87a..a72591e 100644
--- a/testsuite/a11y/accessibility-dump.c
+++ b/testsuite/a11y/accessibility-dump.c
@@ -468,30 +468,59 @@ dump_atk_value (AtkValue *atk_value,
 }
 
 static void
-dump_atk_hyperlink_impl (AtkHyperlinkImpl *impl,
-                         guint             depth,
-                         GString          *string)
+dump_atk_hyperlink (AtkHyperlink *link,
+                    guint         depth,
+                    GString      *string)
 {
-  AtkHyperlink *atk_link;
   gint i;
 
-  g_string_append_printf (string, "%*s<AtkHyperlinkImpl>\n", depth, "");
-
-  atk_link = atk_hyperlink_impl_get_hyperlink (impl);
-
+  g_string_append_printf (string, "%*s<AtkHyperlink>\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 (atk_link); i++)
+  for (i = 0; i < atk_hyperlink_get_n_anchors (link); i++)
     {
       gchar *uri;
 
-      uri = atk_hyperlink_get_uri (atk_link, i);
+      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 *link;
+
+  g_string_append_printf (string, "%*s<AtkHyperlinkImpl>\n", depth, "");
 
-  g_object_unref (atk_link);
+  link = atk_hyperlink_impl_get_hyperlink (impl);
+  dump_atk_hyperlink (link, depth + DEPTH_INCREMENT, string);
+  g_object_unref (link);
+}
+
+static void
+dump_atk_hypertext (AtkHypertext *hypertext,
+                    guint         depth,
+                    GString      *string)
+{
+  gint i;
+  AtkHyperlink *link;
+
+  g_string_append_printf (string, "%*s<AtkHypertext>\n", depth, "");
+
+  for (i = 0; i < atk_hypertext_get_n_links (hypertext); i++)
+    {
+      link = atk_hypertext_get_link (hypertext, i);
+      dump_atk_hyperlink (link, depth + DEPTH_INCREMENT, string);
+      g_object_unref (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 e94e9c3..e95e8bc 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
     <AtkHyperlinkImpl>
-    anchors: http://www.gtk.org
+      <AtkHyperlink>
+      start index: 0
+      end index: 0
+      anchors: http://www.gtk.org


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]