Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Side by Side Diff: content/browser/accessibility/browser_accessibility_win_unittest.cc

Issue 1874893002: Convert //content/browser from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "content/browser/accessibility/browser_accessibility_win.h"
6
5 #include <stdint.h> 7 #include <stdint.h>
6 8
9 #include <memory>
10
7 #include "base/macros.h" 11 #include "base/macros.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
10 #include "base/win/scoped_bstr.h" 13 #include "base/win/scoped_bstr.h"
11 #include "base/win/scoped_comptr.h" 14 #include "base/win/scoped_comptr.h"
12 #include "base/win/scoped_variant.h" 15 #include "base/win/scoped_variant.h"
13 #include "content/browser/accessibility/browser_accessibility_manager.h" 16 #include "content/browser/accessibility/browser_accessibility_manager.h"
14 #include "content/browser/accessibility/browser_accessibility_manager_win.h" 17 #include "content/browser/accessibility/browser_accessibility_manager_win.h"
15 #include "content/browser/accessibility/browser_accessibility_state_impl.h" 18 #include "content/browser/accessibility/browser_accessibility_state_impl.h"
16 #include "content/browser/accessibility/browser_accessibility_win.h"
17 #include "content/browser/renderer_host/legacy_render_widget_host_win.h" 19 #include "content/browser/renderer_host/legacy_render_widget_host_win.h"
18 #include "content/common/accessibility_messages.h" 20 #include "content/common/accessibility_messages.h"
19 #include "content/public/test/test_browser_thread_bundle.h" 21 #include "content/public/test/test_browser_thread_bundle.h"
20 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
21 #include "ui/base/win/atl_module.h" 23 #include "ui/base/win/atl_module.h"
22 24
23 namespace content { 25 namespace content {
24 namespace { 26 namespace {
25 27
26 28
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 root.role = ui::AX_ROLE_ROOT_WEB_AREA; 140 root.role = ui::AX_ROLE_ROOT_WEB_AREA;
139 root.state = 0; 141 root.state = 0;
140 root.child_ids.push_back(2); 142 root.child_ids.push_back(2);
141 root.child_ids.push_back(3); 143 root.child_ids.push_back(3);
142 144
143 // Construct a BrowserAccessibilityManager with this 145 // Construct a BrowserAccessibilityManager with this
144 // ui::AXNodeData tree and a factory for an instance-counting 146 // ui::AXNodeData tree and a factory for an instance-counting
145 // BrowserAccessibility, and ensure that exactly 3 instances were 147 // BrowserAccessibility, and ensure that exactly 3 instances were
146 // created. Note that the manager takes ownership of the factory. 148 // created. Note that the manager takes ownership of the factory.
147 CountedBrowserAccessibility::reset(); 149 CountedBrowserAccessibility::reset();
148 scoped_ptr<BrowserAccessibilityManager> manager( 150 std::unique_ptr<BrowserAccessibilityManager> manager(
149 BrowserAccessibilityManager::Create( 151 BrowserAccessibilityManager::Create(
150 MakeAXTreeUpdate(root, button, checkbox), 152 MakeAXTreeUpdate(root, button, checkbox), NULL,
151 NULL, new CountedBrowserAccessibilityFactory())); 153 new CountedBrowserAccessibilityFactory()));
152 ASSERT_EQ(3, CountedBrowserAccessibility::num_instances()); 154 ASSERT_EQ(3, CountedBrowserAccessibility::num_instances());
153 155
154 // Delete the manager and test that all 3 instances are deleted. 156 // Delete the manager and test that all 3 instances are deleted.
155 manager.reset(); 157 manager.reset();
156 ASSERT_EQ(0, CountedBrowserAccessibility::num_instances()); 158 ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
157 159
158 // Construct a manager again, and this time use the IAccessible interface 160 // Construct a manager again, and this time use the IAccessible interface
159 // to get new references to two of the three nodes in the tree. 161 // to get new references to two of the three nodes in the tree.
160 manager.reset(BrowserAccessibilityManager::Create( 162 manager.reset(BrowserAccessibilityManager::Create(
161 MakeAXTreeUpdate(root, button, checkbox), 163 MakeAXTreeUpdate(root, button, checkbox),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 root.id = 1; 200 root.id = 1;
199 root.SetName("Document"); 201 root.SetName("Document");
200 root.role = ui::AX_ROLE_ROOT_WEB_AREA; 202 root.role = ui::AX_ROLE_ROOT_WEB_AREA;
201 root.state = 0; 203 root.state = 0;
202 root.child_ids.push_back(2); 204 root.child_ids.push_back(2);
203 205
204 // Construct a BrowserAccessibilityManager with this 206 // Construct a BrowserAccessibilityManager with this
205 // ui::AXNodeData tree and a factory for an instance-counting 207 // ui::AXNodeData tree and a factory for an instance-counting
206 // BrowserAccessibility. 208 // BrowserAccessibility.
207 CountedBrowserAccessibility::reset(); 209 CountedBrowserAccessibility::reset();
208 scoped_ptr<BrowserAccessibilityManager> manager( 210 std::unique_ptr<BrowserAccessibilityManager> manager(
209 BrowserAccessibilityManager::Create( 211 BrowserAccessibilityManager::Create(
210 MakeAXTreeUpdate(root, text), 212 MakeAXTreeUpdate(root, text), NULL,
211 NULL, new CountedBrowserAccessibilityFactory())); 213 new CountedBrowserAccessibilityFactory()));
212 214
213 // Query for the text IAccessible and verify that it returns "old text" as its 215 // Query for the text IAccessible and verify that it returns "old text" as its
214 // value. 216 // value.
215 base::win::ScopedVariant one(1); 217 base::win::ScopedVariant one(1);
216 base::win::ScopedComPtr<IDispatch> text_dispatch; 218 base::win::ScopedComPtr<IDispatch> text_dispatch;
217 HRESULT hr = ToBrowserAccessibilityWin(manager->GetRoot())->get_accChild( 219 HRESULT hr = ToBrowserAccessibilityWin(manager->GetRoot())->get_accChild(
218 one, text_dispatch.Receive()); 220 one, text_dispatch.Receive());
219 ASSERT_EQ(S_OK, hr); 221 ASSERT_EQ(S_OK, hr);
220 222
221 base::win::ScopedComPtr<IAccessible> text_accessible; 223 base::win::ScopedComPtr<IAccessible> text_accessible;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 root.id = 1; 296 root.id = 1;
295 root.role = ui::AX_ROLE_ROOT_WEB_AREA; 297 root.role = ui::AX_ROLE_ROOT_WEB_AREA;
296 root.state = 0; 298 root.state = 0;
297 root.child_ids.push_back(2); 299 root.child_ids.push_back(2);
298 300
299 // Construct a BrowserAccessibilityManager with this 301 // Construct a BrowserAccessibilityManager with this
300 // ui::AXNodeData tree and a factory for an instance-counting 302 // ui::AXNodeData tree and a factory for an instance-counting
301 // BrowserAccessibility and ensure that exactly 4 instances were 303 // BrowserAccessibility and ensure that exactly 4 instances were
302 // created. Note that the manager takes ownership of the factory. 304 // created. Note that the manager takes ownership of the factory.
303 CountedBrowserAccessibility::reset(); 305 CountedBrowserAccessibility::reset();
304 scoped_ptr<BrowserAccessibilityManager> manager( 306 std::unique_ptr<BrowserAccessibilityManager> manager(
305 BrowserAccessibilityManager::Create( 307 BrowserAccessibilityManager::Create(
306 MakeAXTreeUpdate(root, div, text3, text4), 308 MakeAXTreeUpdate(root, div, text3, text4), NULL,
307 NULL, new CountedBrowserAccessibilityFactory())); 309 new CountedBrowserAccessibilityFactory()));
308 ASSERT_EQ(4, CountedBrowserAccessibility::num_instances()); 310 ASSERT_EQ(4, CountedBrowserAccessibility::num_instances());
309 311
310 // Notify the BrowserAccessibilityManager that the div node and its children 312 // Notify the BrowserAccessibilityManager that the div node and its children
311 // were removed and ensure that only one BrowserAccessibility instance exists. 313 // were removed and ensure that only one BrowserAccessibility instance exists.
312 root.child_ids.clear(); 314 root.child_ids.clear();
313 AXEventNotificationDetails param; 315 AXEventNotificationDetails param;
314 param.event_type = ui::AX_EVENT_CHILDREN_CHANGED; 316 param.event_type = ui::AX_EVENT_CHILDREN_CHANGED;
315 param.update.nodes.push_back(root); 317 param.update.nodes.push_back(root);
316 param.id = root.id; 318 param.id = root.id;
317 std::vector<AXEventNotificationDetails> events; 319 std::vector<AXEventNotificationDetails> events;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 inline_box2.role = ui::AX_ROLE_INLINE_TEXT_BOX; 382 inline_box2.role = ui::AX_ROLE_INLINE_TEXT_BOX;
381 inline_box2.AddStringAttribute(ui::AX_ATTR_NAME, line2); 383 inline_box2.AddStringAttribute(ui::AX_ATTR_NAME, line2);
382 std::vector<int32_t> word_start_offsets2; 384 std::vector<int32_t> word_start_offsets2;
383 word_start_offsets2.push_back(0); 385 word_start_offsets2.push_back(0);
384 word_start_offsets2.push_back(5); 386 word_start_offsets2.push_back(5);
385 word_start_offsets2.push_back(10); 387 word_start_offsets2.push_back(10);
386 inline_box2.AddIntListAttribute( 388 inline_box2.AddIntListAttribute(
387 ui::AX_ATTR_WORD_STARTS, word_start_offsets2); 389 ui::AX_ATTR_WORD_STARTS, word_start_offsets2);
388 390
389 CountedBrowserAccessibility::reset(); 391 CountedBrowserAccessibility::reset();
390 scoped_ptr<BrowserAccessibilityManager> manager( 392 std::unique_ptr<BrowserAccessibilityManager> manager(
391 BrowserAccessibilityManager::Create( 393 BrowserAccessibilityManager::Create(
392 MakeAXTreeUpdate(root, text_field, static_text1, inline_box1, 394 MakeAXTreeUpdate(root, text_field, static_text1, inline_box1,
393 line_break, static_text2, inline_box2), 395 line_break, static_text2, inline_box2),
394 nullptr, new CountedBrowserAccessibilityFactory())); 396 nullptr, new CountedBrowserAccessibilityFactory()));
395 ASSERT_EQ(7, CountedBrowserAccessibility::num_instances()); 397 ASSERT_EQ(7, CountedBrowserAccessibility::num_instances());
396 398
397 BrowserAccessibilityWin* root_obj = 399 BrowserAccessibilityWin* root_obj =
398 ToBrowserAccessibilityWin(manager->GetRoot()); 400 ToBrowserAccessibilityWin(manager->GetRoot());
399 ASSERT_NE(nullptr, root_obj); 401 ASSERT_NE(nullptr, root_obj);
400 ASSERT_EQ(1U, root_obj->PlatformChildCount()); 402 ASSERT_EQ(1U, root_obj->PlatformChildCount());
401 403
402 BrowserAccessibilityWin* text_field_obj = 404 BrowserAccessibilityWin* text_field_obj =
403 ToBrowserAccessibilityWin(root_obj->PlatformGetChild(0)); 405 ToBrowserAccessibilityWin(root_obj->PlatformGetChild(0));
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 text2.SetName(text2_name); 503 text2.SetName(text2_name);
502 504
503 ui::AXNodeData root; 505 ui::AXNodeData root;
504 root.id = 1; 506 root.id = 1;
505 root.role = ui::AX_ROLE_ROOT_WEB_AREA; 507 root.role = ui::AX_ROLE_ROOT_WEB_AREA;
506 root.state = 1 << ui::AX_STATE_READ_ONLY; 508 root.state = 1 << ui::AX_STATE_READ_ONLY;
507 root.child_ids.push_back(text1.id); 509 root.child_ids.push_back(text1.id);
508 root.child_ids.push_back(text2.id); 510 root.child_ids.push_back(text2.id);
509 511
510 CountedBrowserAccessibility::reset(); 512 CountedBrowserAccessibility::reset();
511 scoped_ptr<BrowserAccessibilityManager> manager( 513 std::unique_ptr<BrowserAccessibilityManager> manager(
512 BrowserAccessibilityManager::Create( 514 BrowserAccessibilityManager::Create(
513 MakeAXTreeUpdate(root, text1, text2), nullptr, 515 MakeAXTreeUpdate(root, text1, text2), nullptr,
514 new CountedBrowserAccessibilityFactory())); 516 new CountedBrowserAccessibilityFactory()));
515 ASSERT_EQ(3, CountedBrowserAccessibility::num_instances()); 517 ASSERT_EQ(3, CountedBrowserAccessibility::num_instances());
516 518
517 BrowserAccessibilityWin* root_obj = 519 BrowserAccessibilityWin* root_obj =
518 ToBrowserAccessibilityWin(manager->GetRoot()); 520 ToBrowserAccessibilityWin(manager->GetRoot());
519 521
520 long text_len; 522 long text_len;
521 EXPECT_EQ(S_OK, root_obj->get_nCharacters(&text_len)); 523 EXPECT_EQ(S_OK, root_obj->get_nCharacters(&text_len));
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 root.role = ui::AX_ROLE_ROOT_WEB_AREA; 623 root.role = ui::AX_ROLE_ROOT_WEB_AREA;
622 root.state = 1 << ui::AX_STATE_READ_ONLY; 624 root.state = 1 << ui::AX_STATE_READ_ONLY;
623 root.child_ids.push_back(text1.id); 625 root.child_ids.push_back(text1.id);
624 root.child_ids.push_back(combo_box.id); 626 root.child_ids.push_back(combo_box.id);
625 root.child_ids.push_back(text2.id); 627 root.child_ids.push_back(text2.id);
626 root.child_ids.push_back(check_box.id); 628 root.child_ids.push_back(check_box.id);
627 root.child_ids.push_back(button.id); 629 root.child_ids.push_back(button.id);
628 root.child_ids.push_back(link.id); 630 root.child_ids.push_back(link.id);
629 631
630 CountedBrowserAccessibility::reset(); 632 CountedBrowserAccessibility::reset();
631 scoped_ptr<BrowserAccessibilityManager> manager( 633 std::unique_ptr<BrowserAccessibilityManager> manager(
632 BrowserAccessibilityManager::Create( 634 BrowserAccessibilityManager::Create(
633 MakeAXTreeUpdate(root, text1, combo_box, text2, check_box, button, 635 MakeAXTreeUpdate(root, text1, combo_box, text2, check_box, button,
634 button_text, link, link_text), 636 button_text, link, link_text),
635 nullptr, new CountedBrowserAccessibilityFactory())); 637 nullptr, new CountedBrowserAccessibilityFactory()));
636 ASSERT_EQ(9, CountedBrowserAccessibility::num_instances()); 638 ASSERT_EQ(9, CountedBrowserAccessibility::num_instances());
637 639
638 BrowserAccessibilityWin* root_obj = 640 BrowserAccessibilityWin* root_obj =
639 ToBrowserAccessibilityWin(manager->GetRoot()); 641 ToBrowserAccessibilityWin(manager->GetRoot());
640 642
641 long text_len; 643 long text_len;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 ASSERT_EQ(0, CountedBrowserAccessibility::num_instances()); 720 ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
719 } 721 }
720 722
721 TEST_F(BrowserAccessibilityTest, TestCreateEmptyDocument) { 723 TEST_F(BrowserAccessibilityTest, TestCreateEmptyDocument) {
722 // Try creating an empty document with busy state. Readonly is 724 // Try creating an empty document with busy state. Readonly is
723 // set automatically. 725 // set automatically.
724 CountedBrowserAccessibility::reset(); 726 CountedBrowserAccessibility::reset();
725 const int32_t busy_state = 1 << ui::AX_STATE_BUSY; 727 const int32_t busy_state = 1 << ui::AX_STATE_BUSY;
726 const int32_t readonly_state = 1 << ui::AX_STATE_READ_ONLY; 728 const int32_t readonly_state = 1 << ui::AX_STATE_READ_ONLY;
727 const int32_t enabled_state = 1 << ui::AX_STATE_ENABLED; 729 const int32_t enabled_state = 1 << ui::AX_STATE_ENABLED;
728 scoped_ptr<BrowserAccessibilityManager> manager( 730 std::unique_ptr<BrowserAccessibilityManager> manager(
729 new BrowserAccessibilityManagerWin( 731 new BrowserAccessibilityManagerWin(
730 BrowserAccessibilityManagerWin::GetEmptyDocument(), 732 BrowserAccessibilityManagerWin::GetEmptyDocument(), NULL,
731 NULL,
732 new CountedBrowserAccessibilityFactory())); 733 new CountedBrowserAccessibilityFactory()));
733 734
734 // Verify the root is as we expect by default. 735 // Verify the root is as we expect by default.
735 BrowserAccessibility* root = manager->GetRoot(); 736 BrowserAccessibility* root = manager->GetRoot();
736 EXPECT_EQ(0, root->GetId()); 737 EXPECT_EQ(0, root->GetId());
737 EXPECT_EQ(ui::AX_ROLE_ROOT_WEB_AREA, root->GetRole()); 738 EXPECT_EQ(ui::AX_ROLE_ROOT_WEB_AREA, root->GetRole());
738 EXPECT_EQ(busy_state | readonly_state | enabled_state, root->GetState()); 739 EXPECT_EQ(busy_state | readonly_state | enabled_state, root->GetState());
739 740
740 // Tree with a child textfield. 741 // Tree with a child textfield.
741 ui::AXNodeData tree1_1; 742 ui::AXNodeData tree1_1;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
798 manager.reset(); 799 manager.reset();
799 ASSERT_EQ(0, CountedBrowserAccessibility::num_instances()); 800 ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
800 } 801 }
801 802
802 // This is a regression test for a bug where the initial empty document 803 // This is a regression test for a bug where the initial empty document
803 // loaded by a BrowserAccessibilityManagerWin couldn't be looked up by 804 // loaded by a BrowserAccessibilityManagerWin couldn't be looked up by
804 // its UniqueIDWin, because the AX Tree was loaded in 805 // its UniqueIDWin, because the AX Tree was loaded in
805 // BrowserAccessibilityManager code before BrowserAccessibilityManagerWin 806 // BrowserAccessibilityManager code before BrowserAccessibilityManagerWin
806 // was initialized. 807 // was initialized.
807 TEST_F(BrowserAccessibilityTest, EmptyDocHasUniqueIdWin) { 808 TEST_F(BrowserAccessibilityTest, EmptyDocHasUniqueIdWin) {
808 scoped_ptr<BrowserAccessibilityManagerWin> manager( 809 std::unique_ptr<BrowserAccessibilityManagerWin> manager(
809 new BrowserAccessibilityManagerWin( 810 new BrowserAccessibilityManagerWin(
810 BrowserAccessibilityManagerWin::GetEmptyDocument(), 811 BrowserAccessibilityManagerWin::GetEmptyDocument(), NULL,
811 NULL,
812 new CountedBrowserAccessibilityFactory())); 812 new CountedBrowserAccessibilityFactory()));
813 813
814 // Verify the root is as we expect by default. 814 // Verify the root is as we expect by default.
815 BrowserAccessibility* root = manager->GetRoot(); 815 BrowserAccessibility* root = manager->GetRoot();
816 EXPECT_EQ(0, root->GetId()); 816 EXPECT_EQ(0, root->GetId());
817 EXPECT_EQ(ui::AX_ROLE_ROOT_WEB_AREA, root->GetRole()); 817 EXPECT_EQ(ui::AX_ROLE_ROOT_WEB_AREA, root->GetRole());
818 EXPECT_EQ(1 << ui::AX_STATE_BUSY | 818 EXPECT_EQ(1 << ui::AX_STATE_BUSY |
819 1 << ui::AX_STATE_READ_ONLY | 819 1 << ui::AX_STATE_READ_ONLY |
820 1 << ui::AX_STATE_ENABLED, 820 1 << ui::AX_STATE_ENABLED,
821 root->GetState()); 821 root->GetState());
(...skipping 17 matching lines...) Expand all
839 839
840 ui::AXNodeData root; 840 ui::AXNodeData root;
841 root.id = 1; 841 root.id = 1;
842 root.SetName("Document"); 842 root.SetName("Document");
843 root.role = ui::AX_ROLE_ROOT_WEB_AREA; 843 root.role = ui::AX_ROLE_ROOT_WEB_AREA;
844 root.state = (1 << ui::AX_STATE_READ_ONLY) | (1 << ui::AX_STATE_FOCUSABLE); 844 root.state = (1 << ui::AX_STATE_READ_ONLY) | (1 << ui::AX_STATE_FOCUSABLE);
845 root.child_ids.push_back(2); 845 root.child_ids.push_back(2);
846 root.child_ids.push_back(3); 846 root.child_ids.push_back(3);
847 847
848 CountedBrowserAccessibility::reset(); 848 CountedBrowserAccessibility::reset();
849 scoped_ptr<BrowserAccessibilityManager> manager( 849 std::unique_ptr<BrowserAccessibilityManager> manager(
850 BrowserAccessibilityManager::Create( 850 BrowserAccessibilityManager::Create(
851 MakeAXTreeUpdate(root, pseudo_before, checkbox), nullptr, 851 MakeAXTreeUpdate(root, pseudo_before, checkbox), nullptr,
852 new CountedBrowserAccessibilityFactory())); 852 new CountedBrowserAccessibilityFactory()));
853 ASSERT_EQ(3, CountedBrowserAccessibility::num_instances()); 853 ASSERT_EQ(3, CountedBrowserAccessibility::num_instances());
854 854
855 ASSERT_NE(nullptr, manager->GetRoot()); 855 ASSERT_NE(nullptr, manager->GetRoot());
856 BrowserAccessibilityWin* root_accessible = 856 BrowserAccessibilityWin* root_accessible =
857 ToBrowserAccessibilityWin(manager->GetRoot()); 857 ToBrowserAccessibilityWin(manager->GetRoot());
858 ASSERT_NE(nullptr, root_accessible); 858 ASSERT_NE(nullptr, root_accessible);
859 ASSERT_EQ(2U, root_accessible->PlatformChildCount()); 859 ASSERT_EQ(2U, root_accessible->PlatformChildCount());
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
944 slider.state = slider_text.state = 1 << ui::AX_STATE_READ_ONLY; 944 slider.state = slider_text.state = 1 << ui::AX_STATE_READ_ONLY;
945 slider.child_ids.push_back(slider_text.id); 945 slider.child_ids.push_back(slider_text.id);
946 946
947 root.child_ids.push_back(2); // Combo box. 947 root.child_ids.push_back(2); // Combo box.
948 root.child_ids.push_back(4); // Search box. 948 root.child_ids.push_back(4); // Search box.
949 root.child_ids.push_back(7); // Text field. 949 root.child_ids.push_back(7); // Text field.
950 root.child_ids.push_back(8); // Link. 950 root.child_ids.push_back(8); // Link.
951 root.child_ids.push_back(10); // Slider. 951 root.child_ids.push_back(10); // Slider.
952 952
953 CountedBrowserAccessibility::reset(); 953 CountedBrowserAccessibility::reset();
954 scoped_ptr<BrowserAccessibilityManager> manager( 954 std::unique_ptr<BrowserAccessibilityManager> manager(
955 BrowserAccessibilityManager::Create( 955 BrowserAccessibilityManager::Create(
956 MakeAXTreeUpdate(root, combo_box, combo_box_text, search_box, 956 MakeAXTreeUpdate(root, combo_box, combo_box_text, search_box,
957 search_box_text, new_line, text_field, link, 957 search_box_text, new_line, text_field, link,
958 link_text, slider, slider_text), 958 link_text, slider, slider_text),
959 nullptr, new CountedBrowserAccessibilityFactory())); 959 nullptr, new CountedBrowserAccessibilityFactory()));
960 ASSERT_EQ(11, CountedBrowserAccessibility::num_instances()); 960 ASSERT_EQ(11, CountedBrowserAccessibility::num_instances());
961 961
962 ASSERT_NE(nullptr, manager->GetRoot()); 962 ASSERT_NE(nullptr, manager->GetRoot());
963 BrowserAccessibilityWin* root_accessible = 963 BrowserAccessibilityWin* root_accessible =
964 ToBrowserAccessibilityWin(manager->GetRoot()); 964 ToBrowserAccessibilityWin(manager->GetRoot());
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
1106 text_field_line.state = 1 << ui::AX_STATE_EDITABLE; 1106 text_field_line.state = 1 << ui::AX_STATE_EDITABLE;
1107 text_field_line.SetName(base::UTF16ToUTF8(line1)); 1107 text_field_line.SetName(base::UTF16ToUTF8(line1));
1108 text_field_line.AddIntListAttribute(ui::AX_ATTR_WORD_STARTS, 1108 text_field_line.AddIntListAttribute(ui::AX_ATTR_WORD_STARTS,
1109 line1_word_starts); 1109 line1_word_starts);
1110 text_field_text.child_ids.push_back(text_field_line.id); 1110 text_field_text.child_ids.push_back(text_field_line.id);
1111 1111
1112 root.child_ids.push_back(2); // Textarea. 1112 root.child_ids.push_back(2); // Textarea.
1113 root.child_ids.push_back(7); // Text field. 1113 root.child_ids.push_back(7); // Text field.
1114 1114
1115 CountedBrowserAccessibility::reset(); 1115 CountedBrowserAccessibility::reset();
1116 scoped_ptr<BrowserAccessibilityManager> manager( 1116 std::unique_ptr<BrowserAccessibilityManager> manager(
1117 BrowserAccessibilityManager::Create( 1117 BrowserAccessibilityManager::Create(
1118 MakeAXTreeUpdate(root, textarea, textarea_div, textarea_text, 1118 MakeAXTreeUpdate(root, textarea, textarea_div, textarea_text,
1119 textarea_line1, textarea_line2, text_field, 1119 textarea_line1, textarea_line2, text_field,
1120 text_field_div, text_field_text, text_field_line), 1120 text_field_div, text_field_text, text_field_line),
1121 nullptr, new CountedBrowserAccessibilityFactory())); 1121 nullptr, new CountedBrowserAccessibilityFactory()));
1122 ASSERT_EQ(10, CountedBrowserAccessibility::num_instances()); 1122 ASSERT_EQ(10, CountedBrowserAccessibility::num_instances());
1123 1123
1124 ASSERT_NE(nullptr, manager->GetRoot()); 1124 ASSERT_NE(nullptr, manager->GetRoot());
1125 BrowserAccessibilityWin* root_accessible = 1125 BrowserAccessibilityWin* root_accessible =
1126 ToBrowserAccessibilityWin(manager->GetRoot()); 1126 ToBrowserAccessibilityWin(manager->GetRoot());
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
1207 (1 << ui::AX_STATE_FOCUSABLE); 1207 (1 << ui::AX_STATE_FOCUSABLE);
1208 text_field.SetValue("Test2"); 1208 text_field.SetValue("Test2");
1209 // Select the letter 'e'. 1209 // Select the letter 'e'.
1210 text_field.AddIntAttribute(ui::AX_ATTR_TEXT_SEL_START, 1); 1210 text_field.AddIntAttribute(ui::AX_ATTR_TEXT_SEL_START, 1);
1211 text_field.AddIntAttribute(ui::AX_ATTR_TEXT_SEL_END, 2); 1211 text_field.AddIntAttribute(ui::AX_ATTR_TEXT_SEL_END, 2);
1212 1212
1213 root.child_ids.push_back(2); 1213 root.child_ids.push_back(2);
1214 root.child_ids.push_back(3); 1214 root.child_ids.push_back(3);
1215 1215
1216 CountedBrowserAccessibility::reset(); 1216 CountedBrowserAccessibility::reset();
1217 scoped_ptr<BrowserAccessibilityManager> manager( 1217 std::unique_ptr<BrowserAccessibilityManager> manager(
1218 BrowserAccessibilityManager::Create( 1218 BrowserAccessibilityManager::Create(
1219 MakeAXTreeUpdate(root, combo_box, text_field), 1219 MakeAXTreeUpdate(root, combo_box, text_field), nullptr,
1220 nullptr, new CountedBrowserAccessibilityFactory())); 1220 new CountedBrowserAccessibilityFactory()));
1221 ASSERT_EQ(3, CountedBrowserAccessibility::num_instances()); 1221 ASSERT_EQ(3, CountedBrowserAccessibility::num_instances());
1222 1222
1223 ASSERT_NE(nullptr, manager->GetRoot()); 1223 ASSERT_NE(nullptr, manager->GetRoot());
1224 BrowserAccessibilityWin* root_accessible = 1224 BrowserAccessibilityWin* root_accessible =
1225 ToBrowserAccessibilityWin(manager->GetRoot()); 1225 ToBrowserAccessibilityWin(manager->GetRoot());
1226 ASSERT_NE(nullptr, root_accessible); 1226 ASSERT_NE(nullptr, root_accessible);
1227 ASSERT_EQ(2U, root_accessible->PlatformChildCount()); 1227 ASSERT_EQ(2U, root_accessible->PlatformChildCount());
1228 1228
1229 BrowserAccessibilityWin* combo_box_accessible = 1229 BrowserAccessibilityWin* combo_box_accessible =
1230 ToBrowserAccessibilityWin(root_accessible->PlatformGetChild(0)); 1230 ToBrowserAccessibilityWin(root_accessible->PlatformGetChild(0));
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1327 root, div_editable, link, link_text, text); 1327 root, div_editable, link, link_text, text);
1328 1328
1329 // Place the caret between 'h' and 'e'. 1329 // Place the caret between 'h' and 'e'.
1330 update.has_tree_data = true; 1330 update.has_tree_data = true;
1331 update.tree_data.sel_anchor_object_id = 5; 1331 update.tree_data.sel_anchor_object_id = 5;
1332 update.tree_data.sel_anchor_offset = 1; 1332 update.tree_data.sel_anchor_offset = 1;
1333 update.tree_data.sel_focus_object_id = 5; 1333 update.tree_data.sel_focus_object_id = 5;
1334 update.tree_data.sel_focus_offset = 1; 1334 update.tree_data.sel_focus_offset = 1;
1335 1335
1336 CountedBrowserAccessibility::reset(); 1336 CountedBrowserAccessibility::reset();
1337 scoped_ptr<BrowserAccessibilityManager> manager( 1337 std::unique_ptr<BrowserAccessibilityManager> manager(
1338 BrowserAccessibilityManager::Create( 1338 BrowserAccessibilityManager::Create(
1339 update, 1339 update, nullptr, new CountedBrowserAccessibilityFactory()));
1340 nullptr, new CountedBrowserAccessibilityFactory()));
1341 ASSERT_EQ(5, CountedBrowserAccessibility::num_instances()); 1340 ASSERT_EQ(5, CountedBrowserAccessibility::num_instances());
1342 1341
1343 ASSERT_NE(nullptr, manager->GetRoot()); 1342 ASSERT_NE(nullptr, manager->GetRoot());
1344 BrowserAccessibilityWin* root_accessible = 1343 BrowserAccessibilityWin* root_accessible =
1345 ToBrowserAccessibilityWin(manager->GetRoot()); 1344 ToBrowserAccessibilityWin(manager->GetRoot());
1346 ASSERT_NE(nullptr, root_accessible); 1345 ASSERT_NE(nullptr, root_accessible);
1347 ASSERT_EQ(1U, root_accessible->PlatformChildCount()); 1346 ASSERT_EQ(1U, root_accessible->PlatformChildCount());
1348 1347
1349 BrowserAccessibilityWin* div_editable_accessible = 1348 BrowserAccessibilityWin* div_editable_accessible =
1350 ToBrowserAccessibilityWin(root_accessible->PlatformGetChild(0)); 1349 ToBrowserAccessibilityWin(root_accessible->PlatformGetChild(0));
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1445 MakeAXTreeUpdate(root, div_editable, link, link_text, text); 1444 MakeAXTreeUpdate(root, div_editable, link, link_text, text);
1446 1445
1447 // Select the following part of the text: "lick here". 1446 // Select the following part of the text: "lick here".
1448 update.has_tree_data = true; 1447 update.has_tree_data = true;
1449 update.tree_data.sel_anchor_object_id = 3; 1448 update.tree_data.sel_anchor_object_id = 3;
1450 update.tree_data.sel_anchor_offset = 1; 1449 update.tree_data.sel_anchor_offset = 1;
1451 update.tree_data.sel_focus_object_id = 5; 1450 update.tree_data.sel_focus_object_id = 5;
1452 update.tree_data.sel_focus_offset = 4; 1451 update.tree_data.sel_focus_offset = 4;
1453 1452
1454 CountedBrowserAccessibility::reset(); 1453 CountedBrowserAccessibility::reset();
1455 scoped_ptr<BrowserAccessibilityManager> manager( 1454 std::unique_ptr<BrowserAccessibilityManager> manager(
1456 BrowserAccessibilityManager::Create( 1455 BrowserAccessibilityManager::Create(
1457 update, 1456 update, nullptr, new CountedBrowserAccessibilityFactory()));
1458 nullptr, new CountedBrowserAccessibilityFactory()));
1459 ASSERT_EQ(5, CountedBrowserAccessibility::num_instances()); 1457 ASSERT_EQ(5, CountedBrowserAccessibility::num_instances());
1460 1458
1461 ASSERT_NE(nullptr, manager->GetRoot()); 1459 ASSERT_NE(nullptr, manager->GetRoot());
1462 BrowserAccessibilityWin* root_accessible = 1460 BrowserAccessibilityWin* root_accessible =
1463 ToBrowserAccessibilityWin(manager->GetRoot()); 1461 ToBrowserAccessibilityWin(manager->GetRoot());
1464 ASSERT_NE(nullptr, root_accessible); 1462 ASSERT_NE(nullptr, root_accessible);
1465 ASSERT_EQ(1U, root_accessible->PlatformChildCount()); 1463 ASSERT_EQ(1U, root_accessible->PlatformChildCount());
1466 1464
1467 BrowserAccessibilityWin* div_editable_accessible = 1465 BrowserAccessibilityWin* div_editable_accessible =
1468 ToBrowserAccessibilityWin(root_accessible->PlatformGetChild(0)); 1466 ToBrowserAccessibilityWin(root_accessible->PlatformGetChild(0));
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
1581 link.role = ui::AX_ROLE_LINK; 1579 link.role = ui::AX_ROLE_LINK;
1582 link.state = (1 << ui::AX_STATE_FOCUSABLE) | (1 << ui::AX_STATE_LINKED); 1580 link.state = (1 << ui::AX_STATE_FOCUSABLE) | (1 << ui::AX_STATE_LINKED);
1583 link.SetName("here"); 1581 link.SetName("here");
1584 link.AddStringAttribute(ui::AX_ATTR_URL, "example.com"); 1582 link.AddStringAttribute(ui::AX_ATTR_URL, "example.com");
1585 1583
1586 root.child_ids.push_back(2); 1584 root.child_ids.push_back(2);
1587 div.child_ids.push_back(3); 1585 div.child_ids.push_back(3);
1588 div.child_ids.push_back(4); 1586 div.child_ids.push_back(4);
1589 1587
1590 CountedBrowserAccessibility::reset(); 1588 CountedBrowserAccessibility::reset();
1591 scoped_ptr<BrowserAccessibilityManager> manager( 1589 std::unique_ptr<BrowserAccessibilityManager> manager(
1592 BrowserAccessibilityManager::Create( 1590 BrowserAccessibilityManager::Create(
1593 MakeAXTreeUpdate(root, div, link, text), nullptr, 1591 MakeAXTreeUpdate(root, div, link, text), nullptr,
1594 new CountedBrowserAccessibilityFactory())); 1592 new CountedBrowserAccessibilityFactory()));
1595 ASSERT_EQ(4, CountedBrowserAccessibility::num_instances()); 1593 ASSERT_EQ(4, CountedBrowserAccessibility::num_instances());
1596 1594
1597 ASSERT_NE(nullptr, manager->GetRoot()); 1595 ASSERT_NE(nullptr, manager->GetRoot());
1598 BrowserAccessibilityWin* root_accessible = 1596 BrowserAccessibilityWin* root_accessible =
1599 ToBrowserAccessibilityWin(manager->GetRoot()); 1597 ToBrowserAccessibilityWin(manager->GetRoot());
1600 ASSERT_NE(nullptr, root_accessible); 1598 ASSERT_NE(nullptr, root_accessible);
1601 ASSERT_EQ(1U, root_accessible->PlatformChildCount()); 1599 ASSERT_EQ(1U, root_accessible->PlatformChildCount());
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1732 ui::AXNodeData child2_child1; 1730 ui::AXNodeData child2_child1;
1733 child2_child1.id = 4; 1731 child2_child1.id = 4;
1734 child2_child1.role = ui::AX_ROLE_INLINE_TEXT_BOX; 1732 child2_child1.role = ui::AX_ROLE_INLINE_TEXT_BOX;
1735 child2.child_ids.push_back(4); 1733 child2.child_ids.push_back(4);
1736 1734
1737 ui::AXNodeData child2_child2; 1735 ui::AXNodeData child2_child2;
1738 child2_child2.id = 5; 1736 child2_child2.id = 5;
1739 child2_child2.role = ui::AX_ROLE_INLINE_TEXT_BOX; 1737 child2_child2.role = ui::AX_ROLE_INLINE_TEXT_BOX;
1740 child2.child_ids.push_back(5); 1738 child2.child_ids.push_back(5);
1741 1739
1742 scoped_ptr<BrowserAccessibilityManager> manager( 1740 std::unique_ptr<BrowserAccessibilityManager> manager(
1743 BrowserAccessibilityManager::Create( 1741 BrowserAccessibilityManager::Create(
1744 MakeAXTreeUpdate(root, child1, child2, child2_child1, child2_child2), 1742 MakeAXTreeUpdate(root, child1, child2, child2_child1, child2_child2),
1745 nullptr, new CountedBrowserAccessibilityFactory())); 1743 nullptr, new CountedBrowserAccessibilityFactory()));
1746 1744
1747 BrowserAccessibility* root_accessible = manager->GetRoot(); 1745 BrowserAccessibility* root_accessible = manager->GetRoot();
1748 ASSERT_NE(nullptr, root_accessible); 1746 ASSERT_NE(nullptr, root_accessible);
1749 ASSERT_EQ(2U, root_accessible->PlatformChildCount()); 1747 ASSERT_EQ(2U, root_accessible->PlatformChildCount());
1750 BrowserAccessibility* child1_accessible = 1748 BrowserAccessibility* child1_accessible =
1751 root_accessible->PlatformGetChild(0); 1749 root_accessible->PlatformGetChild(0);
1752 ASSERT_NE(nullptr, child1_accessible); 1750 ASSERT_NE(nullptr, child1_accessible);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1815 ui::AXNodeData child2_child1; 1813 ui::AXNodeData child2_child1;
1816 child2_child1.id = 4; 1814 child2_child1.id = 4;
1817 child2_child1.role = ui::AX_ROLE_INLINE_TEXT_BOX; 1815 child2_child1.role = ui::AX_ROLE_INLINE_TEXT_BOX;
1818 child2.child_ids.push_back(4); 1816 child2.child_ids.push_back(4);
1819 1817
1820 ui::AXNodeData child2_child2; 1818 ui::AXNodeData child2_child2;
1821 child2_child2.id = 5; 1819 child2_child2.id = 5;
1822 child2_child2.role = ui::AX_ROLE_INLINE_TEXT_BOX; 1820 child2_child2.role = ui::AX_ROLE_INLINE_TEXT_BOX;
1823 child2.child_ids.push_back(5); 1821 child2.child_ids.push_back(5);
1824 1822
1825 scoped_ptr<BrowserAccessibilityManager> manager( 1823 std::unique_ptr<BrowserAccessibilityManager> manager(
1826 BrowserAccessibilityManager::Create( 1824 BrowserAccessibilityManager::Create(
1827 MakeAXTreeUpdate(root, child1, child2, child2_child1, child2_child2), 1825 MakeAXTreeUpdate(root, child1, child2, child2_child1, child2_child2),
1828 nullptr, new CountedBrowserAccessibilityFactory())); 1826 nullptr, new CountedBrowserAccessibilityFactory()));
1829 1827
1830 BrowserAccessibility* root_accessible = manager->GetRoot(); 1828 BrowserAccessibility* root_accessible = manager->GetRoot();
1831 ASSERT_NE(nullptr, root_accessible); 1829 ASSERT_NE(nullptr, root_accessible);
1832 BrowserAccessibility* child1_accessible = 1830 BrowserAccessibility* child1_accessible =
1833 root_accessible->PlatformGetChild(0); 1831 root_accessible->PlatformGetChild(0);
1834 ASSERT_NE(nullptr, child1_accessible); 1832 ASSERT_NE(nullptr, child1_accessible);
1835 BrowserAccessibility* child2_accessible = 1833 BrowserAccessibility* child2_accessible =
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1917 1915
1918 TEST_F(BrowserAccessibilityTest, UniqueIdWinInvalidAfterDeletingTree) { 1916 TEST_F(BrowserAccessibilityTest, UniqueIdWinInvalidAfterDeletingTree) {
1919 ui::AXNodeData root_node; 1917 ui::AXNodeData root_node;
1920 root_node.id = 1; 1918 root_node.id = 1;
1921 root_node.role = ui::AX_ROLE_ROOT_WEB_AREA; 1919 root_node.role = ui::AX_ROLE_ROOT_WEB_AREA;
1922 1920
1923 ui::AXNodeData child_node; 1921 ui::AXNodeData child_node;
1924 child_node.id = 2; 1922 child_node.id = 2;
1925 root_node.child_ids.push_back(2); 1923 root_node.child_ids.push_back(2);
1926 1924
1927 scoped_ptr<BrowserAccessibilityManagerWin> manager( 1925 std::unique_ptr<BrowserAccessibilityManagerWin> manager(
1928 new BrowserAccessibilityManagerWin( 1926 new BrowserAccessibilityManagerWin(
1929 MakeAXTreeUpdate(root_node, child_node), 1927 MakeAXTreeUpdate(root_node, child_node), nullptr,
1930 nullptr,
1931 new CountedBrowserAccessibilityFactory())); 1928 new CountedBrowserAccessibilityFactory()));
1932 1929
1933 BrowserAccessibility* root = manager->GetRoot(); 1930 BrowserAccessibility* root = manager->GetRoot();
1934 int32_t root_unique_id = root->unique_id(); 1931 int32_t root_unique_id = root->unique_id();
1935 BrowserAccessibility* child = root->PlatformGetChild(0); 1932 BrowserAccessibility* child = root->PlatformGetChild(0);
1936 int32_t child_unique_id = child->unique_id(); 1933 int32_t child_unique_id = child->unique_id();
1937 1934
1938 // Now destroy that original tree and create a new tree. 1935 // Now destroy that original tree and create a new tree.
1939 manager.reset( 1936 manager.reset(
1940 new BrowserAccessibilityManagerWin( 1937 new BrowserAccessibilityManagerWin(
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1979 1976
1980 TEST_F(BrowserAccessibilityTest, AccChildOnlyReturnsDescendants) { 1977 TEST_F(BrowserAccessibilityTest, AccChildOnlyReturnsDescendants) {
1981 ui::AXNodeData root_node; 1978 ui::AXNodeData root_node;
1982 root_node.id = 1; 1979 root_node.id = 1;
1983 root_node.role = ui::AX_ROLE_ROOT_WEB_AREA; 1980 root_node.role = ui::AX_ROLE_ROOT_WEB_AREA;
1984 1981
1985 ui::AXNodeData child_node; 1982 ui::AXNodeData child_node;
1986 child_node.id = 2; 1983 child_node.id = 2;
1987 root_node.child_ids.push_back(2); 1984 root_node.child_ids.push_back(2);
1988 1985
1989 scoped_ptr<BrowserAccessibilityManagerWin> manager( 1986 std::unique_ptr<BrowserAccessibilityManagerWin> manager(
1990 new BrowserAccessibilityManagerWin( 1987 new BrowserAccessibilityManagerWin(
1991 MakeAXTreeUpdate(root_node, child_node), 1988 MakeAXTreeUpdate(root_node, child_node), nullptr,
1992 nullptr,
1993 new CountedBrowserAccessibilityFactory())); 1989 new CountedBrowserAccessibilityFactory()));
1994 1990
1995 BrowserAccessibility* root = manager->GetRoot(); 1991 BrowserAccessibility* root = manager->GetRoot();
1996 BrowserAccessibility* child = root->PlatformGetChild(0); 1992 BrowserAccessibility* child = root->PlatformGetChild(0);
1997 1993
1998 base::win::ScopedVariant root_unique_id_variant(-root->unique_id()); 1994 base::win::ScopedVariant root_unique_id_variant(-root->unique_id());
1999 base::win::ScopedComPtr<IDispatch> result; 1995 base::win::ScopedComPtr<IDispatch> result;
2000 EXPECT_EQ(E_INVALIDARG, ToBrowserAccessibilityWin(child)->get_accChild( 1996 EXPECT_EQ(E_INVALIDARG, ToBrowserAccessibilityWin(child)->get_accChild(
2001 root_unique_id_variant, result.Receive())); 1997 root_unique_id_variant, result.Receive()));
2002 1998
2003 base::win::ScopedVariant child_unique_id_variant(-child->unique_id()); 1999 base::win::ScopedVariant child_unique_id_variant(-child->unique_id());
2004 EXPECT_EQ(S_OK, ToBrowserAccessibilityWin(root)->get_accChild( 2000 EXPECT_EQ(S_OK, ToBrowserAccessibilityWin(root)->get_accChild(
2005 child_unique_id_variant, result.Receive())); 2001 child_unique_id_variant, result.Receive()));
2006 } 2002 }
2007 2003
2008 } // namespace content 2004 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698