| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/views/view.h" | 5 #include "ui/views/view.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 4849 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4860 | 4860 |
| 4861 //////////////////////////////////////////////////////////////////////////////// | 4861 //////////////////////////////////////////////////////////////////////////////// |
| 4862 // Observer tests. | 4862 // Observer tests. |
| 4863 //////////////////////////////////////////////////////////////////////////////// | 4863 //////////////////////////////////////////////////////////////////////////////// |
| 4864 | 4864 |
| 4865 class ViewObserverTest : public ViewTest, public ViewObserver { | 4865 class ViewObserverTest : public ViewTest, public ViewObserver { |
| 4866 public: | 4866 public: |
| 4867 ViewObserverTest() | 4867 ViewObserverTest() |
| 4868 : child_view_added_times_(0), | 4868 : child_view_added_times_(0), |
| 4869 child_view_removed_times_(0), | 4869 child_view_removed_times_(0), |
| 4870 child_view_added_parent_(nullptr), |
| 4870 child_view_added_(nullptr), | 4871 child_view_added_(nullptr), |
| 4871 child_view_removed_(nullptr), | 4872 child_view_removed_(nullptr), |
| 4872 child_view_removed_parent_(nullptr), | 4873 child_view_removed_parent_(nullptr), |
| 4873 view_visibility_changed_(nullptr), | 4874 view_visibility_changed_(nullptr), |
| 4874 view_enabled_changed_(nullptr), | 4875 view_enabled_changed_(nullptr), |
| 4875 view_bounds_changed_(nullptr), | 4876 view_bounds_changed_(nullptr), |
| 4876 view_reordered_(nullptr) {} | 4877 view_reordered_(nullptr) {} |
| 4877 | 4878 |
| 4878 ~ViewObserverTest() override {} | 4879 ~ViewObserverTest() override {} |
| 4879 | 4880 |
| 4880 // ViewObserver: | 4881 // ViewObserver: |
| 4881 void OnChildViewAdded(View* child) override { | 4882 void OnChildViewAdded(View* parent, View* child) override { |
| 4882 child_view_added_times_++; | 4883 child_view_added_times_++; |
| 4883 child_view_added_ = child; | 4884 child_view_added_ = child; |
| 4885 child_view_added_parent_ = parent; |
| 4884 } | 4886 } |
| 4885 void OnChildViewRemoved(View* child, View* parent) override { | 4887 void OnChildViewRemoved(View* parent, View* child) override { |
| 4886 child_view_removed_times_++; | 4888 child_view_removed_times_++; |
| 4887 child_view_removed_ = child; | 4889 child_view_removed_ = child; |
| 4888 child_view_removed_parent_ = parent; | 4890 child_view_removed_parent_ = parent; |
| 4889 } | 4891 } |
| 4890 | 4892 |
| 4891 void OnViewVisibilityChanged(View* view) override { | 4893 void OnViewVisibilityChanged(View* view) override { |
| 4892 view_visibility_changed_ = view; | 4894 view_visibility_changed_ = view; |
| 4893 } | 4895 } |
| 4894 | 4896 |
| 4895 void OnViewEnabledChanged(View* view) override { | 4897 void OnViewEnabledChanged(View* view) override { |
| 4896 view_enabled_changed_ = view; | 4898 view_enabled_changed_ = view; |
| 4897 } | 4899 } |
| 4898 | 4900 |
| 4899 void OnViewBoundsChanged(View* view) override { view_bounds_changed_ = view; } | 4901 void OnViewBoundsChanged(View* view) override { view_bounds_changed_ = view; } |
| 4900 | 4902 |
| 4901 void OnChildViewReordered(View* view) override { view_reordered_ = view; } | 4903 void OnChildViewReordered(View* parent, View* view) override { |
| 4904 view_reordered_ = view; |
| 4905 } |
| 4902 | 4906 |
| 4903 void reset() { | 4907 void reset() { |
| 4904 child_view_added_times_ = 0; | 4908 child_view_added_times_ = 0; |
| 4905 child_view_removed_times_ = 0; | 4909 child_view_removed_times_ = 0; |
| 4906 child_view_added_ = nullptr; | 4910 child_view_added_ = nullptr; |
| 4911 child_view_added_parent_ = nullptr; |
| 4907 child_view_removed_ = nullptr; | 4912 child_view_removed_ = nullptr; |
| 4908 child_view_removed_parent_ = nullptr; | 4913 child_view_removed_parent_ = nullptr; |
| 4909 view_visibility_changed_ = nullptr; | 4914 view_visibility_changed_ = nullptr; |
| 4910 view_enabled_changed_ = nullptr; | 4915 view_enabled_changed_ = nullptr; |
| 4911 view_bounds_changed_ = nullptr; | 4916 view_bounds_changed_ = nullptr; |
| 4912 view_reordered_ = nullptr; | 4917 view_reordered_ = nullptr; |
| 4913 } | 4918 } |
| 4914 | 4919 |
| 4915 std::unique_ptr<View> NewView() { | 4920 std::unique_ptr<View> NewView() { |
| 4916 auto view = base::MakeUnique<View>(); | 4921 auto view = base::MakeUnique<View>(); |
| 4917 view->AddObserver(this); | 4922 view->AddObserver(this); |
| 4918 return view; | 4923 return view; |
| 4919 } | 4924 } |
| 4920 | 4925 |
| 4921 int child_view_added_times() { return child_view_added_times_; } | 4926 int child_view_added_times() { return child_view_added_times_; } |
| 4922 int child_view_removed_times() { return child_view_removed_times_; } | 4927 int child_view_removed_times() { return child_view_removed_times_; } |
| 4923 const View* child_view_added() const { return child_view_added_; } | 4928 const View* child_view_added() const { return child_view_added_; } |
| 4929 const View* child_view_added_parent() const { |
| 4930 return child_view_added_parent_; |
| 4931 } |
| 4924 const View* child_view_removed() const { return child_view_removed_; } | 4932 const View* child_view_removed() const { return child_view_removed_; } |
| 4925 const View* child_view_removed_parent() const { | 4933 const View* child_view_removed_parent() const { |
| 4926 return child_view_removed_parent_; | 4934 return child_view_removed_parent_; |
| 4927 } | 4935 } |
| 4928 const View* view_visibility_changed() const { | 4936 const View* view_visibility_changed() const { |
| 4929 return view_visibility_changed_; | 4937 return view_visibility_changed_; |
| 4930 } | 4938 } |
| 4931 const View* view_enabled_changed() const { return view_enabled_changed_; } | 4939 const View* view_enabled_changed() const { return view_enabled_changed_; } |
| 4932 const View* view_bounds_changed() const { return view_bounds_changed_; } | 4940 const View* view_bounds_changed() const { return view_bounds_changed_; } |
| 4933 const View* view_reordered() const { return view_reordered_; } | 4941 const View* view_reordered() const { return view_reordered_; } |
| 4934 | 4942 |
| 4935 private: | 4943 private: |
| 4936 int child_view_added_times_; | 4944 int child_view_added_times_; |
| 4937 int child_view_removed_times_; | 4945 int child_view_removed_times_; |
| 4938 | 4946 |
| 4947 View* child_view_added_parent_; |
| 4939 View* child_view_added_; | 4948 View* child_view_added_; |
| 4940 View* child_view_removed_; | 4949 View* child_view_removed_; |
| 4941 View* child_view_removed_parent_; | 4950 View* child_view_removed_parent_; |
| 4942 View* view_visibility_changed_; | 4951 View* view_visibility_changed_; |
| 4943 View* view_enabled_changed_; | 4952 View* view_enabled_changed_; |
| 4944 View* view_bounds_changed_; | 4953 View* view_bounds_changed_; |
| 4945 View* view_reordered_; | 4954 View* view_reordered_; |
| 4946 | 4955 |
| 4947 DISALLOW_COPY_AND_ASSIGN(ViewObserverTest); | 4956 DISALLOW_COPY_AND_ASSIGN(ViewObserverTest); |
| 4948 }; | 4957 }; |
| 4949 | 4958 |
| 4950 TEST_F(ViewObserverTest, ViewParentChanged) { | 4959 TEST_F(ViewObserverTest, ViewParentChanged) { |
| 4951 std::unique_ptr<View> parent1 = NewView(); | 4960 std::unique_ptr<View> parent1 = NewView(); |
| 4952 std::unique_ptr<View> parent2 = NewView(); | 4961 std::unique_ptr<View> parent2 = NewView(); |
| 4953 std::unique_ptr<View> child_view = NewView(); | 4962 std::unique_ptr<View> child_view = NewView(); |
| 4954 | 4963 |
| 4955 parent1->AddChildView(child_view.get()); | 4964 parent1->AddChildView(child_view.get()); |
| 4956 EXPECT_EQ(0, child_view_removed_times()); | 4965 EXPECT_EQ(0, child_view_removed_times()); |
| 4957 EXPECT_EQ(1, child_view_added_times()); | 4966 EXPECT_EQ(1, child_view_added_times()); |
| 4958 EXPECT_EQ(child_view.get(), child_view_added()); | 4967 EXPECT_EQ(child_view.get(), child_view_added()); |
| 4959 EXPECT_EQ(child_view.get()->parent(), parent1.get()); | 4968 EXPECT_EQ(child_view->parent(), child_view_added_parent()); |
| 4969 EXPECT_EQ(child_view->parent(), parent1.get()); |
| 4960 reset(); | 4970 reset(); |
| 4961 | 4971 |
| 4962 // Removed from parent1, added to parent2 | 4972 // Removed from parent1, added to parent2 |
| 4963 parent2->AddChildView(child_view.get()); | 4973 parent2->AddChildView(child_view.get()); |
| 4964 EXPECT_EQ(1, child_view_removed_times()); | 4974 EXPECT_EQ(1, child_view_removed_times()); |
| 4965 EXPECT_EQ(1, child_view_added_times()); | 4975 EXPECT_EQ(1, child_view_added_times()); |
| 4966 EXPECT_EQ(child_view.get(), child_view_removed()); | 4976 EXPECT_EQ(child_view.get(), child_view_removed()); |
| 4967 EXPECT_EQ(parent1.get(), child_view_removed_parent()); | 4977 EXPECT_EQ(parent1.get(), child_view_removed_parent()); |
| 4968 EXPECT_EQ(child_view.get(), child_view_added()); | 4978 EXPECT_EQ(child_view.get(), child_view_added()); |
| 4969 EXPECT_EQ(child_view.get()->parent(), parent2.get()); | 4979 EXPECT_EQ(child_view->parent(), parent2.get()); |
| 4970 | 4980 |
| 4971 reset(); | 4981 reset(); |
| 4972 | 4982 |
| 4973 parent2->RemoveChildView(child_view.get()); | 4983 parent2->RemoveChildView(child_view.get()); |
| 4974 EXPECT_EQ(1, child_view_removed_times()); | 4984 EXPECT_EQ(1, child_view_removed_times()); |
| 4975 EXPECT_EQ(0, child_view_added_times()); | 4985 EXPECT_EQ(0, child_view_added_times()); |
| 4976 EXPECT_EQ(child_view.get(), child_view_removed()); | 4986 EXPECT_EQ(child_view.get(), child_view_removed()); |
| 4977 EXPECT_EQ(parent2.get(), child_view_removed_parent()); | 4987 EXPECT_EQ(parent2.get(), child_view_removed_parent()); |
| 4978 } | 4988 } |
| 4979 | 4989 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 5010 std::unique_ptr<View> view = NewView(); | 5020 std::unique_ptr<View> view = NewView(); |
| 5011 std::unique_ptr<View> child_view = NewView(); | 5021 std::unique_ptr<View> child_view = NewView(); |
| 5012 std::unique_ptr<View> child_view2 = NewView(); | 5022 std::unique_ptr<View> child_view2 = NewView(); |
| 5013 view->AddChildView(child_view.get()); | 5023 view->AddChildView(child_view.get()); |
| 5014 view->AddChildView(child_view2.get()); | 5024 view->AddChildView(child_view2.get()); |
| 5015 view->ReorderChildView(child_view2.get(), 0); | 5025 view->ReorderChildView(child_view2.get(), 0); |
| 5016 EXPECT_EQ(child_view2.get(), view_reordered()); | 5026 EXPECT_EQ(child_view2.get(), view_reordered()); |
| 5017 } | 5027 } |
| 5018 | 5028 |
| 5019 } // namespace views | 5029 } // namespace views |
| OLD | NEW |