OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 <atlbase.h> | 5 #include <atlbase.h> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/scoped_comptr_win.h" | 8 #include "base/scoped_comptr_win.h" |
9 #include "chrome/browser/automation/ui_controls.h" | 9 #include "chrome/browser/automation/ui_controls.h" |
10 #include "chrome/browser/browser.h" | 10 #include "chrome/browser/browser.h" |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 "data:text/html,<html><head><title>Accessibility Win Test</title></head>" | 340 "data:text/html,<html><head><title>Accessibility Win Test</title></head>" |
341 "<body><input type='button' value='push' /><input type='checkbox' />" | 341 "<body><input type='button' value='push' /><input type='checkbox' />" |
342 "</body></html>"); | 342 "</body></html>"); |
343 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); | 343 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); |
344 ui_test_utils::WaitForNotification( | 344 ui_test_utils::WaitForNotification( |
345 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 345 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
346 | 346 |
347 // Check the browser's copy of the renderer accessibility tree. | 347 // Check the browser's copy of the renderer accessibility tree. |
348 AccessibleChecker button_checker(L"push", ROLE_SYSTEM_PUSHBUTTON, L"push"); | 348 AccessibleChecker button_checker(L"push", ROLE_SYSTEM_PUSHBUTTON, L"push"); |
349 AccessibleChecker checkbox_checker(L"", ROLE_SYSTEM_CHECKBUTTON, L""); | 349 AccessibleChecker checkbox_checker(L"", ROLE_SYSTEM_CHECKBUTTON, L""); |
350 AccessibleChecker body_checker(L"", L"BODY", L""); | 350 AccessibleChecker body_checker(L"", L"body", L""); |
351 AccessibleChecker document2_checker( | 351 AccessibleChecker document2_checker( |
352 L"Accessibility Win Test", ROLE_SYSTEM_DOCUMENT, L""); | 352 L"Accessibility Win Test", ROLE_SYSTEM_DOCUMENT, L""); |
353 body_checker.AppendExpectedChild(&button_checker); | 353 body_checker.AppendExpectedChild(&button_checker); |
354 body_checker.AppendExpectedChild(&checkbox_checker); | 354 body_checker.AppendExpectedChild(&checkbox_checker); |
355 document2_checker.AppendExpectedChild(&body_checker); | 355 document2_checker.AppendExpectedChild(&body_checker); |
356 document2_checker.CheckAccessible(GetRendererAccessible()); | 356 document2_checker.CheckAccessible(GetRendererAccessible()); |
357 | 357 |
358 // Check that document accessible has a parent accessible. | 358 // Check that document accessible has a parent accessible. |
359 ScopedComPtr<IAccessible> document_accessible(GetRendererAccessible()); | 359 ScopedComPtr<IAccessible> document_accessible(GetRendererAccessible()); |
360 ASSERT_NE(document_accessible.get(), reinterpret_cast<IAccessible*>(NULL)); | 360 ASSERT_NE(document_accessible.get(), reinterpret_cast<IAccessible*>(NULL)); |
(...skipping 19 matching lines...) Expand all Loading... |
380 GURL tree_url("data:text/html,<body><input type='checkbox' /></body>"); | 380 GURL tree_url("data:text/html,<body><input type='checkbox' /></body>"); |
381 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); | 381 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); |
382 GetRendererAccessible(); | 382 GetRendererAccessible(); |
383 ui_test_utils::WaitForNotification( | 383 ui_test_utils::WaitForNotification( |
384 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 384 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
385 | 385 |
386 // Check the browser's copy of the renderer accessibility tree. | 386 // Check the browser's copy of the renderer accessibility tree. |
387 AccessibleChecker checkbox_checker(L"", ROLE_SYSTEM_CHECKBUTTON, L""); | 387 AccessibleChecker checkbox_checker(L"", ROLE_SYSTEM_CHECKBUTTON, L""); |
388 checkbox_checker.SetExpectedState( | 388 checkbox_checker.SetExpectedState( |
389 STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY); | 389 STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY); |
390 AccessibleChecker body_checker(L"", L"BODY", L""); | 390 AccessibleChecker body_checker(L"", L"body", L""); |
391 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); | 391 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); |
392 body_checker.AppendExpectedChild(&checkbox_checker); | 392 body_checker.AppendExpectedChild(&checkbox_checker); |
393 document_checker.AppendExpectedChild(&body_checker); | 393 document_checker.AppendExpectedChild(&body_checker); |
394 document_checker.CheckAccessible(GetRendererAccessible()); | 394 document_checker.CheckAccessible(GetRendererAccessible()); |
395 | 395 |
396 // Check the checkbox. | 396 // Check the checkbox. |
397 ExecuteScript(L"document.body.children[0].checked=true"); | 397 ExecuteScript(L"document.body.children[0].checked=true"); |
398 ui_test_utils::WaitForNotification( | 398 ui_test_utils::WaitForNotification( |
399 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 399 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
400 | 400 |
401 // Check that the accessibility tree of the browser has been updated. | 401 // Check that the accessibility tree of the browser has been updated. |
402 checkbox_checker.SetExpectedState( | 402 checkbox_checker.SetExpectedState( |
403 STATE_SYSTEM_CHECKED | STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY); | 403 STATE_SYSTEM_CHECKED | STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY); |
404 document_checker.CheckAccessible(GetRendererAccessible()); | 404 document_checker.CheckAccessible(GetRendererAccessible()); |
405 } | 405 } |
406 | 406 |
407 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, | 407 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, |
408 TestNotificationChildrenChanged) { | 408 TestNotificationChildrenChanged) { |
409 // The aria-help attribute causes the node to be in the accessibility tree. | 409 // The aria-help attribute causes the node to be in the accessibility tree. |
410 GURL tree_url( | 410 GURL tree_url( |
411 "data:text/html,<body aria-help='body'></body>"); | 411 "data:text/html,<body aria-help='body'></body>"); |
412 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); | 412 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); |
413 GetRendererAccessible(); | 413 GetRendererAccessible(); |
414 ui_test_utils::WaitForNotification( | 414 ui_test_utils::WaitForNotification( |
415 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 415 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
416 | 416 |
417 // Check the browser's copy of the renderer accessibility tree. | 417 // Check the browser's copy of the renderer accessibility tree. |
418 AccessibleChecker body_checker(L"", L"BODY", L""); | 418 AccessibleChecker body_checker(L"", L"body", L""); |
419 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); | 419 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); |
420 document_checker.AppendExpectedChild(&body_checker); | 420 document_checker.AppendExpectedChild(&body_checker); |
421 document_checker.CheckAccessible(GetRendererAccessible()); | 421 document_checker.CheckAccessible(GetRendererAccessible()); |
422 | 422 |
423 // Change the children of the document body. | 423 // Change the children of the document body. |
424 ExecuteScript(L"document.body.innerHTML='<b>new text</b>'"); | 424 ExecuteScript(L"document.body.innerHTML='<b>new text</b>'"); |
425 ui_test_utils::WaitForNotification( | 425 ui_test_utils::WaitForNotification( |
426 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 426 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
427 | 427 |
428 // Check that the accessibility tree of the browser has been updated. | 428 // Check that the accessibility tree of the browser has been updated. |
(...skipping 15 matching lines...) Expand all Loading... |
444 TestNotificationValueChanged) { | 444 TestNotificationValueChanged) { |
445 GURL tree_url("data:text/html,<body><input type='text' value='old value'/>" | 445 GURL tree_url("data:text/html,<body><input type='text' value='old value'/>" |
446 "</body>"); | 446 "</body>"); |
447 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); | 447 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); |
448 GetRendererAccessible(); | 448 GetRendererAccessible(); |
449 ui_test_utils::WaitForNotification( | 449 ui_test_utils::WaitForNotification( |
450 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 450 NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
451 | 451 |
452 // Check the browser's copy of the renderer accessibility tree. | 452 // Check the browser's copy of the renderer accessibility tree. |
453 AccessibleChecker static_text_checker(L"", ROLE_SYSTEM_TEXT, L"old value"); | 453 AccessibleChecker static_text_checker(L"", ROLE_SYSTEM_TEXT, L"old value"); |
454 AccessibleChecker text_field_div_checker(L"", L"DIV", L""); | 454 AccessibleChecker text_field_div_checker(L"", L"div", L""); |
455 AccessibleChecker text_field_checker(L"", ROLE_SYSTEM_TEXT, L"old value"); | 455 AccessibleChecker text_field_checker(L"", ROLE_SYSTEM_TEXT, L"old value"); |
456 text_field_checker.SetExpectedState(STATE_SYSTEM_FOCUSABLE); | 456 text_field_checker.SetExpectedState(STATE_SYSTEM_FOCUSABLE); |
457 AccessibleChecker body_checker(L"", L"BODY", L""); | 457 AccessibleChecker body_checker(L"", L"body", L""); |
458 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); | 458 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); |
459 text_field_div_checker.AppendExpectedChild(&static_text_checker); | 459 text_field_div_checker.AppendExpectedChild(&static_text_checker); |
460 text_field_checker.AppendExpectedChild(&text_field_div_checker); | 460 text_field_checker.AppendExpectedChild(&text_field_div_checker); |
461 body_checker.AppendExpectedChild(&text_field_checker); | 461 body_checker.AppendExpectedChild(&text_field_checker); |
462 document_checker.AppendExpectedChild(&body_checker); | 462 document_checker.AppendExpectedChild(&body_checker); |
463 document_checker.CheckAccessible(GetRendererAccessible()); | 463 document_checker.CheckAccessible(GetRendererAccessible()); |
464 | 464 |
465 // Set the value of the text control | 465 // Set the value of the text control |
466 ExecuteScript(L"document.body.children[0].value='new value'"); | 466 ExecuteScript(L"document.body.children[0].value='new value'"); |
467 ui_test_utils::WaitForNotification( | 467 ui_test_utils::WaitForNotification( |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
530 // If pointer comparison fails resort to the exhuasive search that can use | 530 // If pointer comparison fails resort to the exhuasive search that can use |
531 // IAccessible2::get_uniqueID for equality comparison. | 531 // IAccessible2::get_uniqueID for equality comparison. |
532 if (!found) { | 532 if (!found) { |
533 AccessibleContainsAccessible( | 533 AccessibleContainsAccessible( |
534 browser_accessible, document_accessible2, &found); | 534 browser_accessible, document_accessible2, &found); |
535 } | 535 } |
536 | 536 |
537 ASSERT_EQ(found, true); | 537 ASSERT_EQ(found, true); |
538 } | 538 } |
539 } // namespace. | 539 } // namespace. |
OLD | NEW |