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 |