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 |