Title: [160907] trunk
Revision
160907
Author
mario.pr...@samsung.com
Date
2013-12-20 06:12:04 -0800 (Fri, 20 Dec 2013)

Log Message

[ATK] [WK2] platform/gtk/accessibility/roles-exposed.html is failing
https://bugs.webkit.org/show_bug.cgi?id=125854

Reviewed by Chris Fleizach.

Tools:

Ensure we don't ever create instances of AccessibilityUIElement
wrapping invalid platform-specific accessibility objects in DRT,
both for consistency with what WKTR does (so we avoid situations
where some tests fail in WK2 and not in WK1) and also to avoid
overlooking tests that might not be checking the right thing.

* DumpRenderTree/AccessibilityUIElement.cpp:
(AccessibilityUIElement::makeJSAccessibilityUIElement): Return a
nullPtr if the platformUIElement() is not a valid one.
* DumpRenderTree/AccessibilityUIElement.h:
(AccessibilityUIElement::platformUIElement): Added const modifier.

LayoutTests:

Updated tests and expectations to keep them passing after the
change done in DRT, without changing their actual purpose.

* platform/gtk/accessibility/roles-exposed.html: Make sure we
print "AXRole: (no element)" when accessibilityElementByID() does
not return a valid object, not to confuse it with cases where the
returned string for the role is an empty string.
* platform/gtk/accessibility/roles-exposed-expected.txt: Update
test expectations to reflect the "AXRole: (no element)" string
that is now being exposed. Also, replace the (wrongly added) PASS
expectations with FAIL for rowgroups, which are currently not
being exposed for ATK either.

* accessibility/deleting-iframe-destroys-axcache.html: Just
consider the first and third sons of the accessibility object for
the body (instead of the grandsons), so the test can run both in
Mac, where sons and grandsons are exposed, and ATK, where only
sons are exposed (no StaticText objects exposed there).

* accessibility/non-data-table-cell-title-ui-element.html: Use
accessibilityElementById() to get the accessibility object for the
"skip" table header instead of navigating with childAtIndex(),
since the hierarchy is not the same for Mac and ATK based ports.

* platform/mac/accessibility/search-predicate.html: Do not rely on
shouldBe() together with the string "AXRole: " when asking for the
role of objects that should no longer be in the accessibility
tree, and use shouldBeUndefined() instead.
* platform/mac/accessibility/search-when-element-starts-in-table.html: Ditto.

* platform/mac/accessibility/search-predicate-expected.txt: Update
expectations according to the usage of shouldBeUndefined().
* platform/mac/accessibility/search-when-element-starts-in-table-expected.txt: Ditto.

* platform/mac/TestExpectations: Add loading-iframe-updates-axtree.html
here, since it seems not to be returning the expected values for
either the scrollarea and the webarea in the iframe (see bug 126066).

* platform/mac-wk2/TestExpectations: Add search-when-element-starts-in-table.html
here, since it does not return an undefined object in WebKit2 when
the search query should return no results (see bug 125996).

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (160906 => 160907)


--- trunk/LayoutTests/ChangeLog	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/ChangeLog	2013-12-20 14:12:04 UTC (rev 160907)
@@ -1,3 +1,52 @@
+2013-12-20  Mario Sanchez Prada  <mario.pr...@samsung.com>
+
+        [ATK] [WK2] platform/gtk/accessibility/roles-exposed.html is failing
+        https://bugs.webkit.org/show_bug.cgi?id=125854
+
+        Reviewed by Chris Fleizach.
+
+        Updated tests and expectations to keep them passing after the
+        change done in DRT, without changing their actual purpose.
+
+        * platform/gtk/accessibility/roles-exposed.html: Make sure we
+        print "AXRole: (no element)" when accessibilityElementByID() does
+        not return a valid object, not to confuse it with cases where the
+        returned string for the role is an empty string.
+        * platform/gtk/accessibility/roles-exposed-expected.txt: Update
+        test expectations to reflect the "AXRole: (no element)" string
+        that is now being exposed. Also, replace the (wrongly added) PASS
+        expectations with FAIL for rowgroups, which are currently not
+        being exposed for ATK either.
+
+        * accessibility/deleting-iframe-destroys-axcache.html: Just
+        consider the first and third sons of the accessibility object for
+        the body (instead of the grandsons), so the test can run both in
+        Mac, where sons and grandsons are exposed, and ATK, where only
+        sons are exposed (no StaticText objects exposed there).
+
+        * accessibility/non-data-table-cell-title-ui-element.html: Use
+        accessibilityElementById() to get the accessibility object for the
+        "skip" table header instead of navigating with childAtIndex(),
+        since the hierarchy is not the same for Mac and ATK based ports.
+
+        * platform/mac/accessibility/search-predicate.html: Do not rely on
+        shouldBe() together with the string "AXRole: " when asking for the
+        role of objects that should no longer be in the accessibility
+        tree, and use shouldBeUndefined() instead.
+        * platform/mac/accessibility/search-when-element-starts-in-table.html: Ditto.
+
+        * platform/mac/accessibility/search-predicate-expected.txt: Update
+        expectations according to the usage of shouldBeUndefined().
+        * platform/mac/accessibility/search-when-element-starts-in-table-expected.txt: Ditto.
+
+        * platform/mac/TestExpectations: Add loading-iframe-updates-axtree.html
+        here, since it seems not to be returning the expected values for
+        either the scrollarea and the webarea in the iframe (see bug 126066).
+
+        * platform/mac-wk2/TestExpectations: Add search-when-element-starts-in-table.html
+        here, since it does not return an undefined object in WebKit2 when
+        the search query should return no results (see bug 125996).
+
 2013-12-20  Radu Stavila  <stav...@adobe.com>
 
         [CSS Regions] When changing flow-from/flow-into on :hover, elements overflowing the region are not correctly repainted

Modified: trunk/LayoutTests/accessibility/deleting-iframe-destroys-axcache.html (160906 => 160907)


--- trunk/LayoutTests/accessibility/deleting-iframe-destroys-axcache.html	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/accessibility/deleting-iframe-destroys-axcache.html	2013-12-20 14:12:04 UTC (rev 160907)
@@ -38,9 +38,9 @@
         if (window.accessibilityController) {
             window.root = accessibilityController.rootElement;
             window.body = root.childAtIndex(0);
-            window.before = body.childAtIndex(0).childAtIndex(0);
+            window.before = body.childAtIndex(0);
             window.iframe = body.childAtIndex(1).childAtIndex(0);
-            window.after = body.childAtIndex(2).childAtIndex(0);
+            window.after = body.childAtIndex(2);
 
             window.frameBody = window.iframe.childAtIndex(0);
             window.frameBodyRole = window.frameBody.role;
@@ -57,8 +57,8 @@
 
             window.newRoot = accessibilityController.rootElement;
             window.newBody = newRoot.childAtIndex(0);
-            window.newBefore = newBody.childAtIndex(0).childAtIndex(0);
-            window.newAfter = newBody.childAtIndex(1).childAtIndex(0);
+            window.newBefore = newBody.childAtIndex(0);
+            window.newAfter = newBody.childAtIndex(1);
 
             document.getElementById("console").innerText += "\nAfter:\n";
             buildAccessibilityTree(newRoot, 0);

Modified: trunk/LayoutTests/accessibility/non-data-table-cell-title-ui-element.html (160906 => 160907)


--- trunk/LayoutTests/accessibility/non-data-table-cell-title-ui-element.html	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/accessibility/non-data-table-cell-title-ui-element.html	2013-12-20 14:12:04 UTC (rev 160907)
@@ -14,7 +14,7 @@
 <th>issue</th>
 <th>fail</th>
 <th>blocked</th>
-<th>skip</th>
+<th id="skip">skip</th>
 <th>test</th>
 </tr>
 </tbody>
@@ -28,9 +28,8 @@
             var result = document.getElementById("result");
 
             var pass = document.getElementById("body");
-            body.focus();
             // get the <th>skip</th> element
-            var group = accessibilityController.focusedElement.childAtIndex(5);
+            var group = accessibilityController.accessibleElementById("skip");
             var titleUI = group.titleUIElement();
             var allAttributes = "";
             if (titleUI)

Modified: trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt (160906 => 160907)


--- trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt	2013-12-20 14:12:04 UTC (rev 160907)
@@ -172,21 +172,21 @@
       AXRole: AXTable
       
 FAIL: tr
-      
+      AXRole: (no element)
       Expected: AXRow
 
 PASS: th
       AXRole: AXCell
       
 FAIL: tr
-      
+      AXRole: (no element)
       Expected: AXRow
 
 PASS: td
       AXRole: AXCell
       
 FAIL: tr
-      
+      AXRole: (no element)
       Expected: AXRow
 
 PASS: th
@@ -279,11 +279,12 @@
 PASS: div[role=grid]
       AXRole: AXTable
       
-PASS: div[role=rowgroup]
-      
-      
+FAIL: div[role=rowgroup]
+      AXRole: (no element)
+      Expected: 
+
 FAIL: div[role=row]
-      
+      AXRole: (no element)
       Expected: AXRow
 
 PASS: div[role=gridcell]
@@ -398,11 +399,12 @@
 PASS: div[role=treegrid]
       AXRole: AXTable
       
-PASS: div[role=rowgroup]
-      
-      
+FAIL: div[role=rowgroup]
+      AXRole: (no element)
+      Expected: 
+
 FAIL: div[role=row]
-      
+      AXRole: (no element)
       Expected: AXRow
 
 PASS: div[role=gridcell]

Modified: trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html (160906 => 160907)


--- trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html	2013-12-20 14:12:04 UTC (rev 160907)
@@ -291,7 +291,7 @@
         if (axElement)
             role = axElement.role;
         else
-            role = 'AXRole: ';
+            role = 'AXRole: (no element)';
 
         output = el.tagName.toLowerCase() + (ariaRole?("[role="+ariaRole+"]"):'');
         if (el.getAttribute('data-note')) {

Modified: trunk/LayoutTests/platform/mac/TestExpectations (160906 => 160907)


--- trunk/LayoutTests/platform/mac/TestExpectations	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2013-12-20 14:12:04 UTC (rev 160907)
@@ -33,6 +33,9 @@
 fast/dom/Window/slow-unload-handler.html
 fast/dom/Window/slow-unload-handler-only-frame-is-stopped.html
 
+# This test fails on release and crashes on debug because of trying to use isEqual() with undefined objects
+webkit.org/b/126066 accessibility/loading-iframe-updates-axtree.html [ Failure Crash ]
+
 webkit.org/b/116636 accessibility/document-attributes.html [ Failure ]
 
 # Accessibility tests with missing AccessibilityController functionality.

Modified: trunk/LayoutTests/platform/mac/accessibility/search-predicate-expected.txt (160906 => 160907)


--- trunk/LayoutTests/platform/mac/accessibility/search-predicate-expected.txt	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac/accessibility/search-predicate-expected.txt	2013-12-20 14:12:04 UTC (rev 160907)
@@ -145,7 +145,7 @@
 PASS resultElement.title is 'AXTitle: test button 2'
 PASS resultElement.role is 'AXRole: AXButton'
 PASS resultElement.title is 'AXTitle: Submit'
-PASS resultElement.role is 'AXRole: '
+PASS resultElement is undefined.
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/platform/mac/accessibility/search-predicate.html (160906 => 160907)


--- trunk/LayoutTests/platform/mac/accessibility/search-predicate.html	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac/accessibility/search-predicate.html	2013-12-20 14:12:04 UTC (rev 160907)
@@ -364,7 +364,7 @@
         
         // there should be no more visible buttons
         resultElement = containerElement.uiElementForSearchPredicate(resultElement, true, "AXButtonSearchKey", "", true);
-        shouldBe("resultElement.role", "'AXRole: '");
+        shouldBeUndefined("resultElement");
         
     }
     

Modified: trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table-expected.txt (160906 => 160907)


--- trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table-expected.txt	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table-expected.txt	2013-12-20 14:12:04 UTC (rev 160907)
@@ -10,7 +10,7 @@
 
 PASS resultElement.role is 'AXRole: AXHeading'
 PASS resultElement.title is 'AXTitle: outside heading'
-PASS resultElement.role is 'AXRole: '
+PASS resultElement is undefined.
 PASS resultElement.role is 'AXRole: AXHeading'
 PASS resultElement.role is 'AXRole: AXCell'
 PASS resultElement.role is 'AXRole: AXRow'

Modified: trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table.html (160906 => 160907)


--- trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table.html	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table.html	2013-12-20 14:12:04 UTC (rev 160907)
@@ -32,7 +32,7 @@
 
         // A search for the previous heading should return nothing.
         resultElement = containerElement.uiElementForSearchPredicate(heading, false, "AXHeadingSearchKey", "", false);
-        shouldBe("resultElement.role", "'AXRole: '");
+        shouldBeUndefined("resultElement");
 
         // When asking the child of the heading for the previous element, it should return the heading.
         resultElement = containerElement.uiElementForSearchPredicate(heading.childAtIndex(0), false, "AXAnyTypeSearchKey", "", false);

Modified: trunk/LayoutTests/platform/mac-wk2/TestExpectations (160906 => 160907)


--- trunk/LayoutTests/platform/mac-wk2/TestExpectations	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac-wk2/TestExpectations	2013-12-20 14:12:04 UTC (rev 160907)
@@ -382,6 +382,9 @@
 
 webkit.org/b/124476 platform/mac-wk2/plugins/slow/asynchronous-plugin-initialization-multiple.html [ Pass Failure ]
 
+# uiElementForSearchPredicate() is not returning an undefined object when the search returns no results
+webkit.org/b/125996 platform/mac/accessibility/search-when-element-starts-in-table.html [ Failure ]
+
 ### END OF (1) Classified failures with bug reports
 ########################################
 

Modified: trunk/Tools/ChangeLog (160906 => 160907)


--- trunk/Tools/ChangeLog	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/Tools/ChangeLog	2013-12-20 14:12:04 UTC (rev 160907)
@@ -1,5 +1,24 @@
 2013-12-20  Mario Sanchez Prada  <mario.pr...@samsung.com>
 
+        [ATK] [WK2] platform/gtk/accessibility/roles-exposed.html is failing
+        https://bugs.webkit.org/show_bug.cgi?id=125854
+
+        Reviewed by Chris Fleizach.
+
+        Ensure we don't ever create instances of AccessibilityUIElement
+        wrapping invalid platform-specific accessibility objects in DRT,
+        both for consistency with what WKTR does (so we avoid situations
+        where some tests fail in WK2 and not in WK1) and also to avoid
+        overlooking tests that might not be checking the right thing.
+
+        * DumpRenderTree/AccessibilityUIElement.cpp:
+        (AccessibilityUIElement::makeJSAccessibilityUIElement): Return a
+        nullPtr if the platformUIElement() is not a valid one.
+        * DumpRenderTree/AccessibilityUIElement.h:
+        (AccessibilityUIElement::platformUIElement): Added const modifier.
+
+2013-12-20  Mario Sanchez Prada  <mario.pr...@samsung.com>
+
         Programmatically-inserted children lack accessibility events
         https://bugs.webkit.org/show_bug.cgi?id=100275
 

Modified: trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp (160906 => 160907)


--- trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp	2013-12-20 14:12:04 UTC (rev 160907)
@@ -1358,6 +1358,9 @@
 
 JSObjectRef AccessibilityUIElement::makeJSAccessibilityUIElement(JSContextRef context, const AccessibilityUIElement& element)
 {
+    if (!element.platformUIElement())
+        return nullptr;
+
     return JSObjectMake(context, AccessibilityUIElement::getJSClass(), new AccessibilityUIElement(element));
 }
 

Modified: trunk/Tools/DumpRenderTree/AccessibilityUIElement.h (160906 => 160907)


--- trunk/Tools/DumpRenderTree/AccessibilityUIElement.h	2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/Tools/DumpRenderTree/AccessibilityUIElement.h	2013-12-20 14:12:04 UTC (rev 160907)
@@ -67,7 +67,7 @@
     AccessibilityUIElement(const AccessibilityUIElement&);
     ~AccessibilityUIElement();
 
-    PlatformUIElement platformUIElement() { return m_element; }
+    PlatformUIElement platformUIElement() const { return m_element; }
 
     static JSObjectRef makeJSAccessibilityUIElement(JSContextRef, const AccessibilityUIElement&);
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to