diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-22 08:59:03 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-22 08:59:03 +0000 |
commit | 4b02bbca3c52f2556078aa3dcb48fdc8a34136be (patch) | |
tree | abe63966d09ac5514b70c181064f4dcf5deff884 /ui/accessibility/ax_tree_unittest.cc | |
parent | 389969ede9fbb20766f2509d1d457f1b80bfd667 (diff) | |
download | chromium_src-4b02bbca3c52f2556078aa3dcb48fdc8a34136be.zip chromium_src-4b02bbca3c52f2556078aa3dcb48fdc8a34136be.tar.gz chromium_src-4b02bbca3c52f2556078aa3dcb48fdc8a34136be.tar.bz2 |
First step to move common accessibility code out of content.
This changelist defines new classes and types for
accessibility in ui/accessibility. Subsequent changes will
refactor code inside content/ to inherit from AXTree and
AXNode, then we can start exposing the accessibility tree
outside of content/.
In addition, we can now use these same types in Views
accessibility and share more code.
BUG=316726
Review URL: https://codereview.chromium.org/67283004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236733 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/accessibility/ax_tree_unittest.cc')
-rw-r--r-- | ui/accessibility/ax_tree_unittest.cc | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/ui/accessibility/ax_tree_unittest.cc b/ui/accessibility/ax_tree_unittest.cc new file mode 100644 index 0000000..3f11899 --- /dev/null +++ b/ui/accessibility/ax_tree_unittest.cc @@ -0,0 +1,61 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/memory/scoped_ptr.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/accessibility/ax_node.h" +#include "ui/accessibility/ax_serializable_tree.h" +#include "ui/accessibility/ax_tree.h" +#include "ui/accessibility/ax_tree_serializer.h" + +namespace ui { + +TEST(AXTreeTest, TestSerialize) { + AXNodeData root; + root.id = 1; + root.role = AX_ROLE_ROOT_WEB_AREA; + root.child_ids.push_back(2); + root.child_ids.push_back(3); + + AXNodeData button; + button.id = 2; + button.role = AX_ROLE_BUTTON; + button.state = 0; + + AXNodeData checkbox; + checkbox.id = 3; + checkbox.role = AX_ROLE_CHECK_BOX; + + AXTreeUpdate initial_state; + initial_state.nodes.push_back(root); + initial_state.nodes.push_back(button); + initial_state.nodes.push_back(checkbox); + AXSerializableTree src_tree(initial_state); + + scoped_ptr<AXTreeSource<AXNode> > tree_source( + src_tree.CreateTreeSource()); + AXTreeSerializer<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(); + 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); + EXPECT_EQ(button.id, button_node->id()); + EXPECT_EQ(button.role, button_node->data().role); + + AXNode* checkbox_node = root_node->ChildAtIndex(1); + EXPECT_EQ(checkbox.id, checkbox_node->id()); + EXPECT_EQ(checkbox.role, checkbox_node->data().role); +} + +} // namespace ui |