| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "base/win/scoped_comptr.h" | 10 #include "base/win/scoped_comptr.h" |
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, | 384 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, |
| 385 TestNotificationActiveDescendantChanged) { | 385 TestNotificationActiveDescendantChanged) { |
| 386 GURL tree_url("data:text/html,<ul tabindex='-1' role='radiogroup'><li id='li'" | 386 GURL tree_url("data:text/html,<ul tabindex='-1' role='radiogroup'><li id='li'" |
| 387 ">li</li></ul>"); | 387 ">li</li></ul>"); |
| 388 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); | 388 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); |
| 389 GetRendererAccessible(); | 389 GetRendererAccessible(); |
| 390 ui_test_utils::WaitForNotification( | 390 ui_test_utils::WaitForNotification( |
| 391 content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 391 content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
| 392 | 392 |
| 393 // Check the browser's copy of the renderer accessibility tree. | 393 // Check the browser's copy of the renderer accessibility tree. |
| 394 AccessibleChecker list_marker_checker(L"", ROLE_SYSTEM_LISTITEM, L"\x2022"); | 394 AccessibleChecker list_marker_checker(L"", ROLE_SYSTEM_TEXT, L"\x2022"); |
| 395 AccessibleChecker static_text_checker(L"li", ROLE_SYSTEM_TEXT, L""); | 395 AccessibleChecker static_text_checker(L"li", ROLE_SYSTEM_TEXT, L""); |
| 396 AccessibleChecker list_item_checker(L"", ROLE_SYSTEM_LISTITEM, L""); | 396 AccessibleChecker list_item_checker(L"", ROLE_SYSTEM_LISTITEM, L""); |
| 397 list_item_checker.SetExpectedState( | 397 list_item_checker.SetExpectedState( |
| 398 STATE_SYSTEM_READONLY); | 398 STATE_SYSTEM_READONLY); |
| 399 AccessibleChecker radio_group_checker(L"", ROLE_SYSTEM_GROUPING, L""); | 399 AccessibleChecker radio_group_checker(L"", ROLE_SYSTEM_GROUPING, L""); |
| 400 radio_group_checker.SetExpectedState( | 400 radio_group_checker.SetExpectedState(STATE_SYSTEM_FOCUSABLE); |
| 401 STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY); | |
| 402 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); | 401 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); |
| 403 list_item_checker.AppendExpectedChild(&list_marker_checker); | 402 list_item_checker.AppendExpectedChild(&list_marker_checker); |
| 404 list_item_checker.AppendExpectedChild(&static_text_checker); | 403 list_item_checker.AppendExpectedChild(&static_text_checker); |
| 405 radio_group_checker.AppendExpectedChild(&list_item_checker); | 404 radio_group_checker.AppendExpectedChild(&list_item_checker); |
| 406 document_checker.AppendExpectedChild(&radio_group_checker); | 405 document_checker.AppendExpectedChild(&radio_group_checker); |
| 407 document_checker.CheckAccessible(GetRendererAccessible()); | 406 document_checker.CheckAccessible(GetRendererAccessible()); |
| 408 | 407 |
| 409 // Set focus to the radio group. | 408 // Set focus to the radio group. |
| 410 ExecuteScript(L"document.body.children[0].focus()"); | 409 ExecuteScript(L"document.body.children[0].focus()"); |
| 411 ui_test_utils::WaitForNotification( | 410 ui_test_utils::WaitForNotification( |
| 412 content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 411 content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
| 413 | 412 |
| 414 // Check that the accessibility tree of the browser has been updated. | 413 // Check that the accessibility tree of the browser has been updated. |
| 415 radio_group_checker.SetExpectedState( | 414 radio_group_checker.SetExpectedState( |
| 416 STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY | STATE_SYSTEM_FOCUSED); | 415 STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_FOCUSED); |
| 417 document_checker.CheckAccessible(GetRendererAccessible()); | 416 document_checker.CheckAccessible(GetRendererAccessible()); |
| 418 | 417 |
| 419 // Set the active descendant of the radio group | 418 // Set the active descendant of the radio group |
| 420 ExecuteScript( | 419 ExecuteScript( |
| 421 L"document.body.children[0].setAttribute('aria-activedescendant', 'li')"); | 420 L"document.body.children[0].setAttribute('aria-activedescendant', 'li')"); |
| 422 ui_test_utils::WaitForNotification( | 421 ui_test_utils::WaitForNotification( |
| 423 content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 422 content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
| 424 | 423 |
| 425 // Check that the accessibility tree of the browser has been updated. | 424 // Check that the accessibility tree of the browser has been updated. |
| 426 list_item_checker.SetExpectedState( | 425 list_item_checker.SetExpectedState( |
| 427 STATE_SYSTEM_READONLY | STATE_SYSTEM_FOCUSED); | 426 STATE_SYSTEM_READONLY | STATE_SYSTEM_FOCUSED); |
| 428 radio_group_checker.SetExpectedState( | 427 radio_group_checker.SetExpectedState(STATE_SYSTEM_FOCUSABLE); |
| 429 STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY); | |
| 430 document_checker.CheckAccessible(GetRendererAccessible()); | 428 document_checker.CheckAccessible(GetRendererAccessible()); |
| 431 } | 429 } |
| 432 | 430 |
| 433 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, | 431 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, |
| 434 TestNotificationCheckedStateChanged) { | 432 TestNotificationCheckedStateChanged) { |
| 435 GURL tree_url("data:text/html,<body><input type='checkbox' /></body>"); | 433 GURL tree_url("data:text/html,<body><input type='checkbox' /></body>"); |
| 436 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); | 434 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); |
| 437 GetRendererAccessible(); | 435 GetRendererAccessible(); |
| 438 ui_test_utils::WaitForNotification( | 436 ui_test_utils::WaitForNotification( |
| 439 content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 437 content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
| 440 | 438 |
| 441 // Check the browser's copy of the renderer accessibility tree. | 439 // Check the browser's copy of the renderer accessibility tree. |
| 442 AccessibleChecker checkbox_checker(L"", ROLE_SYSTEM_CHECKBUTTON, L""); | 440 AccessibleChecker checkbox_checker(L"", ROLE_SYSTEM_CHECKBUTTON, L""); |
| 443 checkbox_checker.SetExpectedState( | 441 checkbox_checker.SetExpectedState(STATE_SYSTEM_FOCUSABLE); |
| 444 STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY); | |
| 445 AccessibleChecker body_checker(L"", L"body", L""); | 442 AccessibleChecker body_checker(L"", L"body", L""); |
| 446 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); | 443 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); |
| 447 body_checker.AppendExpectedChild(&checkbox_checker); | 444 body_checker.AppendExpectedChild(&checkbox_checker); |
| 448 document_checker.AppendExpectedChild(&body_checker); | 445 document_checker.AppendExpectedChild(&body_checker); |
| 449 document_checker.CheckAccessible(GetRendererAccessible()); | 446 document_checker.CheckAccessible(GetRendererAccessible()); |
| 450 | 447 |
| 451 // Check the checkbox. | 448 // Check the checkbox. |
| 452 ExecuteScript(L"document.body.children[0].checked=true"); | 449 ExecuteScript(L"document.body.children[0].checked=true"); |
| 453 ui_test_utils::WaitForNotification( | 450 ui_test_utils::WaitForNotification( |
| 454 content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); | 451 content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED); |
| 455 | 452 |
| 456 // Check that the accessibility tree of the browser has been updated. | 453 // Check that the accessibility tree of the browser has been updated. |
| 457 checkbox_checker.SetExpectedState( | 454 checkbox_checker.SetExpectedState( |
| 458 STATE_SYSTEM_CHECKED | STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY); | 455 STATE_SYSTEM_CHECKED | STATE_SYSTEM_FOCUSABLE); |
| 459 document_checker.CheckAccessible(GetRendererAccessible()); | 456 document_checker.CheckAccessible(GetRendererAccessible()); |
| 460 } | 457 } |
| 461 | 458 |
| 462 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, | 459 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, |
| 463 TestNotificationChildrenChanged) { | 460 TestNotificationChildrenChanged) { |
| 464 // The role attribute causes the node to be in the accessibility tree. | 461 // The role attribute causes the node to be in the accessibility tree. |
| 465 GURL tree_url( | 462 GURL tree_url( |
| 466 "data:text/html,<body role=group></body>"); | 463 "data:text/html,<body role=group></body>"); |
| 467 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); | 464 browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED); |
| 468 GetRendererAccessible(); | 465 GetRendererAccessible(); |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 677 ASSERT_EQ(S_OK, hr); | 674 ASSERT_EQ(S_OK, hr); |
| 678 hr = checkbox_isimpledomnode->get_nodeInfo( | 675 hr = checkbox_isimpledomnode->get_nodeInfo( |
| 679 &node_name, &name_space_id, &node_value, &num_children, &unique_id, | 676 &node_name, &name_space_id, &node_value, &num_children, &unique_id, |
| 680 &node_type); | 677 &node_type); |
| 681 ASSERT_EQ(S_OK, hr); | 678 ASSERT_EQ(S_OK, hr); |
| 682 EXPECT_STREQ(L"input", wstring(node_name, SysStringLen(node_name)).c_str()); | 679 EXPECT_STREQ(L"input", wstring(node_name, SysStringLen(node_name)).c_str()); |
| 683 EXPECT_EQ(NODETYPE_ELEMENT, node_type); | 680 EXPECT_EQ(NODETYPE_ELEMENT, node_type); |
| 684 EXPECT_EQ(0, num_children); | 681 EXPECT_EQ(0, num_children); |
| 685 } | 682 } |
| 686 } // namespace. | 683 } // namespace. |
| OLD | NEW |