OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/strings/string16.h" | 5 #include "base/strings/string16.h" |
6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" |
7 #include "content/browser/accessibility/browser_accessibility.h" | 7 #include "content/browser/accessibility/browser_accessibility.h" |
8 #include "content/browser/accessibility/browser_accessibility_manager.h" | 8 #include "content/browser/accessibility/browser_accessibility_manager.h" |
9 #if defined(OS_WIN) | 9 #if defined(OS_WIN) |
10 #include "content/browser/accessibility/browser_accessibility_win.h" | 10 #include "content/browser/accessibility/browser_accessibility_win.h" |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 } | 88 } |
89 virtual void AccessibilityHitTest(const gfx::Point& point) override {} | 89 virtual void AccessibilityHitTest(const gfx::Point& point) override {} |
90 virtual void AccessibilityFatalError() override { | 90 virtual void AccessibilityFatalError() override { |
91 got_fatal_error_ = true; | 91 got_fatal_error_ = true; |
92 } | 92 } |
93 virtual gfx::AcceleratedWidget AccessibilityGetAcceleratedWidget() override { | 93 virtual gfx::AcceleratedWidget AccessibilityGetAcceleratedWidget() override { |
94 return gfx::kNullAcceleratedWidget; | 94 return gfx::kNullAcceleratedWidget; |
95 } | 95 } |
96 virtual gfx::NativeViewAccessible AccessibilityGetNativeViewAccessible() | 96 virtual gfx::NativeViewAccessible AccessibilityGetNativeViewAccessible() |
97 override { | 97 override { |
98 return NULL; | 98 return nullptr; |
99 } | 99 } |
100 virtual BrowserAccessibilityManager* AccessibilityGetChildFrame( | 100 virtual BrowserAccessibilityManager* AccessibilityGetChildFrame( |
101 int accessibility_node_id) override { | 101 int accessibility_node_id) override { |
102 return NULL; | 102 return nullptr; |
103 } | 103 } |
104 virtual BrowserAccessibility* AccessibilityGetParentFrame() override { | 104 virtual BrowserAccessibility* AccessibilityGetParentFrame() override { |
105 return NULL; | 105 return nullptr; |
106 } | 106 } |
107 | 107 |
108 bool got_fatal_error() const { return got_fatal_error_; } | 108 bool got_fatal_error() const { return got_fatal_error_; } |
109 void reset_got_fatal_error() { got_fatal_error_ = false; } | 109 void reset_got_fatal_error() { got_fatal_error_ = false; } |
110 | 110 |
111 private: | 111 private: |
112 bool got_fatal_error_; | 112 bool got_fatal_error_; |
113 }; | 113 }; |
114 | 114 |
115 } // anonymous namespace | 115 } // anonymous namespace |
(...skipping 23 matching lines...) Expand all Loading... |
139 root.child_ids.push_back(3); | 139 root.child_ids.push_back(3); |
140 | 140 |
141 // Construct a BrowserAccessibilityManager with this | 141 // Construct a BrowserAccessibilityManager with this |
142 // ui::AXNodeData tree and a factory for an instance-counting | 142 // ui::AXNodeData tree and a factory for an instance-counting |
143 // BrowserAccessibility, and ensure that exactly 3 instances were | 143 // BrowserAccessibility, and ensure that exactly 3 instances were |
144 // created. Note that the manager takes ownership of the factory. | 144 // created. Note that the manager takes ownership of the factory. |
145 CountedBrowserAccessibility::global_obj_count_ = 0; | 145 CountedBrowserAccessibility::global_obj_count_ = 0; |
146 BrowserAccessibilityManager* manager = | 146 BrowserAccessibilityManager* manager = |
147 BrowserAccessibilityManager::Create( | 147 BrowserAccessibilityManager::Create( |
148 MakeAXTreeUpdate(root, button, checkbox), | 148 MakeAXTreeUpdate(root, button, checkbox), |
149 NULL, | 149 nullptr, |
150 new CountedBrowserAccessibilityFactory()); | 150 new CountedBrowserAccessibilityFactory()); |
151 | 151 |
152 ASSERT_EQ(3, CountedBrowserAccessibility::global_obj_count_); | 152 ASSERT_EQ(3, CountedBrowserAccessibility::global_obj_count_); |
153 | 153 |
154 // Delete the manager and test that all 3 instances are deleted. | 154 // Delete the manager and test that all 3 instances are deleted. |
155 delete manager; | 155 delete manager; |
156 ASSERT_EQ(0, CountedBrowserAccessibility::global_obj_count_); | 156 ASSERT_EQ(0, CountedBrowserAccessibility::global_obj_count_); |
157 | 157 |
158 // Construct a manager again, and this time save references to two of | 158 // Construct a manager again, and this time save references to two of |
159 // the three nodes in the tree. | 159 // the three nodes in the tree. |
160 manager = | 160 manager = |
161 BrowserAccessibilityManager::Create( | 161 BrowserAccessibilityManager::Create( |
162 MakeAXTreeUpdate(root, button, checkbox), | 162 MakeAXTreeUpdate(root, button, checkbox), |
163 NULL, | 163 nullptr, |
164 new CountedBrowserAccessibilityFactory()); | 164 new CountedBrowserAccessibilityFactory()); |
165 ASSERT_EQ(3, CountedBrowserAccessibility::global_obj_count_); | 165 ASSERT_EQ(3, CountedBrowserAccessibility::global_obj_count_); |
166 | 166 |
167 CountedBrowserAccessibility* root_accessible = | 167 CountedBrowserAccessibility* root_accessible = |
168 static_cast<CountedBrowserAccessibility*>(manager->GetRoot()); | 168 static_cast<CountedBrowserAccessibility*>(manager->GetRoot()); |
169 root_accessible->NativeAddReference(); | 169 root_accessible->NativeAddReference(); |
170 CountedBrowserAccessibility* child1_accessible = | 170 CountedBrowserAccessibility* child1_accessible = |
171 static_cast<CountedBrowserAccessibility*>( | 171 static_cast<CountedBrowserAccessibility*>( |
172 root_accessible->PlatformGetChild(1)); | 172 root_accessible->PlatformGetChild(1)); |
173 child1_accessible->NativeAddReference(); | 173 child1_accessible->NativeAddReference(); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 tree2_root.child_ids.push_back(5); | 244 tree2_root.child_ids.push_back(5); |
245 tree2_root.child_ids.push_back(2); | 245 tree2_root.child_ids.push_back(2); |
246 tree2_root.child_ids.push_back(3); | 246 tree2_root.child_ids.push_back(3); |
247 | 247 |
248 // Construct a BrowserAccessibilityManager with tree1. | 248 // Construct a BrowserAccessibilityManager with tree1. |
249 CountedBrowserAccessibility::global_obj_count_ = 0; | 249 CountedBrowserAccessibility::global_obj_count_ = 0; |
250 BrowserAccessibilityManager* manager = | 250 BrowserAccessibilityManager* manager = |
251 BrowserAccessibilityManager::Create( | 251 BrowserAccessibilityManager::Create( |
252 MakeAXTreeUpdate(tree1_root, | 252 MakeAXTreeUpdate(tree1_root, |
253 tree1_child1, tree1_child2, tree1_child3), | 253 tree1_child1, tree1_child2, tree1_child3), |
254 NULL, | 254 nullptr, |
255 new CountedBrowserAccessibilityFactory()); | 255 new CountedBrowserAccessibilityFactory()); |
256 ASSERT_EQ(4, CountedBrowserAccessibility::global_obj_count_); | 256 ASSERT_EQ(4, CountedBrowserAccessibility::global_obj_count_); |
257 | 257 |
258 // Save references to all of the objects. | 258 // Save references to all of the objects. |
259 CountedBrowserAccessibility* root_accessible = | 259 CountedBrowserAccessibility* root_accessible = |
260 static_cast<CountedBrowserAccessibility*>(manager->GetRoot()); | 260 static_cast<CountedBrowserAccessibility*>(manager->GetRoot()); |
261 root_accessible->NativeAddReference(); | 261 root_accessible->NativeAddReference(); |
262 CountedBrowserAccessibility* child1_accessible = | 262 CountedBrowserAccessibility* child1_accessible = |
263 static_cast<CountedBrowserAccessibility*>( | 263 static_cast<CountedBrowserAccessibility*>( |
264 root_accessible->PlatformGetChild(0)); | 264 root_accessible->PlatformGetChild(0)); |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 tree2_container.child_ids.push_back(5); | 420 tree2_container.child_ids.push_back(5); |
421 | 421 |
422 // Construct a BrowserAccessibilityManager with tree1. | 422 // Construct a BrowserAccessibilityManager with tree1. |
423 CountedBrowserAccessibility::global_obj_count_ = 0; | 423 CountedBrowserAccessibility::global_obj_count_ = 0; |
424 BrowserAccessibilityManager* manager = | 424 BrowserAccessibilityManager* manager = |
425 BrowserAccessibilityManager::Create( | 425 BrowserAccessibilityManager::Create( |
426 MakeAXTreeUpdate(tree1_root, tree1_container, | 426 MakeAXTreeUpdate(tree1_root, tree1_container, |
427 tree1_child1, tree1_grandchild1, | 427 tree1_child1, tree1_grandchild1, |
428 tree1_child2, tree1_grandchild2, | 428 tree1_child2, tree1_grandchild2, |
429 tree1_child3, tree1_grandchild3), | 429 tree1_child3, tree1_grandchild3), |
430 NULL, | 430 nullptr, |
431 new CountedBrowserAccessibilityFactory()); | 431 new CountedBrowserAccessibilityFactory()); |
432 ASSERT_EQ(8, CountedBrowserAccessibility::global_obj_count_); | 432 ASSERT_EQ(8, CountedBrowserAccessibility::global_obj_count_); |
433 | 433 |
434 // Save references to some objects. | 434 // Save references to some objects. |
435 CountedBrowserAccessibility* root_accessible = | 435 CountedBrowserAccessibility* root_accessible = |
436 static_cast<CountedBrowserAccessibility*>(manager->GetRoot()); | 436 static_cast<CountedBrowserAccessibility*>(manager->GetRoot()); |
437 root_accessible->NativeAddReference(); | 437 root_accessible->NativeAddReference(); |
438 CountedBrowserAccessibility* container_accessible = | 438 CountedBrowserAccessibility* container_accessible = |
439 static_cast<CountedBrowserAccessibility*>( | 439 static_cast<CountedBrowserAccessibility*>( |
440 root_accessible->PlatformGetChild(0)); | 440 root_accessible->PlatformGetChild(0)); |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
548 tree2_1.id = 1; | 548 tree2_1.id = 1; |
549 tree2_1.state = 0; | 549 tree2_1.state = 0; |
550 tree2_1.child_ids.push_back(4); | 550 tree2_1.child_ids.push_back(4); |
551 tree2_1.child_ids.push_back(5); | 551 tree2_1.child_ids.push_back(5); |
552 | 552 |
553 // Construct a BrowserAccessibilityManager with tree1. | 553 // Construct a BrowserAccessibilityManager with tree1. |
554 CountedBrowserAccessibility::global_obj_count_ = 0; | 554 CountedBrowserAccessibility::global_obj_count_ = 0; |
555 BrowserAccessibilityManager* manager = | 555 BrowserAccessibilityManager* manager = |
556 BrowserAccessibilityManager::Create( | 556 BrowserAccessibilityManager::Create( |
557 MakeAXTreeUpdate(tree1_1, tree1_2, tree1_3, tree1_4), | 557 MakeAXTreeUpdate(tree1_1, tree1_2, tree1_3, tree1_4), |
558 NULL, | 558 nullptr, |
559 new CountedBrowserAccessibilityFactory()); | 559 new CountedBrowserAccessibilityFactory()); |
560 ASSERT_EQ(4, CountedBrowserAccessibility::global_obj_count_); | 560 ASSERT_EQ(4, CountedBrowserAccessibility::global_obj_count_); |
561 | 561 |
562 // Process a notification containing the changed subtree. | 562 // Process a notification containing the changed subtree. |
563 std::vector<AccessibilityHostMsg_EventParams> params; | 563 std::vector<AccessibilityHostMsg_EventParams> params; |
564 params.push_back(AccessibilityHostMsg_EventParams()); | 564 params.push_back(AccessibilityHostMsg_EventParams()); |
565 AccessibilityHostMsg_EventParams* msg = ¶ms[0]; | 565 AccessibilityHostMsg_EventParams* msg = ¶ms[0]; |
566 msg->event_type = ui::AX_EVENT_CHILDREN_CHANGED; | 566 msg->event_type = ui::AX_EVENT_CHILDREN_CHANGED; |
567 msg->update.nodes.push_back(tree2_1); | 567 msg->update.nodes.push_back(tree2_1); |
568 msg->update.nodes.push_back(tree2_4); | 568 msg->update.nodes.push_back(tree2_4); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
682 character_offsets2.push_back(20); | 682 character_offsets2.push_back(20); |
683 character_offsets2.push_back(25); | 683 character_offsets2.push_back(25); |
684 character_offsets2.push_back(28); | 684 character_offsets2.push_back(28); |
685 inline_text2.AddIntListAttribute( | 685 inline_text2.AddIntListAttribute( |
686 ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets2); | 686 ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets2); |
687 static_text.child_ids.push_back(4); | 687 static_text.child_ids.push_back(4); |
688 | 688 |
689 scoped_ptr<BrowserAccessibilityManager> manager( | 689 scoped_ptr<BrowserAccessibilityManager> manager( |
690 BrowserAccessibilityManager::Create( | 690 BrowserAccessibilityManager::Create( |
691 MakeAXTreeUpdate(root, static_text, inline_text1, inline_text2), | 691 MakeAXTreeUpdate(root, static_text, inline_text1, inline_text2), |
692 NULL, | 692 nullptr, |
693 new CountedBrowserAccessibilityFactory())); | 693 new CountedBrowserAccessibilityFactory())); |
694 | 694 |
695 BrowserAccessibility* root_accessible = manager->GetRoot(); | 695 BrowserAccessibility* root_accessible = manager->GetRoot(); |
696 BrowserAccessibility* static_text_accessible = | 696 BrowserAccessibility* static_text_accessible = |
697 root_accessible->PlatformGetChild(0); | 697 root_accessible->PlatformGetChild(0); |
698 | 698 |
699 EXPECT_EQ(gfx::Rect(100, 100, 6, 9).ToString(), | 699 EXPECT_EQ(gfx::Rect(100, 100, 6, 9).ToString(), |
700 static_text_accessible->GetLocalBoundsForRange(0, 1).ToString()); | 700 static_text_accessible->GetLocalBoundsForRange(0, 1).ToString()); |
701 | 701 |
702 EXPECT_EQ(gfx::Rect(100, 100, 26, 9).ToString(), | 702 EXPECT_EQ(gfx::Rect(100, 100, 26, 9).ToString(), |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
770 character_offsets2.push_back(10); | 770 character_offsets2.push_back(10); |
771 character_offsets2.push_back(20); | 771 character_offsets2.push_back(20); |
772 character_offsets2.push_back(30); | 772 character_offsets2.push_back(30); |
773 inline_text2.AddIntListAttribute( | 773 inline_text2.AddIntListAttribute( |
774 ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets2); | 774 ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets2); |
775 static_text.child_ids.push_back(4); | 775 static_text.child_ids.push_back(4); |
776 | 776 |
777 scoped_ptr<BrowserAccessibilityManager> manager( | 777 scoped_ptr<BrowserAccessibilityManager> manager( |
778 BrowserAccessibilityManager::Create( | 778 BrowserAccessibilityManager::Create( |
779 MakeAXTreeUpdate(root, static_text, inline_text1, inline_text2), | 779 MakeAXTreeUpdate(root, static_text, inline_text1, inline_text2), |
780 NULL, | 780 nullptr, |
781 new CountedBrowserAccessibilityFactory())); | 781 new CountedBrowserAccessibilityFactory())); |
782 | 782 |
783 BrowserAccessibility* root_accessible = manager->GetRoot(); | 783 BrowserAccessibility* root_accessible = manager->GetRoot(); |
784 BrowserAccessibility* static_text_accessible = | 784 BrowserAccessibility* static_text_accessible = |
785 root_accessible->PlatformGetChild(0); | 785 root_accessible->PlatformGetChild(0); |
786 | 786 |
787 EXPECT_EQ(gfx::Rect(100, 100, 60, 20).ToString(), | 787 EXPECT_EQ(gfx::Rect(100, 100, 60, 20).ToString(), |
788 static_text_accessible->GetLocalBoundsForRange(0, 6).ToString()); | 788 static_text_accessible->GetLocalBoundsForRange(0, 6).ToString()); |
789 | 789 |
790 EXPECT_EQ(gfx::Rect(100, 100, 10, 20).ToString(), | 790 EXPECT_EQ(gfx::Rect(100, 100, 10, 20).ToString(), |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
868 character_offsets2.push_back(20); // 0 | 868 character_offsets2.push_back(20); // 0 |
869 character_offsets2.push_back(40); // 1 | 869 character_offsets2.push_back(40); // 1 |
870 inline_text2.AddIntListAttribute( | 870 inline_text2.AddIntListAttribute( |
871 ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets2); | 871 ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets2); |
872 | 872 |
873 scoped_ptr<BrowserAccessibilityManager> manager( | 873 scoped_ptr<BrowserAccessibilityManager> manager( |
874 BrowserAccessibilityManager::Create( | 874 BrowserAccessibilityManager::Create( |
875 MakeAXTreeUpdate( | 875 MakeAXTreeUpdate( |
876 root, div, static_text1, img, | 876 root, div, static_text1, img, |
877 static_text2, inline_text1, inline_text2), | 877 static_text2, inline_text1, inline_text2), |
878 NULL, | 878 nullptr, |
879 new CountedBrowserAccessibilityFactory())); | 879 new CountedBrowserAccessibilityFactory())); |
880 BrowserAccessibility* root_accessible = manager->GetRoot(); | 880 BrowserAccessibility* root_accessible = manager->GetRoot(); |
881 | 881 |
882 EXPECT_EQ(gfx::Rect(100, 100, 20, 20).ToString(), | 882 EXPECT_EQ(gfx::Rect(100, 100, 20, 20).ToString(), |
883 root_accessible->GetLocalBoundsForRange(0, 1).ToString()); | 883 root_accessible->GetLocalBoundsForRange(0, 1).ToString()); |
884 | 884 |
885 EXPECT_EQ(gfx::Rect(100, 100, 40, 20).ToString(), | 885 EXPECT_EQ(gfx::Rect(100, 100, 40, 20).ToString(), |
886 root_accessible->GetLocalBoundsForRange(0, 2).ToString()); | 886 root_accessible->GetLocalBoundsForRange(0, 2).ToString()); |
887 | 887 |
888 EXPECT_EQ(gfx::Rect(100, 100, 80, 20).ToString(), | 888 EXPECT_EQ(gfx::Rect(100, 100, 80, 20).ToString(), |
(...skipping 26 matching lines...) Expand all Loading... |
915 node4.id = 4; | 915 node4.id = 4; |
916 node3.child_ids.push_back(4); | 916 node3.child_ids.push_back(4); |
917 | 917 |
918 ui::AXNodeData node5; | 918 ui::AXNodeData node5; |
919 node5.id = 5; | 919 node5.id = 5; |
920 root.child_ids.push_back(5); | 920 root.child_ids.push_back(5); |
921 | 921 |
922 scoped_ptr<BrowserAccessibilityManager> manager( | 922 scoped_ptr<BrowserAccessibilityManager> manager( |
923 BrowserAccessibilityManager::Create( | 923 BrowserAccessibilityManager::Create( |
924 MakeAXTreeUpdate(root, node2, node3, node4, node5), | 924 MakeAXTreeUpdate(root, node2, node3, node4, node5), |
925 NULL, | 925 nullptr, |
926 new CountedBrowserAccessibilityFactory())); | 926 new CountedBrowserAccessibilityFactory())); |
927 | 927 |
928 BrowserAccessibility* root_accessible = manager->GetRoot(); | 928 BrowserAccessibility* root_accessible = manager->GetRoot(); |
929 BrowserAccessibility* node2_accessible = root_accessible->PlatformGetChild(0); | 929 BrowserAccessibility* node2_accessible = root_accessible->PlatformGetChild(0); |
930 BrowserAccessibility* node3_accessible = root_accessible->PlatformGetChild(1); | 930 BrowserAccessibility* node3_accessible = root_accessible->PlatformGetChild(1); |
931 BrowserAccessibility* node4_accessible = | 931 BrowserAccessibility* node4_accessible = |
932 node3_accessible->PlatformGetChild(0); | 932 node3_accessible->PlatformGetChild(0); |
933 BrowserAccessibility* node5_accessible = root_accessible->PlatformGetChild(2); | 933 BrowserAccessibility* node5_accessible = root_accessible->PlatformGetChild(2); |
934 | 934 |
935 ASSERT_EQ(NULL, manager->NextInTreeOrder(NULL)); | 935 ASSERT_EQ(nullptr, manager->NextInTreeOrder(nullptr)); |
936 ASSERT_EQ(node2_accessible, manager->NextInTreeOrder(root_accessible)); | 936 ASSERT_EQ(node2_accessible, manager->NextInTreeOrder(root_accessible)); |
937 ASSERT_EQ(node3_accessible, manager->NextInTreeOrder(node2_accessible)); | 937 ASSERT_EQ(node3_accessible, manager->NextInTreeOrder(node2_accessible)); |
938 ASSERT_EQ(node4_accessible, manager->NextInTreeOrder(node3_accessible)); | 938 ASSERT_EQ(node4_accessible, manager->NextInTreeOrder(node3_accessible)); |
939 ASSERT_EQ(node5_accessible, manager->NextInTreeOrder(node4_accessible)); | 939 ASSERT_EQ(node5_accessible, manager->NextInTreeOrder(node4_accessible)); |
940 ASSERT_EQ(NULL, manager->NextInTreeOrder(node5_accessible)); | 940 ASSERT_EQ(nullptr, manager->NextInTreeOrder(node5_accessible)); |
941 | 941 |
942 ASSERT_EQ(NULL, manager->PreviousInTreeOrder(NULL)); | 942 ASSERT_EQ(nullptr, manager->PreviousInTreeOrder(nullptr)); |
943 ASSERT_EQ(node4_accessible, manager->PreviousInTreeOrder(node5_accessible)); | 943 ASSERT_EQ(node4_accessible, manager->PreviousInTreeOrder(node5_accessible)); |
944 ASSERT_EQ(node3_accessible, manager->PreviousInTreeOrder(node4_accessible)); | 944 ASSERT_EQ(node3_accessible, manager->PreviousInTreeOrder(node4_accessible)); |
945 ASSERT_EQ(node2_accessible, manager->PreviousInTreeOrder(node3_accessible)); | 945 ASSERT_EQ(node2_accessible, manager->PreviousInTreeOrder(node3_accessible)); |
946 ASSERT_EQ(root_accessible, manager->PreviousInTreeOrder(node2_accessible)); | 946 ASSERT_EQ(root_accessible, manager->PreviousInTreeOrder(node2_accessible)); |
947 } | 947 } |
948 | 948 |
949 } // namespace content | 949 } // namespace content |
OLD | NEW |