| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../resources/js-test.js"></script> |
| </head> |
| <body> |
| |
| <div id="content" role="group" /> |
| |
| <script> |
| if (window.accessibilityController) { |
| description("This tests that trying to retrieve AX objects deeper than the 512 level allowed in the DOM tree fails gracefully."); |
| |
| // Add a 500 levels deep hierarchy and enssure that deepest AX object can be retrieved successfully. |
| let parent = document.getElementById("content"); |
| let child = null; |
| for (let i = 0; i < 500; ++i) { |
| child = document.createElement("div"); |
| child.setAttribute("role", "group"); |
| parent.appendChild(child); |
| parent = child; |
| } |
| child.id = "deepest-child"; |
| child.innerText = "deepest child"; |
| var axChild = accessibilityController.accessibleElementById("deepest-child"); |
| if (accessibilityController.platformName == "mac") |
| shouldBe("axChild.childAtIndex(0).stringValue", "'AXValue: deepest child'"); |
| else if (accessibilityController.platformName == "atspi") |
| shouldBe("axChild.stringValue", "'AXValue: deepest child'"); |
| |
| // Add an additional 10 levels to the tree and check that trying to retrieve the deepest AX object fails gracefully. |
| for (let i = 0; i < 10; ++i) { |
| child = document.createElement("div"); |
| child.setAttribute("role", "group"); |
| parent.insertBefore(child, parent.firstChild); |
| parent = child; |
| } |
| child.id = "deepest-deepest-child"; |
| child.innerText = "deepest deepest child"; |
| axChild = accessibilityController.accessibleElementById("deepest-deepest-child"); |
| shouldBe("axChild", "null"); |
| } |
| </script> |
| </body> |
| </html> |