OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 return nullptr; | 72 return nullptr; |
73 } | 73 } |
74 }; | 74 }; |
75 | 75 |
76 } // namespace | 76 } // namespace |
77 | 77 |
78 IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, FocusAction) { | 78 IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, FocusAction) { |
79 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 79 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
80 | 80 |
81 AccessibilityNotificationWaiter waiter(shell()->web_contents(), | 81 AccessibilityNotificationWaiter waiter(shell()->web_contents(), |
82 ACCESSIBILITY_MODE_COMPLETE, | 82 kAccessibilityModeComplete, |
83 ui::AX_EVENT_LOAD_COMPLETE); | 83 ui::AX_EVENT_LOAD_COMPLETE); |
84 GURL url("data:text/html," | 84 GURL url("data:text/html," |
85 "<button>One</button>" | 85 "<button>One</button>" |
86 "<button>Two</button>" | 86 "<button>Two</button>" |
87 "<button>Three</button>"); | 87 "<button>Three</button>"); |
88 NavigateToURL(shell(), url); | 88 NavigateToURL(shell(), url); |
89 waiter.WaitForNotification(); | 89 waiter.WaitForNotification(); |
90 | 90 |
91 BrowserAccessibility* target = FindNode(ui::AX_ROLE_BUTTON, "One"); | 91 BrowserAccessibility* target = FindNode(ui::AX_ROLE_BUTTON, "One"); |
92 ASSERT_NE(nullptr, target); | 92 ASSERT_NE(nullptr, target); |
93 | 93 |
94 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), | 94 AccessibilityNotificationWaiter waiter2( |
95 ACCESSIBILITY_MODE_COMPLETE, | 95 shell()->web_contents(), kAccessibilityModeComplete, ui::AX_EVENT_FOCUS); |
96 ui::AX_EVENT_FOCUS); | |
97 GetManager()->SetFocus(*target); | 96 GetManager()->SetFocus(*target); |
98 waiter2.WaitForNotification(); | 97 waiter2.WaitForNotification(); |
99 | 98 |
100 BrowserAccessibility* focus = GetManager()->GetFocus(); | 99 BrowserAccessibility* focus = GetManager()->GetFocus(); |
101 EXPECT_EQ(focus->GetId(), target->GetId()); | 100 EXPECT_EQ(focus->GetId(), target->GetId()); |
102 } | 101 } |
103 | 102 |
104 IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, | 103 IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, |
105 IncrementDecrementActions) { | 104 IncrementDecrementActions) { |
106 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 105 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
107 | 106 |
108 AccessibilityNotificationWaiter waiter(shell()->web_contents(), | 107 AccessibilityNotificationWaiter waiter(shell()->web_contents(), |
109 ACCESSIBILITY_MODE_COMPLETE, | 108 kAccessibilityModeComplete, |
110 ui::AX_EVENT_LOAD_COMPLETE); | 109 ui::AX_EVENT_LOAD_COMPLETE); |
111 GURL url("data:text/html," | 110 GURL url("data:text/html," |
112 "<input type=range min=2 value=8 max=10 step=2>"); | 111 "<input type=range min=2 value=8 max=10 step=2>"); |
113 NavigateToURL(shell(), url); | 112 NavigateToURL(shell(), url); |
114 waiter.WaitForNotification(); | 113 waiter.WaitForNotification(); |
115 | 114 |
116 BrowserAccessibility* target = FindNode(ui::AX_ROLE_SLIDER, ""); | 115 BrowserAccessibility* target = FindNode(ui::AX_ROLE_SLIDER, ""); |
117 ASSERT_NE(nullptr, target); | 116 ASSERT_NE(nullptr, target); |
118 EXPECT_EQ(8.0, target->GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE)); | 117 EXPECT_EQ(8.0, target->GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE)); |
119 | 118 |
120 // Increment, should result in value changing from 8 to 10. | 119 // Increment, should result in value changing from 8 to 10. |
121 { | 120 { |
122 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), | 121 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), |
123 ACCESSIBILITY_MODE_COMPLETE, | 122 kAccessibilityModeComplete, |
124 ui::AX_EVENT_VALUE_CHANGED); | 123 ui::AX_EVENT_VALUE_CHANGED); |
125 GetManager()->Increment(*target); | 124 GetManager()->Increment(*target); |
126 waiter2.WaitForNotification(); | 125 waiter2.WaitForNotification(); |
127 } | 126 } |
128 EXPECT_EQ(10.0, target->GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE)); | 127 EXPECT_EQ(10.0, target->GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE)); |
129 | 128 |
130 // Increment, should result in value staying the same (max). | 129 // Increment, should result in value staying the same (max). |
131 { | 130 { |
132 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), | 131 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), |
133 ACCESSIBILITY_MODE_COMPLETE, | 132 kAccessibilityModeComplete, |
134 ui::AX_EVENT_VALUE_CHANGED); | 133 ui::AX_EVENT_VALUE_CHANGED); |
135 GetManager()->Increment(*target); | 134 GetManager()->Increment(*target); |
136 waiter2.WaitForNotification(); | 135 waiter2.WaitForNotification(); |
137 } | 136 } |
138 EXPECT_EQ(10.0, target->GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE)); | 137 EXPECT_EQ(10.0, target->GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE)); |
139 | 138 |
140 // Decrement, should result in value changing from 10 to 8. | 139 // Decrement, should result in value changing from 10 to 8. |
141 { | 140 { |
142 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), | 141 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), |
143 ACCESSIBILITY_MODE_COMPLETE, | 142 kAccessibilityModeComplete, |
144 ui::AX_EVENT_VALUE_CHANGED); | 143 ui::AX_EVENT_VALUE_CHANGED); |
145 GetManager()->Decrement(*target); | 144 GetManager()->Decrement(*target); |
146 waiter2.WaitForNotification(); | 145 waiter2.WaitForNotification(); |
147 } | 146 } |
148 EXPECT_EQ(8.0, target->GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE)); | 147 EXPECT_EQ(8.0, target->GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE)); |
149 } | 148 } |
150 | 149 |
151 IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, CanvasGetImage) { | 150 IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, CanvasGetImage) { |
152 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 151 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
153 | 152 |
154 AccessibilityNotificationWaiter waiter(shell()->web_contents(), | 153 AccessibilityNotificationWaiter waiter(shell()->web_contents(), |
155 ACCESSIBILITY_MODE_COMPLETE, | 154 kAccessibilityModeComplete, |
156 ui::AX_EVENT_LOAD_COMPLETE); | 155 ui::AX_EVENT_LOAD_COMPLETE); |
157 GURL url("data:text/html," | 156 GURL url("data:text/html," |
158 "<body>" | 157 "<body>" |
159 "<canvas aria-label='canvas' id='c' width='4' height='2'></canvas>" | 158 "<canvas aria-label='canvas' id='c' width='4' height='2'></canvas>" |
160 "<script>\n" | 159 "<script>\n" |
161 " var c = document.getElementById('c').getContext('2d');\n" | 160 " var c = document.getElementById('c').getContext('2d');\n" |
162 " c.beginPath();\n" | 161 " c.beginPath();\n" |
163 " c.moveTo(0, 0.5);\n" | 162 " c.moveTo(0, 0.5);\n" |
164 " c.lineTo(4, 0.5);\n" | 163 " c.lineTo(4, 0.5);\n" |
165 " c.strokeStyle = '#ff0000';\n" | 164 " c.strokeStyle = '#ff0000';\n" |
166 " c.stroke();\n" | 165 " c.stroke();\n" |
167 " c.beginPath();\n" | 166 " c.beginPath();\n" |
168 " c.moveTo(0, 1.5);\n" | 167 " c.moveTo(0, 1.5);\n" |
169 " c.lineTo(4, 1.5);\n" | 168 " c.lineTo(4, 1.5);\n" |
170 " c.strokeStyle = '#0000ff';\n" | 169 " c.strokeStyle = '#0000ff';\n" |
171 " c.stroke();\n" | 170 " c.stroke();\n" |
172 "</script>" | 171 "</script>" |
173 "</body>"); | 172 "</body>"); |
174 | 173 |
175 NavigateToURL(shell(), url); | 174 NavigateToURL(shell(), url); |
176 waiter.WaitForNotification(); | 175 waiter.WaitForNotification(); |
177 | 176 |
178 BrowserAccessibility* target = FindNode(ui::AX_ROLE_CANVAS, "canvas"); | 177 BrowserAccessibility* target = FindNode(ui::AX_ROLE_CANVAS, "canvas"); |
179 ASSERT_NE(nullptr, target); | 178 ASSERT_NE(nullptr, target); |
180 | 179 |
181 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), | 180 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), |
182 ACCESSIBILITY_MODE_COMPLETE, | 181 kAccessibilityModeComplete, |
183 ui::AX_EVENT_IMAGE_FRAME_UPDATED); | 182 ui::AX_EVENT_IMAGE_FRAME_UPDATED); |
184 GetManager()->GetImageData(*target, gfx::Size()); | 183 GetManager()->GetImageData(*target, gfx::Size()); |
185 waiter2.WaitForNotification(); | 184 waiter2.WaitForNotification(); |
186 | 185 |
187 SkBitmap bitmap; | 186 SkBitmap bitmap; |
188 GetBitmapFromImageDataURL(target, &bitmap); | 187 GetBitmapFromImageDataURL(target, &bitmap); |
189 ASSERT_EQ(4, bitmap.width()); | 188 ASSERT_EQ(4, bitmap.width()); |
190 ASSERT_EQ(2, bitmap.height()); | 189 ASSERT_EQ(2, bitmap.height()); |
191 EXPECT_EQ(SK_ColorRED, bitmap.getColor(0, 0)); | 190 EXPECT_EQ(SK_ColorRED, bitmap.getColor(0, 0)); |
192 EXPECT_EQ(SK_ColorRED, bitmap.getColor(1, 0)); | 191 EXPECT_EQ(SK_ColorRED, bitmap.getColor(1, 0)); |
193 EXPECT_EQ(SK_ColorRED, bitmap.getColor(2, 0)); | 192 EXPECT_EQ(SK_ColorRED, bitmap.getColor(2, 0)); |
194 EXPECT_EQ(SK_ColorRED, bitmap.getColor(3, 0)); | 193 EXPECT_EQ(SK_ColorRED, bitmap.getColor(3, 0)); |
195 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(0, 1)); | 194 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(0, 1)); |
196 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(1, 1)); | 195 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(1, 1)); |
197 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(2, 1)); | 196 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(2, 1)); |
198 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(3, 1)); | 197 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(3, 1)); |
199 } | 198 } |
200 | 199 |
201 IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, CanvasGetImageScale) { | 200 IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, CanvasGetImageScale) { |
202 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 201 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
203 | 202 |
204 AccessibilityNotificationWaiter waiter(shell()->web_contents(), | 203 AccessibilityNotificationWaiter waiter(shell()->web_contents(), |
205 ACCESSIBILITY_MODE_COMPLETE, | 204 kAccessibilityModeComplete, |
206 ui::AX_EVENT_LOAD_COMPLETE); | 205 ui::AX_EVENT_LOAD_COMPLETE); |
207 GURL url("data:text/html," | 206 GURL url("data:text/html," |
208 "<body>" | 207 "<body>" |
209 "<canvas aria-label='canvas' id='c' width='40' height='20'></canvas>" | 208 "<canvas aria-label='canvas' id='c' width='40' height='20'></canvas>" |
210 "<script>\n" | 209 "<script>\n" |
211 " var c = document.getElementById('c').getContext('2d');\n" | 210 " var c = document.getElementById('c').getContext('2d');\n" |
212 " c.fillStyle = '#00ff00';\n" | 211 " c.fillStyle = '#00ff00';\n" |
213 " c.fillRect(0, 0, 40, 10);\n" | 212 " c.fillRect(0, 0, 40, 10);\n" |
214 " c.fillStyle = '#ff00ff';\n" | 213 " c.fillStyle = '#ff00ff';\n" |
215 " c.fillRect(0, 10, 40, 10);\n" | 214 " c.fillRect(0, 10, 40, 10);\n" |
216 "</script>" | 215 "</script>" |
217 "</body>"); | 216 "</body>"); |
218 | 217 |
219 NavigateToURL(shell(), url); | 218 NavigateToURL(shell(), url); |
220 waiter.WaitForNotification(); | 219 waiter.WaitForNotification(); |
221 | 220 |
222 BrowserAccessibility* target = FindNode(ui::AX_ROLE_CANVAS, "canvas"); | 221 BrowserAccessibility* target = FindNode(ui::AX_ROLE_CANVAS, "canvas"); |
223 ASSERT_NE(nullptr, target); | 222 ASSERT_NE(nullptr, target); |
224 | 223 |
225 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), | 224 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), |
226 ACCESSIBILITY_MODE_COMPLETE, | 225 kAccessibilityModeComplete, |
227 ui::AX_EVENT_IMAGE_FRAME_UPDATED); | 226 ui::AX_EVENT_IMAGE_FRAME_UPDATED); |
228 GetManager()->GetImageData(*target, gfx::Size(4, 4)); | 227 GetManager()->GetImageData(*target, gfx::Size(4, 4)); |
229 waiter2.WaitForNotification(); | 228 waiter2.WaitForNotification(); |
230 | 229 |
231 SkBitmap bitmap; | 230 SkBitmap bitmap; |
232 GetBitmapFromImageDataURL(target, &bitmap); | 231 GetBitmapFromImageDataURL(target, &bitmap); |
233 ASSERT_EQ(4, bitmap.width()); | 232 ASSERT_EQ(4, bitmap.width()); |
234 ASSERT_EQ(2, bitmap.height()); | 233 ASSERT_EQ(2, bitmap.height()); |
235 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(0, 0)); | 234 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(0, 0)); |
236 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(1, 0)); | 235 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(1, 0)); |
237 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(2, 0)); | 236 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(2, 0)); |
238 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(3, 0)); | 237 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(3, 0)); |
239 EXPECT_EQ(SK_ColorMAGENTA, bitmap.getColor(0, 1)); | 238 EXPECT_EQ(SK_ColorMAGENTA, bitmap.getColor(0, 1)); |
240 EXPECT_EQ(SK_ColorMAGENTA, bitmap.getColor(1, 1)); | 239 EXPECT_EQ(SK_ColorMAGENTA, bitmap.getColor(1, 1)); |
241 EXPECT_EQ(SK_ColorMAGENTA, bitmap.getColor(2, 1)); | 240 EXPECT_EQ(SK_ColorMAGENTA, bitmap.getColor(2, 1)); |
242 EXPECT_EQ(SK_ColorMAGENTA, bitmap.getColor(3, 1)); | 241 EXPECT_EQ(SK_ColorMAGENTA, bitmap.getColor(3, 1)); |
243 } | 242 } |
244 | 243 |
245 IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, ImgElementGetImage) { | 244 IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, ImgElementGetImage) { |
246 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 245 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
247 | 246 |
248 AccessibilityNotificationWaiter waiter(shell()->web_contents(), | 247 AccessibilityNotificationWaiter waiter(shell()->web_contents(), |
249 ACCESSIBILITY_MODE_COMPLETE, | 248 kAccessibilityModeComplete, |
250 ui::AX_EVENT_LOAD_COMPLETE); | 249 ui::AX_EVENT_LOAD_COMPLETE); |
251 GURL url("data:text/html," | 250 GURL url("data:text/html," |
252 "<body>" | 251 "<body>" |
253 "<img src='data:image/gif;base64,R0lGODdhAgADAKEDAAAA//" | 252 "<img src='data:image/gif;base64,R0lGODdhAgADAKEDAAAA//" |
254 "8AAAD/AP///ywAAAAAAgADAAACBEwkAAUAOw=='>" | 253 "8AAAD/AP///ywAAAAAAgADAAACBEwkAAUAOw=='>" |
255 "</body>"); | 254 "</body>"); |
256 | 255 |
257 NavigateToURL(shell(), url); | 256 NavigateToURL(shell(), url); |
258 waiter.WaitForNotification(); | 257 waiter.WaitForNotification(); |
259 | 258 |
260 BrowserAccessibility* target = FindNode(ui::AX_ROLE_IMAGE, ""); | 259 BrowserAccessibility* target = FindNode(ui::AX_ROLE_IMAGE, ""); |
261 ASSERT_NE(nullptr, target); | 260 ASSERT_NE(nullptr, target); |
262 | 261 |
263 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), | 262 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), |
264 ACCESSIBILITY_MODE_COMPLETE, | 263 kAccessibilityModeComplete, |
265 ui::AX_EVENT_IMAGE_FRAME_UPDATED); | 264 ui::AX_EVENT_IMAGE_FRAME_UPDATED); |
266 GetManager()->GetImageData(*target, gfx::Size()); | 265 GetManager()->GetImageData(*target, gfx::Size()); |
267 waiter2.WaitForNotification(); | 266 waiter2.WaitForNotification(); |
268 | 267 |
269 SkBitmap bitmap; | 268 SkBitmap bitmap; |
270 GetBitmapFromImageDataURL(target, &bitmap); | 269 GetBitmapFromImageDataURL(target, &bitmap); |
271 ASSERT_EQ(2, bitmap.width()); | 270 ASSERT_EQ(2, bitmap.width()); |
272 ASSERT_EQ(3, bitmap.height()); | 271 ASSERT_EQ(3, bitmap.height()); |
273 EXPECT_EQ(SK_ColorRED, bitmap.getColor(0, 0)); | 272 EXPECT_EQ(SK_ColorRED, bitmap.getColor(0, 0)); |
274 EXPECT_EQ(SK_ColorRED, bitmap.getColor(1, 0)); | 273 EXPECT_EQ(SK_ColorRED, bitmap.getColor(1, 0)); |
275 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(0, 1)); | 274 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(0, 1)); |
276 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(1, 1)); | 275 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(1, 1)); |
277 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(0, 2)); | 276 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(0, 2)); |
278 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(1, 2)); | 277 EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(1, 2)); |
279 } | 278 } |
280 | 279 |
281 } // namespace content | 280 } // namespace content |
OLD | NEW |