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

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

Issue 1231603009: Re-land: Reimplement automation API on top of C++-backed AXTree. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix bug 502311 and add test Created 5 years, 5 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 "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 971 matching lines...) Expand 10 before | Expand all | Expand 10 after
982 ASSERT_EQ(node5_accessible, manager->NextInTreeOrder(node4_accessible)); 982 ASSERT_EQ(node5_accessible, manager->NextInTreeOrder(node4_accessible));
983 ASSERT_EQ(NULL, manager->NextInTreeOrder(node5_accessible)); 983 ASSERT_EQ(NULL, manager->NextInTreeOrder(node5_accessible));
984 984
985 ASSERT_EQ(NULL, manager->PreviousInTreeOrder(NULL)); 985 ASSERT_EQ(NULL, manager->PreviousInTreeOrder(NULL));
986 ASSERT_EQ(node4_accessible, manager->PreviousInTreeOrder(node5_accessible)); 986 ASSERT_EQ(node4_accessible, manager->PreviousInTreeOrder(node5_accessible));
987 ASSERT_EQ(node3_accessible, manager->PreviousInTreeOrder(node4_accessible)); 987 ASSERT_EQ(node3_accessible, manager->PreviousInTreeOrder(node4_accessible));
988 ASSERT_EQ(node2_accessible, manager->PreviousInTreeOrder(node3_accessible)); 988 ASSERT_EQ(node2_accessible, manager->PreviousInTreeOrder(node3_accessible));
989 ASSERT_EQ(root_accessible, manager->PreviousInTreeOrder(node2_accessible)); 989 ASSERT_EQ(root_accessible, manager->PreviousInTreeOrder(node2_accessible));
990 } 990 }
991 991
992 TEST(BrowserAccessibilityManagerTest, DeletingFocusedNodeDoesNotCrash) {
993 // Create a really simple tree with one root node and one focused child.
994 ui::AXNodeData root;
995 root.id = 1;
996 root.role = ui::AX_ROLE_ROOT_WEB_AREA;
997 root.state = 0;
998 root.child_ids.push_back(2);
999
1000 ui::AXNodeData node2;
1001 node2.id = 2;
1002 node2.state = 1 << ui::AX_STATE_FOCUSED;
1003
1004 scoped_ptr<BrowserAccessibilityManager> manager(
1005 BrowserAccessibilityManager::Create(
1006 MakeAXTreeUpdate(root, node2),
1007 NULL,
dcheng 2015/07/15 00:58:10 Nit: nullptr
dmazzoni 2015/07/22 18:44:26 Done throughout this file.
1008 new CountedBrowserAccessibilityFactory()));
1009
1010 ASSERT_EQ(1, manager->GetRoot()->GetId());
1011 ASSERT_EQ(1, manager->GetFocus(manager->GetRoot())->GetId());
1012
1013 // Send the focus event for node 2.
1014 std::vector<AccessibilityHostMsg_EventParams> events;
1015 events.push_back(AccessibilityHostMsg_EventParams());
1016 events[0].update = MakeAXTreeUpdate(node2);
1017 events[0].id = 2;
1018 events[0].event_type = ui::AX_EVENT_FOCUS;
1019 manager->OnAccessibilityEvents(events);
1020
1021 ASSERT_EQ(1, manager->GetRoot()->GetId());
1022 ASSERT_EQ(2, manager->GetFocus(manager->GetRoot())->GetId());
1023
1024 // Now replace the tree with a new tree consisting of a single root.
1025 ui::AXNodeData root2;
1026 root2.id = 3;
1027 root2.role = ui::AX_ROLE_ROOT_WEB_AREA;
1028 root2.state = 0;
1029
1030 std::vector<AccessibilityHostMsg_EventParams> events2;
1031 events2.push_back(AccessibilityHostMsg_EventParams());
1032 events2[0].update = MakeAXTreeUpdate(root2);
1033 events2[0].id = -1;
1034 events2[0].event_type = ui::AX_EVENT_NONE;
1035 manager->OnAccessibilityEvents(events2);
1036
1037 // Make sure that the focused node was updated to the new root and
1038 // that this doesn't crash.
1039 ASSERT_EQ(3, manager->GetRoot()->GetId());
1040 ASSERT_EQ(3, manager->GetFocus(manager->GetRoot())->GetId());
1041 }
1042
992 } // namespace content 1043 } // namespace content
OLDNEW
« no previous file with comments | « chrome/test/data/extensions/api_test/automation/tests/unit/unit.html ('k') | extensions/renderer/logging_native_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698