Index: ui/accessibility/ax_tree_unittest.cc |
diff --git a/ui/accessibility/ax_tree_unittest.cc b/ui/accessibility/ax_tree_unittest.cc |
index 6c5d8852c6fbb82164b440b00c71d26815c4c384..8be0f39018666c197aa199244dce106e5a419092 100644 |
--- a/ui/accessibility/ax_tree_unittest.cc |
+++ b/ui/accessibility/ax_tree_unittest.cc |
@@ -16,10 +16,16 @@ namespace { |
class FakeAXTreeDelegate : public AXTreeDelegate { |
public: |
+ FakeAXTreeDelegate() : root_changed_(false) {} |
+ |
void OnNodeWillBeDeleted(AXNode* node) override { |
deleted_ids_.push_back(node->id()); |
} |
+ void OnSubtreeWillBeDeleted(AXNode* node) override { |
+ subtree_deleted_ids_.push_back(node->id()); |
+ } |
+ |
void OnNodeCreated(AXNode* node) override { |
created_ids_.push_back(node->id()); |
} |
@@ -28,32 +34,51 @@ class FakeAXTreeDelegate : public AXTreeDelegate { |
changed_ids_.push_back(node->id()); |
} |
- void OnNodeCreationFinished(AXNode* node) override { |
- creation_finished_ids_.push_back(node->id()); |
- } |
- |
- void OnNodeChangeFinished(AXNode* node) override { |
- change_finished_ids_.push_back(node->id()); |
- } |
- |
- void OnRootChanged(AXNode* new_root) override { |
- new_root_ids_.push_back(new_root->id()); |
+ void OnAtomicUpdateFinished(bool root_changed, |
+ const std::vector<Change>& changes) override { |
+ root_changed_ = root_changed; |
+ |
+ for (size_t i = 0; i < changes.size(); ++i) { |
+ int id = changes[i].node->id(); |
+ switch (changes[i].type) { |
+ case NODE_CREATED: |
+ node_creation_finished_ids_.push_back(id); |
+ break; |
+ case SUBTREE_CREATED: |
+ subtree_creation_finished_ids_.push_back(id); |
+ break; |
+ case NODE_CHANGED: |
+ change_finished_ids_.push_back(id); |
+ break; |
+ } |
+ } |
} |
+ bool root_changed() const { return root_changed_; } |
const std::vector<int32>& deleted_ids() { return deleted_ids_; } |
+ const std::vector<int32>& subtree_deleted_ids() { |
+ return subtree_deleted_ids_; |
+ } |
const std::vector<int32>& created_ids() { return created_ids_; } |
- const std::vector<int32>& creation_finished_ids() { |
- return creation_finished_ids_; |
+ const std::vector<int32>& node_creation_finished_ids() { |
+ return node_creation_finished_ids_; |
+ } |
+ const std::vector<int32>& subtree_creation_finished_ids() { |
+ return subtree_creation_finished_ids_; |
+ } |
+ const std::vector<int32>& change_finished_ids() { |
+ return change_finished_ids_; |
} |
- const std::vector<int32>& new_root_ids() { return new_root_ids_; } |
private: |
+ bool root_changed_; |
std::vector<int32> deleted_ids_; |
+ std::vector<int32> subtree_deleted_ids_; |
std::vector<int32> created_ids_; |
- std::vector<int32> creation_finished_ids_; |
std::vector<int32> changed_ids_; |
+ std::vector<int32> node_creation_finished_ids_; |
+ std::vector<int32> subtree_creation_finished_ids_; |
std::vector<int32> change_finished_ids_; |
- std::vector<int32> new_root_ids_; |
}; |
} // namespace |
@@ -260,37 +285,44 @@ TEST(AXTreeTest, InvalidReparentingFails) { |
TEST(AXTreeTest, TreeDelegateIsCalled) { |
AXTreeUpdate initial_state; |
- initial_state.nodes.resize(1); |
+ initial_state.nodes.resize(2); |
initial_state.nodes[0].id = 1; |
initial_state.nodes[0].role = AX_ROLE_ROOT_WEB_AREA; |
+ initial_state.nodes[0].child_ids.push_back(2); |
+ initial_state.nodes[1].id = 2; |
AXTree tree(initial_state); |
AXTreeUpdate update; |
update.node_id_to_clear = 1; |
update.nodes.resize(2); |
- update.nodes[0].id = 2; |
+ update.nodes[0].id = 3; |
update.nodes[0].role = AX_ROLE_ROOT_WEB_AREA; |
- update.nodes[0].child_ids.push_back(3); |
- update.nodes[1].id = 3; |
+ update.nodes[0].child_ids.push_back(4); |
+ update.nodes[1].id = 4; |
FakeAXTreeDelegate fake_delegate; |
tree.SetDelegate(&fake_delegate); |
EXPECT_TRUE(tree.Unserialize(update)); |
- ASSERT_EQ(1U, fake_delegate.deleted_ids().size()); |
- EXPECT_EQ(1, fake_delegate.deleted_ids()[0]); |
+ ASSERT_EQ(2U, fake_delegate.deleted_ids().size()); |
+ EXPECT_EQ(2, fake_delegate.deleted_ids()[0]); |
+ EXPECT_EQ(1, fake_delegate.deleted_ids()[1]); |
+ |
+ ASSERT_EQ(1U, fake_delegate.subtree_deleted_ids().size()); |
+ EXPECT_EQ(1, fake_delegate.subtree_deleted_ids()[0]); |
ASSERT_EQ(2U, fake_delegate.created_ids().size()); |
- EXPECT_EQ(2, fake_delegate.created_ids()[0]); |
- EXPECT_EQ(3, fake_delegate.created_ids()[1]); |
+ EXPECT_EQ(3, fake_delegate.created_ids()[0]); |
+ EXPECT_EQ(4, fake_delegate.created_ids()[1]); |
+ |
+ ASSERT_EQ(1U, fake_delegate.subtree_creation_finished_ids().size()); |
+ EXPECT_EQ(3, fake_delegate.subtree_creation_finished_ids()[0]); |
- ASSERT_EQ(2U, fake_delegate.creation_finished_ids().size()); |
- EXPECT_EQ(2, fake_delegate.creation_finished_ids()[0]); |
- EXPECT_EQ(3, fake_delegate.creation_finished_ids()[1]); |
+ ASSERT_EQ(1U, fake_delegate.node_creation_finished_ids().size()); |
+ EXPECT_EQ(4, fake_delegate.node_creation_finished_ids()[0]); |
- ASSERT_EQ(1U, fake_delegate.new_root_ids().size()); |
- EXPECT_EQ(2, fake_delegate.new_root_ids()[0]); |
+ ASSERT_EQ(true, fake_delegate.root_changed()); |
tree.SetDelegate(NULL); |
} |