| Index: ui/accessibility/ax_tree_unittest.cc
|
| diff --git a/ui/accessibility/ax_tree_unittest.cc b/ui/accessibility/ax_tree_unittest.cc
|
| index f5601c26434c69d206b7ceb40e10d9cb0831604f..7dcf59e2a8a51b138a6528f1e238c30ee65c822e 100644
|
| --- a/ui/accessibility/ax_tree_unittest.cc
|
| +++ b/ui/accessibility/ax_tree_unittest.cc
|
| @@ -12,6 +12,47 @@
|
|
|
| namespace ui {
|
|
|
| +namespace {
|
| +
|
| +class FakeAXTreeDelegate : public AXTreeDelegate {
|
| + public:
|
| + virtual void OnNodeWillBeDeleted(AXNode* node) OVERRIDE {
|
| + deleted_ids_.push_back(node->id());
|
| + }
|
| +
|
| + virtual void OnNodeCreated(AXNode* node) OVERRIDE {
|
| + created_ids_.push_back(node->id());
|
| + }
|
| +
|
| + virtual void OnNodeChanged(AXNode* node) OVERRIDE {
|
| + changed_ids_.push_back(node->id());
|
| + }
|
| +
|
| + virtual void OnRootChanged(AXNode* new_root) OVERRIDE {
|
| + new_root_ids_.push_back(new_root->id());
|
| + }
|
| +
|
| + void Reset() {
|
| + deleted_ids_.clear();
|
| + created_ids_.clear();
|
| + changed_ids_.clear();
|
| + new_root_ids_.clear();
|
| + }
|
| +
|
| + const std::vector<int32>& deleted_ids() { return deleted_ids_; }
|
| + const std::vector<int32>& created_ids() { return created_ids_; }
|
| + const std::vector<int32>& changed_ids() { return changed_ids_; }
|
| + const std::vector<int32>& new_root_ids() { return new_root_ids_; }
|
| +
|
| + private:
|
| + std::vector<int32> deleted_ids_;
|
| + std::vector<int32> created_ids_;
|
| + std::vector<int32> changed_ids_;
|
| + std::vector<int32> new_root_ids_;
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| TEST(AXTreeTest, SerializeSimpleAXTree) {
|
| AXNodeData root;
|
| root.id = 1;
|
| @@ -39,27 +80,27 @@ TEST(AXTreeTest, SerializeSimpleAXTree) {
|
| initial_state.nodes.push_back(checkbox);
|
| AXSerializableTree src_tree(initial_state);
|
|
|
| - scoped_ptr<AXTreeSource<AXNode> > tree_source(
|
| + scoped_ptr<AXTreeSource<const AXNode*> > tree_source(
|
| src_tree.CreateTreeSource());
|
| - AXTreeSerializer<AXNode> serializer(tree_source.get());
|
| + AXTreeSerializer<const AXNode*> serializer(tree_source.get());
|
| AXTreeUpdate update;
|
| serializer.SerializeChanges(src_tree.GetRoot(), &update);
|
|
|
| AXTree dst_tree;
|
| ASSERT_TRUE(dst_tree.Unserialize(update));
|
|
|
| - AXNode* root_node = dst_tree.GetRoot();
|
| + const AXNode* root_node = dst_tree.GetRoot();
|
| ASSERT_TRUE(root_node != NULL);
|
| EXPECT_EQ(root.id, root_node->id());
|
| EXPECT_EQ(root.role, root_node->data().role);
|
|
|
| ASSERT_EQ(2, root_node->child_count());
|
|
|
| - AXNode* button_node = root_node->ChildAtIndex(0);
|
| + const AXNode* button_node = root_node->ChildAtIndex(0);
|
| EXPECT_EQ(button.id, button_node->id());
|
| EXPECT_EQ(button.role, button_node->data().role);
|
|
|
| - AXNode* checkbox_node = root_node->ChildAtIndex(1);
|
| + const AXNode* checkbox_node = root_node->ChildAtIndex(1);
|
| EXPECT_EQ(checkbox.id, checkbox_node->id());
|
| EXPECT_EQ(checkbox.role, checkbox_node->data().role);
|
|
|
| @@ -174,4 +215,37 @@ TEST(AXTreeTest, InvalidReparentingFails) {
|
| ASSERT_EQ("Node 3 reparented from 2 to 1", tree.error());
|
| }
|
|
|
| +TEST(AXTreeTest, TreeDelegateIsCalled) {
|
| + AXTreeUpdate initial_state;
|
| + initial_state.nodes.resize(1);
|
| + initial_state.nodes[0].id = 1;
|
| + initial_state.nodes[0].role = AX_ROLE_ROOT_WEB_AREA;
|
| +
|
| + AXTree tree(initial_state);
|
| + AXTreeUpdate update;
|
| + update.node_id_to_clear = 1;
|
| + update.nodes.resize(2);
|
| + update.nodes[0].id = 2;
|
| + update.nodes[0].role = AX_ROLE_ROOT_WEB_AREA;
|
| + update.nodes[0].child_ids.push_back(3);
|
| + update.nodes[1].id = 3;
|
| +
|
| + 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.created_ids().size());
|
| + EXPECT_EQ(2, fake_delegate.created_ids()[0]);
|
| + EXPECT_EQ(3, fake_delegate.created_ids()[1]);
|
| +
|
| + ASSERT_EQ(1U, fake_delegate.new_root_ids().size());
|
| + EXPECT_EQ(2, fake_delegate.new_root_ids()[0]);
|
| +
|
| + tree.SetDelegate(NULL);
|
| +}
|
| +
|
| } // namespace ui
|
|
|