| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/logging.h" | 5 #include "base/logging.h" |
| 6 #include "content/browser/accessibility/browser_accessibility.h" | 6 #include "content/browser/accessibility/browser_accessibility.h" |
| 7 #include "content/browser/accessibility/browser_accessibility_manager.h" | 7 #include "content/browser/accessibility/browser_accessibility_manager.h" |
| 8 #include "content/browser/web_contents/web_contents_impl.h" | 8 #include "content/browser/web_contents/web_contents_impl.h" |
| 9 #include "content/public/test/browser_test_utils.h" | 9 #include "content/public/test/browser_test_utils.h" |
| 10 #include "content/public/test/content_browser_test.h" | 10 #include "content/public/test/content_browser_test.h" |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 // (50, 50) -> "Button" | 129 // (50, 50) -> "Button" |
| 130 BrowserAccessibility* hit_node; | 130 BrowserAccessibility* hit_node; |
| 131 hit_node = HitTestAndWaitForResult(gfx::Point(50, 50)); | 131 hit_node = HitTestAndWaitForResult(gfx::Point(50, 50)); |
| 132 ASSERT_TRUE(hit_node != NULL); | 132 ASSERT_TRUE(hit_node != NULL); |
| 133 ASSERT_EQ(ui::AX_ROLE_BUTTON, hit_node->GetRole()); | 133 ASSERT_EQ(ui::AX_ROLE_BUTTON, hit_node->GetRole()); |
| 134 ASSERT_EQ("Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); | 134 ASSERT_EQ("Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); |
| 135 | 135 |
| 136 // (50, 305) -> div in first iframe | 136 // (50, 305) -> div in first iframe |
| 137 hit_node = HitTestAndWaitForResult(gfx::Point(50, 305)); | 137 hit_node = HitTestAndWaitForResult(gfx::Point(50, 305)); |
| 138 ASSERT_TRUE(hit_node != NULL); | 138 ASSERT_TRUE(hit_node != NULL); |
| 139 ASSERT_EQ(ui::AX_ROLE_DIV, hit_node->GetRole()); | 139 ASSERT_EQ(ui::AX_ROLE_GENERIC_CONTAINER, hit_node->GetRole()); |
| 140 | 140 |
| 141 // (50, 350) -> "Ordinary Button" | 141 // (50, 350) -> "Ordinary Button" |
| 142 hit_node = HitTestAndWaitForResult(gfx::Point(50, 350)); | 142 hit_node = HitTestAndWaitForResult(gfx::Point(50, 350)); |
| 143 ASSERT_TRUE(hit_node != NULL); | 143 ASSERT_TRUE(hit_node != NULL); |
| 144 ASSERT_EQ(ui::AX_ROLE_BUTTON, hit_node->GetRole()); | 144 ASSERT_EQ(ui::AX_ROLE_BUTTON, hit_node->GetRole()); |
| 145 ASSERT_EQ("Ordinary Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); | 145 ASSERT_EQ("Ordinary Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); |
| 146 | 146 |
| 147 // (50, 455) -> "Scrolled Button" | 147 // (50, 455) -> "Scrolled Button" |
| 148 hit_node = HitTestAndWaitForResult(gfx::Point(50, 455)); | 148 hit_node = HitTestAndWaitForResult(gfx::Point(50, 455)); |
| 149 ASSERT_TRUE(hit_node != NULL); | 149 ASSERT_TRUE(hit_node != NULL); |
| 150 ASSERT_EQ(ui::AX_ROLE_BUTTON, hit_node->GetRole()); | 150 ASSERT_EQ(ui::AX_ROLE_BUTTON, hit_node->GetRole()); |
| 151 ASSERT_EQ("Scrolled Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); | 151 ASSERT_EQ("Scrolled Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); |
| 152 | 152 |
| 153 // (50, 505) -> div in second iframe | 153 // (50, 505) -> div in second iframe |
| 154 hit_node = HitTestAndWaitForResult(gfx::Point(50, 505)); | 154 hit_node = HitTestAndWaitForResult(gfx::Point(50, 505)); |
| 155 ASSERT_TRUE(hit_node != NULL); | 155 ASSERT_TRUE(hit_node != NULL); |
| 156 ASSERT_EQ(ui::AX_ROLE_DIV, hit_node->GetRole()); | 156 ASSERT_EQ(ui::AX_ROLE_GENERIC_CONTAINER, hit_node->GetRole()); |
| 157 | 157 |
| 158 // (50, 505) -> div in second iframe | 158 // (50, 505) -> div in second iframe |
| 159 // but with a different event | 159 // but with a different event |
| 160 hit_node = | 160 hit_node = |
| 161 HitTestAndWaitForResultWithEvent(gfx::Point(50, 505), ui::AX_EVENT_ALERT); | 161 HitTestAndWaitForResultWithEvent(gfx::Point(50, 505), ui::AX_EVENT_ALERT); |
| 162 ASSERT_NE(hit_node, nullptr); | 162 ASSERT_NE(hit_node, nullptr); |
| 163 ASSERT_EQ(ui::AX_ROLE_DIV, hit_node->GetRole()); | 163 ASSERT_EQ(ui::AX_ROLE_GENERIC_CONTAINER, hit_node->GetRole()); |
| 164 } | 164 } |
| 165 | 165 |
| 166 IN_PROC_BROWSER_TEST_F(AccessibilityHitTestingBrowserTest, | 166 IN_PROC_BROWSER_TEST_F(AccessibilityHitTestingBrowserTest, |
| 167 CachingAsyncHitTestingInIframes) { | 167 CachingAsyncHitTestingInIframes) { |
| 168 ASSERT_TRUE(embedded_test_server()->Start()); | 168 ASSERT_TRUE(embedded_test_server()->Start()); |
| 169 | 169 |
| 170 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 170 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
| 171 | 171 |
| 172 AccessibilityNotificationWaiter waiter(shell()->web_contents(), | 172 AccessibilityNotificationWaiter waiter(shell()->web_contents(), |
| 173 kAccessibilityModeComplete, | 173 kAccessibilityModeComplete, |
| (...skipping 19 matching lines...) Expand all Loading... |
| 193 BrowserAccessibility* hit_node; | 193 BrowserAccessibility* hit_node; |
| 194 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 50)); | 194 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 50)); |
| 195 ASSERT_TRUE(hit_node != NULL); | 195 ASSERT_TRUE(hit_node != NULL); |
| 196 ASSERT_NE(ui::AX_ROLE_BUTTON, hit_node->GetRole()); | 196 ASSERT_NE(ui::AX_ROLE_BUTTON, hit_node->GetRole()); |
| 197 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 50)); | 197 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 50)); |
| 198 ASSERT_EQ("Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); | 198 ASSERT_EQ("Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); |
| 199 | 199 |
| 200 // (50, 305) -> div in first iframe | 200 // (50, 305) -> div in first iframe |
| 201 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 305)); | 201 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 305)); |
| 202 ASSERT_TRUE(hit_node != NULL); | 202 ASSERT_TRUE(hit_node != NULL); |
| 203 ASSERT_NE(ui::AX_ROLE_DIV, hit_node->GetRole()); | 203 ASSERT_NE(ui::AX_ROLE_GENERIC_CONTAINER, hit_node->GetRole()); |
| 204 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 305)); | 204 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 305)); |
| 205 ASSERT_EQ(ui::AX_ROLE_DIV, hit_node->GetRole()); | 205 ASSERT_EQ(ui::AX_ROLE_GENERIC_CONTAINER, hit_node->GetRole()); |
| 206 | 206 |
| 207 // (50, 350) -> "Ordinary Button" | 207 // (50, 350) -> "Ordinary Button" |
| 208 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 350)); | 208 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 350)); |
| 209 ASSERT_TRUE(hit_node != NULL); | 209 ASSERT_TRUE(hit_node != NULL); |
| 210 ASSERT_NE(ui::AX_ROLE_BUTTON, hit_node->GetRole()); | 210 ASSERT_NE(ui::AX_ROLE_BUTTON, hit_node->GetRole()); |
| 211 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 350)); | 211 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 350)); |
| 212 ASSERT_EQ(ui::AX_ROLE_BUTTON, hit_node->GetRole()); | 212 ASSERT_EQ(ui::AX_ROLE_BUTTON, hit_node->GetRole()); |
| 213 ASSERT_EQ("Ordinary Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); | 213 ASSERT_EQ("Ordinary Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); |
| 214 | 214 |
| 215 // (50, 455) -> "Scrolled Button" | 215 // (50, 455) -> "Scrolled Button" |
| 216 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 455)); | 216 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 455)); |
| 217 ASSERT_TRUE(hit_node != NULL); | 217 ASSERT_TRUE(hit_node != NULL); |
| 218 ASSERT_NE(ui::AX_ROLE_BUTTON, hit_node->GetRole()); | 218 ASSERT_NE(ui::AX_ROLE_BUTTON, hit_node->GetRole()); |
| 219 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 455)); | 219 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 455)); |
| 220 ASSERT_EQ(ui::AX_ROLE_BUTTON, hit_node->GetRole()); | 220 ASSERT_EQ(ui::AX_ROLE_BUTTON, hit_node->GetRole()); |
| 221 ASSERT_EQ("Scrolled Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); | 221 ASSERT_EQ("Scrolled Button", hit_node->GetStringAttribute(ui::AX_ATTR_NAME)); |
| 222 | 222 |
| 223 // (50, 505) -> div in second iframe | 223 // (50, 505) -> div in second iframe |
| 224 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 505)); | 224 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 505)); |
| 225 ASSERT_TRUE(hit_node != NULL); | 225 ASSERT_TRUE(hit_node != NULL); |
| 226 ASSERT_NE(ui::AX_ROLE_DIV, hit_node->GetRole()); | 226 ASSERT_NE(ui::AX_ROLE_GENERIC_CONTAINER, hit_node->GetRole()); |
| 227 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 505)); | 227 hit_node = CallCachingAsyncHitTest(gfx::Point(50, 505)); |
| 228 ASSERT_EQ(ui::AX_ROLE_DIV, hit_node->GetRole()); | 228 ASSERT_EQ(ui::AX_ROLE_GENERIC_CONTAINER, hit_node->GetRole()); |
| 229 } | 229 } |
| 230 | 230 |
| 231 } // namespace content | 231 } // namespace content |
| OLD | NEW |