| Index: ui/v2/src/view_unittest.cc
|
| diff --git a/ui/v2/src/view_unittest.cc b/ui/v2/src/view_unittest.cc
|
| deleted file mode 100644
|
| index b2971fac1fe89890ebff05d7bde2a0c73cdf2855..0000000000000000000000000000000000000000
|
| --- a/ui/v2/src/view_unittest.cc
|
| +++ /dev/null
|
| @@ -1,462 +0,0 @@
|
| -// Copyright (c) 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 "ui/v2/public/view.h"
|
| -
|
| -#include "base/logging.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "ui/compositor/layer.h"
|
| -#include "ui/compositor/layer_type.h"
|
| -
|
| -namespace v2 {
|
| -
|
| -// View ------------------------------------------------------------------------
|
| -
|
| -typedef testing::Test ViewTest;
|
| -
|
| -TEST_F(ViewTest, AddChild) {
|
| - View v1;
|
| - View* v11 = new View;
|
| - v1.AddChild(v11);
|
| - EXPECT_EQ(1U, v1.children().size());
|
| -}
|
| -
|
| -TEST_F(ViewTest, RemoveChild) {
|
| - View v1;
|
| - View* v11 = new View;
|
| - v1.AddChild(v11);
|
| - EXPECT_EQ(1U, v1.children().size());
|
| - v1.RemoveChild(v11);
|
| - EXPECT_EQ(0U, v1.children().size());
|
| -}
|
| -
|
| -TEST_F(ViewTest, Reparent) {
|
| - View v1;
|
| - View v2;
|
| - View* v11 = new View;
|
| - 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(ViewTest, Contains) {
|
| - View v1;
|
| -
|
| - // Direct descendant.
|
| - View* v11 = new View;
|
| - v1.AddChild(v11);
|
| - EXPECT_TRUE(v1.Contains(v11));
|
| -
|
| - // Indirect descendant.
|
| - View* v111 = new View;
|
| - v11->AddChild(v111);
|
| - EXPECT_TRUE(v1.Contains(v111));
|
| -}
|
| -
|
| -TEST_F(ViewTest, Stacking) {
|
| - View v1;
|
| - View* v11 = new View;
|
| - View* v12 = new View;
|
| - View* v13 = new View;
|
| - 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());
|
| -
|
| - // Move v11 to front.
|
| - // Resulting order: v12, v13, v11
|
| - v1.StackChildAtTop(v11);
|
| - EXPECT_EQ(v12, v1.children().front());
|
| - EXPECT_EQ(v11, v1.children().back());
|
| -
|
| - // Move v11 to back.
|
| - // Resulting order: v11, v12, v13
|
| - v1.StackChildAtBottom(v11);
|
| - EXPECT_EQ(v11, v1.children().front());
|
| - EXPECT_EQ(v13, v1.children().back());
|
| -
|
| - // Move v11 above v12.
|
| - // Resulting order: v12. v11, v13
|
| - v1.StackChildAbove(v11, v12);
|
| - EXPECT_EQ(v12, v1.children().front());
|
| - EXPECT_EQ(v13, v1.children().back());
|
| -
|
| - // Move v11 below v12.
|
| - // Resulting order: v11, v12, v13
|
| - v1.StackChildBelow(v11, v12);
|
| - EXPECT_EQ(v11, v1.children().front());
|
| - EXPECT_EQ(v13, v1.children().back());
|
| -}
|
| -
|
| -TEST_F(ViewTest, Layer) {
|
| - View v1;
|
| - v1.CreateLayer(ui::LAYER_NOT_DRAWN);
|
| - EXPECT_TRUE(v1.HasLayer());
|
| - v1.DestroyLayer();
|
| - EXPECT_FALSE(v1.HasLayer());
|
| -
|
| - v1.CreateLayer(ui::LAYER_NOT_DRAWN);
|
| - scoped_ptr<ui::Layer>(v1.AcquireLayer());
|
| - // Acquiring the layer transfers ownership to the scoped_ptr above, so this
|
| - // test passes if it doesn't crash.
|
| -}
|
| -
|
| -// ViewObserver ----------------------------------------------------------------
|
| -
|
| -typedef testing::Test ViewObserverTest;
|
| -
|
| -bool TreeChangeParamsMatch(const ViewObserver::TreeChangeParams& lhs,
|
| - const ViewObserver::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 ViewObserver {
|
| - public:
|
| - explicit TreeChangeObserver(View* 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 ViewObserver:
|
| - virtual void OnViewTreeChange(const TreeChangeParams& params) override {
|
| - received_params_.push_back(params);
|
| - }
|
| -
|
| - View* observee_;
|
| - std::vector<TreeChangeParams> received_params_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TreeChangeObserver);
|
| -};
|
| -
|
| -// Adds/Removes v11 to v1.
|
| -TEST_F(ViewObserverTest, TreeChange_SimpleAddRemove) {
|
| - View v1;
|
| - TreeChangeObserver o1(&v1);
|
| - EXPECT_TRUE(o1.received_params().empty());
|
| -
|
| - View v11;
|
| - v11.set_owned_by_parent(false);
|
| - TreeChangeObserver o11(&v11);
|
| - EXPECT_TRUE(o11.received_params().empty());
|
| -
|
| - // Add.
|
| -
|
| - v1.AddChild(&v11);
|
| -
|
| - EXPECT_EQ(1U, o1.received_params().size());
|
| - ViewObserver::TreeChangeParams p1;
|
| - p1.target = &v11;
|
| - p1.receiver = &v1;
|
| - p1.old_parent = NULL;
|
| - p1.new_parent = &v1;
|
| - p1.phase = ViewObserver::DISPOSITION_CHANGED;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().back()));
|
| -
|
| - EXPECT_EQ(2U, o11.received_params().size());
|
| - ViewObserver::TreeChangeParams p11 = p1;
|
| - p11.receiver = &v11;
|
| - p11.phase = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p11, o11.received_params().front()));
|
| - p11.phase = ViewObserver::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(1U, o1.received_params().size());
|
| - p1.target = &v11;
|
| - p1.receiver = &v1;
|
| - p1.old_parent = &v1;
|
| - p1.new_parent = NULL;
|
| - p1.phase = ViewObserver::DISPOSITION_CHANGING;
|
| - 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().front()));
|
| - p11.phase = ViewObserver::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(ViewObserverTest, TreeChange_NestedAddRemove) {
|
| - View v1, v11, v111, v1111, v1112;
|
| -
|
| - // Root tree.
|
| - v11.set_owned_by_parent(false);
|
| - v1.AddChild(&v11);
|
| -
|
| - // Tree to be attached.
|
| - v111.set_owned_by_parent(false);
|
| - v1111.set_owned_by_parent(false);
|
| - v111.AddChild(&v1111);
|
| - v1112.set_owned_by_parent(false);
|
| - v111.AddChild(&v1112);
|
| -
|
| - TreeChangeObserver o1(&v1), o11(&v11), o111(&v111), o1111(&v1111),
|
| - o1112(&v1112);
|
| - ViewObserver::TreeChangeParams p1, p11, p111, p1111, p1112;
|
| -
|
| - // Add.
|
| -
|
| - v11.AddChild(&v111);
|
| -
|
| - EXPECT_EQ(1U, o1.received_params().size());
|
| - p1.target = &v111;
|
| - p1.receiver = &v1;
|
| - p1.old_parent = NULL;
|
| - p1.new_parent = &v11;
|
| - p1.phase = ViewObserver::DISPOSITION_CHANGED;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().back()));
|
| -
|
| - EXPECT_EQ(1U, 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 = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().front()));
|
| - p111.phase = ViewObserver::DISPOSITION_CHANGED;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().back()));
|
| -
|
| - EXPECT_EQ(2U, o1111.received_params().size());
|
| - p1111 = p111;
|
| - p1111.receiver = &v1111;
|
| - p1111.phase = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1111, o1111.received_params().front()));
|
| - p1111.phase = ViewObserver::DISPOSITION_CHANGED;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1111, o1111.received_params().back()));
|
| -
|
| - EXPECT_EQ(2U, o1112.received_params().size());
|
| - p1112 = p111;
|
| - p1112.receiver = &v1112;
|
| - p1112.phase = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1112, o1112.received_params().front()));
|
| - p1112.phase = ViewObserver::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(1U, o1.received_params().size());
|
| - p1.target = &v111;
|
| - p1.receiver = &v1;
|
| - p1.old_parent = &v11;
|
| - p1.new_parent = NULL;
|
| - p1.phase = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().back()));
|
| -
|
| - EXPECT_EQ(1U, 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 = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().front()));
|
| - p111.phase = ViewObserver::DISPOSITION_CHANGED;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().back()));
|
| -
|
| - EXPECT_EQ(2U, o1111.received_params().size());
|
| - p1111 = p111;
|
| - p1111.receiver = &v1111;
|
| - p1111.phase = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1111, o1111.received_params().front()));
|
| - p1111.phase = ViewObserver::DISPOSITION_CHANGED;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1111, o1111.received_params().back()));
|
| -
|
| - EXPECT_EQ(2U, o1112.received_params().size());
|
| - p1112 = p111;
|
| - p1112.receiver = &v1112;
|
| - p1112.phase = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1112, o1112.received_params().front()));
|
| - p1112.phase = ViewObserver::DISPOSITION_CHANGED;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1112, o1112.received_params().back()));
|
| -}
|
| -
|
| -TEST_F(ViewObserverTest, TreeChange_Reparent) {
|
| - View v1, v11, v12, v111;
|
| - v11.set_owned_by_parent(false);
|
| - v111.set_owned_by_parent(false);
|
| - v12.set_owned_by_parent(false);
|
| - 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(2U, o1.received_params().size());
|
| - ViewObserver::TreeChangeParams p1;
|
| - p1.target = &v111;
|
| - p1.receiver = &v1;
|
| - p1.old_parent = &v11;
|
| - p1.new_parent = &v12;
|
| - p1.phase = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().front()));
|
| - p1.phase = ViewObserver::DISPOSITION_CHANGED;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p1, o1.received_params().back()));
|
| -
|
| - // v11 should see changing notifications.
|
| - EXPECT_EQ(1U, o11.received_params().size());
|
| - ViewObserver::TreeChangeParams p11;
|
| - p11 = p1;
|
| - p11.receiver = &v11;
|
| - p11.phase = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p11, o11.received_params().back()));
|
| -
|
| - // v12 should see changed notifications.
|
| - EXPECT_EQ(1U, o12.received_params().size());
|
| - ViewObserver::TreeChangeParams p12;
|
| - p12 = p1;
|
| - p12.receiver = &v12;
|
| - p12.phase = ViewObserver::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());
|
| - ViewObserver::TreeChangeParams p111;
|
| - p111 = p1;
|
| - p111.receiver = &v111;
|
| - p111.phase = ViewObserver::DISPOSITION_CHANGING;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().front()));
|
| - p111.phase = ViewObserver::DISPOSITION_CHANGED;
|
| - EXPECT_TRUE(TreeChangeParamsMatch(p111, o111.received_params().back()));
|
| -}
|
| -
|
| -class VisibilityObserver : public ViewObserver {
|
| - public:
|
| - typedef std::pair<ViewObserver::DispositionChangePhase, bool> LogEntry;
|
| - typedef std::vector<LogEntry> LogEntries;
|
| -
|
| - VisibilityObserver(View* view) : view_(view) {
|
| - view_->AddObserver(this);
|
| - }
|
| - virtual ~VisibilityObserver() {
|
| - view_->RemoveObserver(this);
|
| - }
|
| -
|
| - const LogEntries& log_entries() const { return log_entries_; }
|
| -
|
| - private:
|
| - // Overridden from ViewObserver:
|
| - virtual void OnViewVisibilityChange(
|
| - View* view,
|
| - ViewObserver::DispositionChangePhase phase) override {
|
| - DCHECK_EQ(view_, view);
|
| - log_entries_.push_back(std::make_pair(phase, view->visible()));
|
| - }
|
| -
|
| - View* view_;
|
| - LogEntries log_entries_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(VisibilityObserver);
|
| -};
|
| -
|
| -TEST_F(ViewObserverTest, VisibilityChange) {
|
| - View v1; // Starts out visible.
|
| -
|
| - VisibilityObserver o1(&v1);
|
| -
|
| - v1.SetVisible(false);
|
| -
|
| - EXPECT_EQ(2U, o1.log_entries().size());
|
| - EXPECT_EQ(ViewObserver::DISPOSITION_CHANGING, o1.log_entries().front().first);
|
| - EXPECT_EQ(o1.log_entries().front().second, true);
|
| - EXPECT_EQ(ViewObserver::DISPOSITION_CHANGED, o1.log_entries().back().first);
|
| - EXPECT_EQ(o1.log_entries().back().second, false);
|
| -}
|
| -
|
| -class BoundsObserver : public ViewObserver {
|
| - public:
|
| - typedef std::pair<gfx::Rect, gfx::Rect> BoundsChange;
|
| - typedef std::vector<BoundsChange> BoundsChanges;
|
| -
|
| - explicit BoundsObserver(View* view) : view_(view) {
|
| - view_->AddObserver(this);
|
| - }
|
| - virtual ~BoundsObserver() {
|
| - view_->RemoveObserver(this);
|
| - }
|
| -
|
| - const BoundsChanges& bounds_changes() const { return bounds_changes_; }
|
| -
|
| - private:
|
| - virtual void OnViewBoundsChanged(View* view,
|
| - const gfx::Rect& old_bounds,
|
| - const gfx::Rect& new_bounds) override {
|
| - DCHECK_EQ(view_, view);
|
| - bounds_changes_.push_back(std::make_pair(old_bounds, new_bounds));
|
| - }
|
| -
|
| - View* view_;
|
| - BoundsChanges bounds_changes_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BoundsObserver);
|
| -};
|
| -
|
| -TEST_F(ViewObserverTest, BoundsChanged) {
|
| - View v1;
|
| - BoundsObserver o1(&v1);
|
| -
|
| - gfx::Rect new_bounds(0, 0, 10, 10);
|
| -
|
| - v1.SetBounds(new_bounds);
|
| - EXPECT_EQ(1U, o1.bounds_changes().size());
|
| - EXPECT_EQ(gfx::Rect(), o1.bounds_changes().front().first);
|
| - EXPECT_EQ(new_bounds, o1.bounds_changes().front().second);
|
| -}
|
| -
|
| -} // namespace v2
|
|
|