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

Unified 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 nested event sending in AutomationManagerAura 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility_manager_unittest.cc
diff --git a/content/browser/accessibility/browser_accessibility_manager_unittest.cc b/content/browser/accessibility/browser_accessibility_manager_unittest.cc
index d30c2582b6a71e277bd356d68ef4acb20824e689..c9e6d833ead8ecfad8b77770dd7185c6e43f9d6d 100644
--- a/content/browser/accessibility/browser_accessibility_manager_unittest.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_unittest.cc
@@ -90,13 +90,15 @@ class TestBrowserAccessibilityDelegate
return gfx::kNullAcceleratedWidget;
}
gfx::NativeViewAccessible AccessibilityGetNativeViewAccessible() override {
- return NULL;
+ return nullptr;
}
BrowserAccessibilityManager* AccessibilityGetChildFrame(
int accessibility_node_id) override {
- return NULL;
+ return nullptr;
+ }
+ BrowserAccessibility* AccessibilityGetParentFrame() override {
+ return nullptr;
}
- BrowserAccessibility* AccessibilityGetParentFrame() override { return NULL; }
void AccessibilityGetAllChildFrames(
std::vector<BrowserAccessibilityManager*>* child_frames) override {}
@@ -141,7 +143,7 @@ TEST(BrowserAccessibilityManagerTest, TestNoLeaks) {
BrowserAccessibilityManager* manager =
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, button, checkbox),
- NULL,
+ nullptr,
new CountedBrowserAccessibilityFactory());
ASSERT_EQ(3, CountedBrowserAccessibility::global_obj_count_);
@@ -155,7 +157,7 @@ TEST(BrowserAccessibilityManagerTest, TestNoLeaks) {
manager =
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, button, checkbox),
- NULL,
+ nullptr,
new CountedBrowserAccessibilityFactory());
ASSERT_EQ(3, CountedBrowserAccessibility::global_obj_count_);
@@ -246,7 +248,7 @@ TEST(BrowserAccessibilityManagerTest, TestReuseBrowserAccessibilityObjects) {
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(tree1_root,
tree1_child1, tree1_child2, tree1_child3),
- NULL,
+ nullptr,
new CountedBrowserAccessibilityFactory());
ASSERT_EQ(4, CountedBrowserAccessibility::global_obj_count_);
@@ -422,7 +424,7 @@ TEST(BrowserAccessibilityManagerTest, TestReuseBrowserAccessibilityObjects2) {
tree1_child1, tree1_grandchild1,
tree1_child2, tree1_grandchild2,
tree1_child3, tree1_grandchild3),
- NULL,
+ nullptr,
new CountedBrowserAccessibilityFactory());
ASSERT_EQ(8, CountedBrowserAccessibility::global_obj_count_);
@@ -550,7 +552,7 @@ TEST(BrowserAccessibilityManagerTest, TestMoveChildUp) {
BrowserAccessibilityManager* manager =
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(tree1_1, tree1_2, tree1_3, tree1_4),
- NULL,
+ nullptr,
new CountedBrowserAccessibilityFactory());
ASSERT_EQ(4, CountedBrowserAccessibility::global_obj_count_);
@@ -684,7 +686,7 @@ TEST(BrowserAccessibilityManagerTest, BoundsForRange) {
scoped_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, static_text, inline_text1, inline_text2),
- NULL,
+ nullptr,
new CountedBrowserAccessibilityFactory()));
BrowserAccessibility* root_accessible = manager->GetRoot();
@@ -772,7 +774,7 @@ TEST(BrowserAccessibilityManagerTest, BoundsForRangeBiDi) {
scoped_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, static_text, inline_text1, inline_text2),
- NULL,
+ nullptr,
new CountedBrowserAccessibilityFactory()));
BrowserAccessibility* root_accessible = manager->GetRoot();
@@ -832,7 +834,7 @@ TEST(BrowserAccessibilityManagerTest, BoundsForRangeScrolledWindow) {
scoped_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, static_text, inline_text),
- NULL,
+ nullptr,
new CountedBrowserAccessibilityFactory()));
BrowserAccessibility* root_accessible = manager->GetRoot();
@@ -918,7 +920,7 @@ TEST(BrowserAccessibilityManagerTest, MAYBE_BoundsForRangeOnParentElement) {
MakeAXTreeUpdate(
root, div, static_text1, img,
static_text2, inline_text1, inline_text2),
- NULL,
+ nullptr,
new CountedBrowserAccessibilityFactory()));
BrowserAccessibility* root_accessible = manager->GetRoot();
@@ -965,7 +967,7 @@ TEST(BrowserAccessibilityManagerTest, NextPreviousInTreeOrder) {
scoped_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, node2, node3, node4, node5),
- NULL,
+ nullptr,
new CountedBrowserAccessibilityFactory()));
BrowserAccessibility* root_accessible = manager->GetRoot();
@@ -975,18 +977,69 @@ TEST(BrowserAccessibilityManagerTest, NextPreviousInTreeOrder) {
node3_accessible->PlatformGetChild(0);
BrowserAccessibility* node5_accessible = root_accessible->PlatformGetChild(2);
- ASSERT_EQ(NULL, manager->NextInTreeOrder(NULL));
+ ASSERT_EQ(nullptr, manager->NextInTreeOrder(nullptr));
ASSERT_EQ(node2_accessible, manager->NextInTreeOrder(root_accessible));
ASSERT_EQ(node3_accessible, manager->NextInTreeOrder(node2_accessible));
ASSERT_EQ(node4_accessible, manager->NextInTreeOrder(node3_accessible));
ASSERT_EQ(node5_accessible, manager->NextInTreeOrder(node4_accessible));
- ASSERT_EQ(NULL, manager->NextInTreeOrder(node5_accessible));
+ ASSERT_EQ(nullptr, manager->NextInTreeOrder(node5_accessible));
- ASSERT_EQ(NULL, manager->PreviousInTreeOrder(NULL));
+ ASSERT_EQ(nullptr, manager->PreviousInTreeOrder(nullptr));
ASSERT_EQ(node4_accessible, manager->PreviousInTreeOrder(node5_accessible));
ASSERT_EQ(node3_accessible, manager->PreviousInTreeOrder(node4_accessible));
ASSERT_EQ(node2_accessible, manager->PreviousInTreeOrder(node3_accessible));
ASSERT_EQ(root_accessible, manager->PreviousInTreeOrder(node2_accessible));
}
+TEST(BrowserAccessibilityManagerTest, DeletingFocusedNodeDoesNotCrash) {
+ // Create a really simple tree with one root node and one focused child.
+ ui::AXNodeData root;
+ root.id = 1;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
+ root.state = 0;
+ root.child_ids.push_back(2);
+
+ ui::AXNodeData node2;
+ node2.id = 2;
+ node2.state = 1 << ui::AX_STATE_FOCUSED;
+
+ scoped_ptr<BrowserAccessibilityManager> manager(
+ BrowserAccessibilityManager::Create(
+ MakeAXTreeUpdate(root, node2),
+ nullptr,
+ new CountedBrowserAccessibilityFactory()));
+
+ ASSERT_EQ(1, manager->GetRoot()->GetId());
+ ASSERT_EQ(1, manager->GetFocus(manager->GetRoot())->GetId());
+
+ // Send the focus event for node 2.
+ std::vector<AccessibilityHostMsg_EventParams> events;
+ events.push_back(AccessibilityHostMsg_EventParams());
+ events[0].update = MakeAXTreeUpdate(node2);
+ events[0].id = 2;
+ events[0].event_type = ui::AX_EVENT_FOCUS;
+ manager->OnAccessibilityEvents(events);
+
+ ASSERT_EQ(1, manager->GetRoot()->GetId());
+ ASSERT_EQ(2, manager->GetFocus(manager->GetRoot())->GetId());
+
+ // Now replace the tree with a new tree consisting of a single root.
+ ui::AXNodeData root2;
+ root2.id = 3;
+ root2.role = ui::AX_ROLE_ROOT_WEB_AREA;
+ root2.state = 0;
+
+ std::vector<AccessibilityHostMsg_EventParams> events2;
+ events2.push_back(AccessibilityHostMsg_EventParams());
+ events2[0].update = MakeAXTreeUpdate(root2);
+ events2[0].id = -1;
+ events2[0].event_type = ui::AX_EVENT_NONE;
+ manager->OnAccessibilityEvents(events2);
+
+ // Make sure that the focused node was updated to the new root and
+ // that this doesn't crash.
+ ASSERT_EQ(3, manager->GetRoot()->GetId());
+ ASSERT_EQ(3, manager->GetFocus(manager->GetRoot())->GetId());
+}
+
} // namespace content
« 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