Index: ui/views/view_unittest.cc |
=================================================================== |
--- ui/views/view_unittest.cc (revision 0) |
+++ ui/views/view_unittest.cc (revision 0) |
@@ -0,0 +1,204 @@ |
+// Copyright (c) 2011 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 <algorithm> |
+ |
+#include "gfx/canvas.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+#include "ui/views/view.h" |
+#include "ui/views/widget/widget.h" |
+ |
+namespace ui { |
+ |
+class ViewTest : public testing::Test { |
+ public: |
+ ViewTest() {} |
+ virtual ~ViewTest() {} |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(ViewTest); |
+}; |
+ |
+TEST_F(ViewTest, SizeAndDisposition) { |
+ View v; |
+ EXPECT_TRUE(v.bounds().IsEmpty()); |
+ EXPECT_TRUE(v.visible()); |
+ |
+ v.SetBoundsRect(gfx::Rect(10, 10, 200, 200)); |
+ EXPECT_EQ(200, v.width()); |
+ |
+ EXPECT_TRUE(v.GetPreferredSize().IsEmpty()); |
+} |
+ |
+TEST_F(ViewTest, TreeOperations) { |
+ View v; |
+ EXPECT_EQ(NULL, v.GetWidget()); |
+ EXPECT_EQ(0, v.child_count()); |
+ |
+ View child1; |
+ v.AddChildView(&child1); |
+ EXPECT_EQ(1, v.child_count()); |
+ EXPECT_EQ(&v, child1.parent()); |
+ |
+ View child2; |
+ v.AddChildViewAt(&child2, 0); |
+ EXPECT_EQ(2, v.child_count()); |
+ EXPECT_EQ(child1.parent(), child2.parent()); |
+ |
+ v.RemoveChildView(&child2); |
+ EXPECT_EQ(1, v.child_count()); |
+ EXPECT_EQ(NULL, child2.parent()); |
+ |
+ //v.RemoveAllChildViews(false); |
+ //EXPECT_EQ(0, v.child_count()); |
+} |
+ |
+class ObserverView : public View { |
+ public: |
+ ObserverView() |
+ : view_added_(false), |
+ view_removed_(false), |
+ subject_view_(NULL) {} |
+ virtual ~ObserverView() {} |
+ |
+ void ResetTestState() { |
+ view_added_ = false; |
+ view_removed_ = false; |
+ subject_view_ = NULL; |
+ } |
+ |
+ // Overridden from View: |
+ virtual void OnViewAdded(View* parent, View* child) { |
+ subject_view_ = child; |
+ view_added_ = true; |
+ view_removed_ = false; |
+ } |
+ virtual void OnViewRemoved(View* parent, View* child) { |
+ subject_view_ = child; |
+ view_removed_ = true; |
+ view_added_ = false; |
+ } |
+ |
+ bool view_added() const { return view_added_; } |
+ bool view_removed() const { return view_removed_; } |
+ View* subject_view() const { return subject_view_; } |
+ |
+ private: |
+ bool view_added_; |
+ bool view_removed_; |
+ View* subject_view_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ObserverView); |
+}; |
+ |
+class WidgetObserverView : public View { |
+ public: |
+ WidgetObserverView() : in_widget_(false) {} |
+ virtual ~WidgetObserverView() {} |
+ |
+ // Overridden from View: |
+ virtual void OnViewAddedToWidget() { |
+ in_widget_ = true; |
+ } |
+ virtual void OnViewRemovedFromWidget() { |
+ in_widget_ = false; |
+ } |
+ |
+ bool in_widget() const { return in_widget_; } |
+ |
+ private: |
+ bool in_widget_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(WidgetObserverView); |
+}; |
+ |
+/* |
+TEST_F(ViewTest, HierarchyObserver) { |
+ ObserverView ov; |
+ Widget widget(&ov); |
+ widget.InitWithNativeViewParent(NULL, gfx::Rect(20, 20, 400, 400)); |
+ |
+ // |ov|'s addition to the RootView's hierarchy should have caused these values |
+ // to be set. |
+ EXPECT_TRUE(ov.view_added()); |
+ EXPECT_FALSE(ov.view_removed()); |
+ EXPECT_EQ(&ov, ov.subject_view()); |
+ |
+ ov.ResetTestState(); |
+ |
+ // Direct descendants. |
+ View v2; |
+ ov.AddChildView(&v2); |
+ EXPECT_TRUE(ov.view_added()); |
+ EXPECT_FALSE(ov.view_removed()); |
+ EXPECT_EQ(&v2, ov.subject_view()); |
+ |
+ ov.ResetTestState(); |
+ |
+ // Nested Views and Widget addition. |
+ WidgetObserverView v3; |
+ EXPECT_FALSE(v3.in_widget()); |
+ v2.AddChildView(&v3); |
+ EXPECT_TRUE(v3.in_widget()); |
+ EXPECT_EQ(&widget, v3.GetWidget()); |
+ EXPECT_TRUE(ov.view_added()); |
+ EXPECT_FALSE(ov.view_removed()); |
+ EXPECT_EQ(&v3, ov.subject_view()); |
+ |
+ ov.ResetTestState(); |
+ |
+ // Removal and Widget removal. |
+ ov.RemoveChildView(&v2); |
+ EXPECT_FALSE(ov.view_added()); |
+ EXPECT_TRUE(ov.view_removed()); |
+ EXPECT_EQ(&v2, ov.subject_view()); |
+ |
+ EXPECT_FALSE(v3.in_widget()); |
+ EXPECT_EQ(NULL, v3.GetWidget()); |
+} |
+*/ |
+ |
+TEST_F(ViewTest, Ids) { |
+ const int kV1Id = 1; |
+ const int kV2Id = 2; |
+ const int kV3Id = 3; |
+ const int kV4Id = 4; |
+ const int kV5Id = 5; |
+ const int kGroupId = 1; |
+ View v1; |
+ v1.set_id(kV1Id); |
+ View v2; |
+ v2.set_id(kV2Id); |
+ View v3; |
+ v3.set_id(kV3Id); |
+ v3.set_group(kGroupId); |
+ View v4; |
+ v4.set_id(kV4Id); |
+ v4.set_group(kGroupId); |
+ v1.AddChildView(&v2); |
+ v2.AddChildView(&v3); |
+ v2.AddChildView(&v4); |
+ |
+ EXPECT_EQ(&v4, v1.GetViewById(kV4Id)); |
+ EXPECT_EQ(&v1, v1.GetViewById(kV1Id)); |
+ EXPECT_EQ(NULL, v1.GetViewById(kV5Id)); // No V5 exists. |
+ |
+ View::ViewVector vec; |
+ v1.GetViewsWithGroup(kGroupId, &vec); |
+ EXPECT_EQ(2, vec.size()); |
+ View::ViewVector::const_iterator it = find(vec.begin(), vec.end(), &v3); |
+ EXPECT_NE(vec.end(), it); |
+ it = find(vec.begin(), vec.end(), &v4); |
+ EXPECT_NE(vec.end(), it); |
+} |
+ |
+TEST_F(ViewTest, EventHandlers) { |
+ |
+} |
+ |
+TEST_F(ViewTest, Painting) { |
+ |
+} |
+ |
+} // namespace ui |
Property changes on: ui\views\view_unittest.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |