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

Unified Diff: mojo/services/public/cpp/view_manager/tests/view_tree_node_unittest.cc

Issue 338093008: Client side name cleanup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 6 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: mojo/services/public/cpp/view_manager/tests/view_tree_node_unittest.cc
diff --git a/mojo/services/public/cpp/view_manager/tests/view_tree_node_unittest.cc b/mojo/services/public/cpp/view_manager/tests/view_tree_node_unittest.cc
deleted file mode 100644
index d2326dcbf5fa3ec69983f0b3485c0b67d4fdb020..0000000000000000000000000000000000000000
--- a/mojo/services/public/cpp/view_manager/tests/view_tree_node_unittest.cc
+++ /dev/null
@@ -1,571 +0,0 @@
-// Copyright 2014 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 "mojo/services/public/cpp/view_manager/view_tree_node.h"
-
-#include "base/logging.h"
-#include "base/strings/stringprintf.h"
-#include "mojo/services/public/cpp/view_manager/lib/view_tree_node_private.h"
-#include "mojo/services/public/cpp/view_manager/util.h"
-#include "mojo/services/public/cpp/view_manager/view_tree_node_observer.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace mojo {
-namespace view_manager {
-
-// ViewTreeNode ----------------------------------------------------------------
-
-typedef testing::Test ViewTreeNodeTest;
-
-// Subclass with public ctor/dtor.
-class TestViewTreeNode : public ViewTreeNode {
- public:
- TestViewTreeNode() {
- ViewTreeNodePrivate(this).set_id(1);
- }
- ~TestViewTreeNode() {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestViewTreeNode);
-};
-
-TEST_F(ViewTreeNodeTest, AddChild) {
- TestViewTreeNode v1;
- TestViewTreeNode v11;
- v1.AddChild(&v11);
- EXPECT_EQ(1U, v1.children().size());
-}
-
-TEST_F(ViewTreeNodeTest, RemoveChild) {
- TestViewTreeNode v1;
- TestViewTreeNode v11;
- v1.AddChild(&v11);
- EXPECT_EQ(1U, v1.children().size());
- v1.RemoveChild(&v11);
- EXPECT_EQ(0U, v1.children().size());
-}
-
-TEST_F(ViewTreeNodeTest, Reparent) {
- TestViewTreeNode v1;
- TestViewTreeNode v2;
- TestViewTreeNode v11;
- v1.AddChild(&v11);
- EXPECT_EQ(1U, v1.children().size());
- v2.AddChild(&v11);
- EXPECT_EQ(1U, v2.children().size());
- EXPECT_EQ(0U, v1.children().size());
-}
-
-TEST_F(ViewTreeNodeTest, Contains) {
- TestViewTreeNode v1;
-
- // Direct descendant.
- TestViewTreeNode v11;
- v1.AddChild(&v11);
- EXPECT_TRUE(v1.Contains(&v11));
-
- // Indirect descendant.
- TestViewTreeNode v111;
- v11.AddChild(&v111);
- EXPECT_TRUE(v1.Contains(&v111));
-}
-
-TEST_F(ViewTreeNodeTest, GetChildById) {
- TestViewTreeNode v1;
- ViewTreeNodePrivate(&v1).set_id(1);
- TestViewTreeNode v11;
- ViewTreeNodePrivate(&v11).set_id(11);
- v1.AddChild(&v11);
- TestViewTreeNode v111;
- ViewTreeNodePrivate(&v111).set_id(111);
- v11.AddChild(&v111);
-
- // Find direct & indirect descendents.
- EXPECT_EQ(&v11, v1.GetChildById(v11.id()));
- EXPECT_EQ(&v111, v1.GetChildById(v111.id()));
-}
-
-// ViewTreeNodeObserver --------------------------------------------------------
-
-typedef testing::Test ViewTreeNodeObserverTest;
-
-bool TreeChangeParamsMatch(const ViewTreeNodeObserver::TreeChangeParams& lhs,
- const ViewTreeNodeObserver::TreeChangeParams& rhs) {
- return lhs.target == rhs.target && lhs.old_parent == rhs.old_parent &&
- lhs.new_parent == rhs.new_parent && lhs.receiver == rhs.receiver &&
- lhs.phase == rhs.phase;
-}
-
-class TreeChangeObserver : public ViewTreeNodeObserver {
- public:
- explicit TreeChangeObserver(ViewTreeNode* observee) : observee_(observee) {
- observee_->AddObserver(this);
- }
- virtual ~TreeChangeObserver() {
- observee_->RemoveObserver(this);
- }
-
- void Reset() {
- received_params_.clear();
- }
-
- const std::vector<TreeChangeParams>& received_params() {
- return received_params_;
- }
-
- private:
- // Overridden from ViewTreeNodeObserver:
- virtual void OnTreeChange(const TreeChangeParams& params) OVERRIDE {
- received_params_.push_back(params);
- }
-
- ViewTreeNode* observee_;
- std::vector<TreeChangeParams> received_params_;
-
- DISALLOW_COPY_AND_ASSIGN(TreeChangeObserver);
-};
-
-// Adds/Removes v11 to v1.
-TEST_F(ViewTreeNodeObserverTest, TreeChange_SimpleAddRemove) {
- TestViewTreeNode v1;
- TreeChangeObserver o1(&v1);
- EXPECT_TRUE(o1.received_params().empty());
-
- TestViewTreeNode v11;
- TreeChangeObserver o11(&v11);
- EXPECT_TRUE(o11.received_params().empty());
-
- // Add.
-
- v1.AddChild(&v11);
-
- EXPECT_EQ(2U, o1.received_params().size());
- ViewTreeNodeObserver::TreeChangeParams p1;
- p1.target = &v11;
- p1.receiver = &v1;
- p1.old_parent = NULL;
- p1.new_parent = &v1;
- p1.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().back()));
-
- EXPECT_EQ(2U, o11.received_params().size());
- ViewTreeNodeObserver::TreeChangeParams p11 = p1;
- p11.receiver = &v11;
- p11.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p11, o11.received_params().front()));
- p11.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p11, o11.received_params().back()));
-
- o1.Reset();
- o11.Reset();
- EXPECT_TRUE(o1.received_params().empty());
- EXPECT_TRUE(o11.received_params().empty());
-
- // Remove.
-
- v1.RemoveChild(&v11);
-
- EXPECT_EQ(2U, o1.received_params().size());
- p1.target = &v11;
- p1.receiver = &v1;
- p1.old_parent = &v1;
- p1.new_parent = NULL;
- p1.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().front()));
-
- EXPECT_EQ(2U, o11.received_params().size());
- p11 = p1;
- p11.receiver = &v11;
- EXPECT_TRUE(TreeChangeParamsMatch(p11, o11.received_params().front()));
- p11.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p11, o11.received_params().back()));
-}
-
-// Creates these two trees:
-// v1
-// +- v11
-// v111
-// +- v1111
-// +- v1112
-// Then adds/removes v111 from v11.
-TEST_F(ViewTreeNodeObserverTest, TreeChange_NestedAddRemove) {
- TestViewTreeNode v1, v11, v111, v1111, v1112;
-
- // Root tree.
- v1.AddChild(&v11);
-
- // Tree to be attached.
- v111.AddChild(&v1111);
- v111.AddChild(&v1112);
-
- TreeChangeObserver o1(&v1), o11(&v11), o111(&v111), o1111(&v1111),
- o1112(&v1112);
- ViewTreeNodeObserver::TreeChangeParams p1, p11, p111, p1111, p1112;
-
- // Add.
-
- v11.AddChild(&v111);
-
- EXPECT_EQ(2U, o1.received_params().size());
- p1.target = &v111;
- p1.receiver = &v1;
- p1.old_parent = NULL;
- p1.new_parent = &v11;
- p1.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().back()));
-
- EXPECT_EQ(2U, o11.received_params().size());
- p11 = p1;
- p11.receiver = &v11;
- EXPECT_TRUE(TreeChangeParamsMatch(p11, o11.received_params().back()));
-
- EXPECT_EQ(2U, o111.received_params().size());
- p111 = p11;
- p111.receiver = &v111;
- p111.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().front()));
- p111.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().back()));
-
- EXPECT_EQ(2U, o1111.received_params().size());
- p1111 = p111;
- p1111.receiver = &v1111;
- p1111.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p1111, o1111.received_params().front()));
- p1111.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p1111, o1111.received_params().back()));
-
- EXPECT_EQ(2U, o1112.received_params().size());
- p1112 = p111;
- p1112.receiver = &v1112;
- p1112.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p1112, o1112.received_params().front()));
- p1112.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p1112, o1112.received_params().back()));
-
- // Remove.
- o1.Reset();
- o11.Reset();
- o111.Reset();
- o1111.Reset();
- o1112.Reset();
- EXPECT_TRUE(o1.received_params().empty());
- EXPECT_TRUE(o11.received_params().empty());
- EXPECT_TRUE(o111.received_params().empty());
- EXPECT_TRUE(o1111.received_params().empty());
- EXPECT_TRUE(o1112.received_params().empty());
-
- v11.RemoveChild(&v111);
-
- EXPECT_EQ(2U, o1.received_params().size());
- p1.target = &v111;
- p1.receiver = &v1;
- p1.old_parent = &v11;
- p1.new_parent = NULL;
- p1.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().front()));
-
- EXPECT_EQ(2U, o11.received_params().size());
- p11 = p1;
- p11.receiver = &v11;
- EXPECT_TRUE(TreeChangeParamsMatch(p11, o11.received_params().front()));
-
- EXPECT_EQ(2U, o111.received_params().size());
- p111 = p11;
- p111.receiver = &v111;
- p111.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().front()));
- p111.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().back()));
-
- EXPECT_EQ(2U, o1111.received_params().size());
- p1111 = p111;
- p1111.receiver = &v1111;
- p1111.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p1111, o1111.received_params().front()));
- p1111.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p1111, o1111.received_params().back()));
-
- EXPECT_EQ(2U, o1112.received_params().size());
- p1112 = p111;
- p1112.receiver = &v1112;
- p1112.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p1112, o1112.received_params().front()));
- p1112.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p1112, o1112.received_params().back()));
-}
-
-TEST_F(ViewTreeNodeObserverTest, TreeChange_Reparent) {
- TestViewTreeNode v1, v11, v12, v111;
- v1.AddChild(&v11);
- v1.AddChild(&v12);
- v11.AddChild(&v111);
-
- TreeChangeObserver o1(&v1), o11(&v11), o12(&v12), o111(&v111);
-
- // Reparent.
- v12.AddChild(&v111);
-
- // v1 (root) should see both changing and changed notifications.
- EXPECT_EQ(4U, o1.received_params().size());
- ViewTreeNodeObserver::TreeChangeParams p1;
- p1.target = &v111;
- p1.receiver = &v1;
- p1.old_parent = &v11;
- p1.new_parent = &v12;
- p1.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().front()));
- p1.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().back()));
-
- // v11 should see changing notifications.
- EXPECT_EQ(2U, o11.received_params().size());
- ViewTreeNodeObserver::TreeChangeParams p11;
- p11 = p1;
- p11.receiver = &v11;
- p11.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p11, o11.received_params().front()));
-
- // v12 should see changed notifications.
- EXPECT_EQ(2U, o12.received_params().size());
- ViewTreeNodeObserver::TreeChangeParams p12;
- p12 = p1;
- p12.receiver = &v12;
- p12.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p12, o12.received_params().back()));
-
- // v111 should see both changing and changed notifications.
- EXPECT_EQ(2U, o111.received_params().size());
- ViewTreeNodeObserver::TreeChangeParams p111;
- p111 = p1;
- p111.receiver = &v111;
- p111.phase = ViewTreeNodeObserver::DISPOSITION_CHANGING;
- EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().front()));
- p111.phase = ViewTreeNodeObserver::DISPOSITION_CHANGED;
- EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().back()));
-}
-
-namespace {
-
-class OrderChangeObserver : public ViewTreeNodeObserver {
- public:
- struct Change {
- ViewTreeNode* node;
- ViewTreeNode* relative_node;
- OrderDirection direction;
- DispositionChangePhase phase;
- };
- typedef std::vector<Change> Changes;
-
- explicit OrderChangeObserver(ViewTreeNode* observee) : observee_(observee) {
- observee_->AddObserver(this);
- }
- virtual ~OrderChangeObserver() {
- observee_->RemoveObserver(this);
- }
-
- Changes GetAndClearChanges() {
- Changes changes;
- changes_.swap(changes);
- return changes;
- }
-
- private:
- // Overridden from ViewTreeNodeObserver:
- virtual void OnNodeReordered(ViewTreeNode* node,
- ViewTreeNode* relative_node,
- OrderDirection direction,
- DispositionChangePhase phase) OVERRIDE {
- Change change;
- change.node = node;
- change.relative_node = relative_node;
- change.direction = direction;
- change.phase = phase;
- changes_.push_back(change);
- }
-
- ViewTreeNode* observee_;
- Changes changes_;
-
- DISALLOW_COPY_AND_ASSIGN(OrderChangeObserver);
-};
-
-} // namespace
-
-TEST_F(ViewTreeNodeObserverTest, Order) {
- TestViewTreeNode v1, v11, v12, v13;
- v1.AddChild(&v11);
- v1.AddChild(&v12);
- v1.AddChild(&v13);
-
- // Order: v11, v12, v13
- EXPECT_EQ(3U, v1.children().size());
- EXPECT_EQ(&v11, v1.children().front());
- EXPECT_EQ(&v13, v1.children().back());
-
- {
- OrderChangeObserver observer(&v11);
-
- // Move v11 to front.
- // Resulting order: v12, v13, v11
- v11.MoveToFront();
- EXPECT_EQ(&v12, v1.children().front());
- EXPECT_EQ(&v11, v1.children().back());
-
- OrderChangeObserver::Changes changes = observer.GetAndClearChanges();
- EXPECT_EQ(2U, changes.size());
- EXPECT_EQ(&v11, changes[0].node);
- EXPECT_EQ(&v13, changes[0].relative_node);
- EXPECT_EQ(ORDER_ABOVE, changes[0].direction);
- EXPECT_EQ(ViewTreeNodeObserver::DISPOSITION_CHANGING, changes[0].phase);
-
- EXPECT_EQ(&v11, changes[1].node);
- EXPECT_EQ(&v13, changes[1].relative_node);
- EXPECT_EQ(ORDER_ABOVE, changes[1].direction);
- EXPECT_EQ(ViewTreeNodeObserver::DISPOSITION_CHANGED, changes[1].phase);
- }
-
- {
- OrderChangeObserver observer(&v11);
-
- // Move v11 to back.
- // Resulting order: v11, v12, v13
- v11.MoveToBack();
- EXPECT_EQ(&v11, v1.children().front());
- EXPECT_EQ(&v13, v1.children().back());
-
- OrderChangeObserver::Changes changes = observer.GetAndClearChanges();
- EXPECT_EQ(2U, changes.size());
- EXPECT_EQ(&v11, changes[0].node);
- EXPECT_EQ(&v12, changes[0].relative_node);
- EXPECT_EQ(ORDER_BELOW, changes[0].direction);
- EXPECT_EQ(ViewTreeNodeObserver::DISPOSITION_CHANGING, changes[0].phase);
-
- EXPECT_EQ(&v11, changes[1].node);
- EXPECT_EQ(&v12, changes[1].relative_node);
- EXPECT_EQ(ORDER_BELOW, changes[1].direction);
- EXPECT_EQ(ViewTreeNodeObserver::DISPOSITION_CHANGED, changes[1].phase);
- }
-
- {
- OrderChangeObserver observer(&v11);
-
- // Move v11 above v12.
- // Resulting order: v12. v11, v13
- v11.Reorder(&v12, ORDER_ABOVE);
- EXPECT_EQ(&v12, v1.children().front());
- EXPECT_EQ(&v13, v1.children().back());
-
- OrderChangeObserver::Changes changes = observer.GetAndClearChanges();
- EXPECT_EQ(2U, changes.size());
- EXPECT_EQ(&v11, changes[0].node);
- EXPECT_EQ(&v12, changes[0].relative_node);
- EXPECT_EQ(ORDER_ABOVE, changes[0].direction);
- EXPECT_EQ(ViewTreeNodeObserver::DISPOSITION_CHANGING, changes[0].phase);
-
- EXPECT_EQ(&v11, changes[1].node);
- EXPECT_EQ(&v12, changes[1].relative_node);
- EXPECT_EQ(ORDER_ABOVE, changes[1].direction);
- EXPECT_EQ(ViewTreeNodeObserver::DISPOSITION_CHANGED, changes[1].phase);
- }
-
- {
- OrderChangeObserver observer(&v11);
-
- // Move v11 below v12.
- // Resulting order: v11, v12, v13
- v11.Reorder(&v12, ORDER_BELOW);
- EXPECT_EQ(&v11, v1.children().front());
- EXPECT_EQ(&v13, v1.children().back());
-
- OrderChangeObserver::Changes changes = observer.GetAndClearChanges();
- EXPECT_EQ(2U, changes.size());
- EXPECT_EQ(&v11, changes[0].node);
- EXPECT_EQ(&v12, changes[0].relative_node);
- EXPECT_EQ(ORDER_BELOW, changes[0].direction);
- EXPECT_EQ(ViewTreeNodeObserver::DISPOSITION_CHANGING, changes[0].phase);
-
- EXPECT_EQ(&v11, changes[1].node);
- EXPECT_EQ(&v12, changes[1].relative_node);
- EXPECT_EQ(ORDER_BELOW, changes[1].direction);
- EXPECT_EQ(ViewTreeNodeObserver::DISPOSITION_CHANGED, changes[1].phase);
- }
-}
-
-namespace {
-
-typedef std::vector<std::string> Changes;
-
-std::string NodeIdToString(Id id) {
- return (id == 0) ? "null" :
- base::StringPrintf("%d,%d", HiWord(id), LoWord(id));
-}
-
-std::string RectToString(const gfx::Rect& rect) {
- return base::StringPrintf("%d,%d %dx%d",
- rect.x(), rect.y(), rect.width(), rect.height());
-}
-
-std::string PhaseToString(ViewTreeNodeObserver::DispositionChangePhase phase) {
- return phase == ViewTreeNodeObserver::DISPOSITION_CHANGING ?
- "changing" : "changed";
-}
-
-class BoundsChangeObserver : public ViewTreeNodeObserver {
- public:
- explicit BoundsChangeObserver(ViewTreeNode* node) : node_(node) {
- node_->AddObserver(this);
- }
- virtual ~BoundsChangeObserver() {
- node_->RemoveObserver(this);
- }
-
- Changes GetAndClearChanges() {
- Changes changes;
- changes.swap(changes_);
- return changes;
- }
-
- private:
- // Overridden from ViewTreeNodeObserver:
- virtual void OnNodeBoundsChange(ViewTreeNode* node,
- const gfx::Rect& old_bounds,
- const gfx::Rect& new_bounds,
- DispositionChangePhase phase) OVERRIDE {
- changes_.push_back(
- base::StringPrintf(
- "node=%s old_bounds=%s new_bounds=%s phase=%s",
- NodeIdToString(node->id()).c_str(),
- RectToString(old_bounds).c_str(),
- RectToString(new_bounds).c_str(),
- PhaseToString(phase).c_str()));
- }
-
- ViewTreeNode* node_;
- Changes changes_;
-
- DISALLOW_COPY_AND_ASSIGN(BoundsChangeObserver);
-};
-
-} // namespace
-
-TEST_F(ViewTreeNodeObserverTest, SetBounds) {
- TestViewTreeNode v1;
- {
- BoundsChangeObserver observer(&v1);
- v1.SetBounds(gfx::Rect(0, 0, 100, 100));
-
- Changes changes = observer.GetAndClearChanges();
- EXPECT_EQ(2U, changes.size());
- EXPECT_EQ(
- "node=0,1 old_bounds=0,0 0x0 new_bounds=0,0 100x100 phase=changing",
- changes[0]);
- EXPECT_EQ(
- "node=0,1 old_bounds=0,0 0x0 new_bounds=0,0 100x100 phase=changed",
- changes[1]);
- }
-}
-
-} // namespace view_manager
-} // namespace mojo
« no previous file with comments | « mojo/services/public/cpp/view_manager/tests/view_tree_host_unittest.cc ('k') | mojo/services/public/cpp/view_manager/types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698