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 <map> | 5 #include <map> |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/rand_util.h" | 8 #include "base/rand_util.h" |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
(...skipping 2151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2162 Widget* child = new Widget; | 2162 Widget* child = new Widget; |
2163 Widget::InitParams child_params(Widget::InitParams::TYPE_CONTROL); | 2163 Widget::InitParams child_params(Widget::InitParams::TYPE_CONTROL); |
2164 child_params.parent = toplevel1->GetNativeView(); | 2164 child_params.parent = toplevel1->GetNativeView(); |
2165 child->Init(child_params); | 2165 child->Init(child_params); |
2166 | 2166 |
2167 ToplevelWidgetObserverView* observer_view = | 2167 ToplevelWidgetObserverView* observer_view = |
2168 new ToplevelWidgetObserverView(); | 2168 new ToplevelWidgetObserverView(); |
2169 EXPECT_EQ(NULL, observer_view->toplevel()); | 2169 EXPECT_EQ(NULL, observer_view->toplevel()); |
2170 | 2170 |
2171 child->SetContentsView(observer_view); | 2171 child->SetContentsView(observer_view); |
2172 EXPECT_EQ(toplevel1, observer_view->toplevel()); | 2172 EXPECT_EQ(toplevel1.get(), observer_view->toplevel()); |
2173 | 2173 |
2174 Widget::ReparentNativeView(child->GetNativeView(), | 2174 Widget::ReparentNativeView(child->GetNativeView(), |
2175 toplevel2->GetNativeView()); | 2175 toplevel2->GetNativeView()); |
2176 EXPECT_EQ(toplevel2, observer_view->toplevel()); | 2176 EXPECT_EQ(toplevel2.get(), observer_view->toplevel()); |
2177 | 2177 |
2178 observer_view->parent()->RemoveChildView(observer_view); | 2178 observer_view->parent()->RemoveChildView(observer_view); |
2179 EXPECT_EQ(NULL, observer_view->toplevel()); | 2179 EXPECT_EQ(NULL, observer_view->toplevel()); |
2180 | 2180 |
2181 // Make |observer_view| |child|'s contents view again so that it gets deleted | 2181 // Make |observer_view| |child|'s contents view again so that it gets deleted |
2182 // with the widget. | 2182 // with the widget. |
2183 child->SetContentsView(observer_view); | 2183 child->SetContentsView(observer_view); |
2184 } | 2184 } |
2185 | 2185 |
2186 //////////////////////////////////////////////////////////////////////////////// | 2186 //////////////////////////////////////////////////////////////////////////////// |
(...skipping 1727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3914 EXPECT_EQ(v1->layer(), child_layers_pre[0]); | 3914 EXPECT_EQ(v1->layer(), child_layers_pre[0]); |
3915 EXPECT_EQ(v2->layer(), child_layers_pre[1]); | 3915 EXPECT_EQ(v2->layer(), child_layers_pre[1]); |
3916 | 3916 |
3917 scoped_ptr<ui::Layer> v1_old_layer(v1->RecreateLayer()); | 3917 scoped_ptr<ui::Layer> v1_old_layer(v1->RecreateLayer()); |
3918 | 3918 |
3919 // Test the new layer order. We expect: |v1| |v1_old_layer| |v2|. | 3919 // Test the new layer order. We expect: |v1| |v1_old_layer| |v2|. |
3920 // for |v1| and |v2|. | 3920 // for |v1| and |v2|. |
3921 const std::vector<ui::Layer*>& child_layers_post = v->layer()->children(); | 3921 const std::vector<ui::Layer*>& child_layers_post = v->layer()->children(); |
3922 ASSERT_EQ(3u, child_layers_post.size()); | 3922 ASSERT_EQ(3u, child_layers_post.size()); |
3923 EXPECT_EQ(v1->layer(), child_layers_post[0]); | 3923 EXPECT_EQ(v1->layer(), child_layers_post[0]); |
3924 EXPECT_EQ(v1_old_layer, child_layers_post[1]); | 3924 EXPECT_EQ(v1_old_layer.get(), child_layers_post[1]); |
3925 EXPECT_EQ(v2->layer(), child_layers_post[2]); | 3925 EXPECT_EQ(v2->layer(), child_layers_post[2]); |
3926 } | 3926 } |
3927 | 3927 |
3928 // Verify the z-order of the layers as a result of calling RecreateLayer when | 3928 // Verify the z-order of the layers as a result of calling RecreateLayer when |
3929 // the widget is the parent with the layer. | 3929 // the widget is the parent with the layer. |
3930 TEST_F(ViewLayerTest, RecreateLayerZOrderWidgetParent) { | 3930 TEST_F(ViewLayerTest, RecreateLayerZOrderWidgetParent) { |
3931 View* v = new View(); | 3931 View* v = new View(); |
3932 widget()->SetContentsView(v); | 3932 widget()->SetContentsView(v); |
3933 | 3933 |
3934 View* v1 = new View(); | 3934 View* v1 = new View(); |
(...skipping 10 matching lines...) Expand all Loading... |
3945 ASSERT_EQ(2u, child_layers_pre.size()); | 3945 ASSERT_EQ(2u, child_layers_pre.size()); |
3946 EXPECT_EQ(v1->layer(), child_layers_pre[0]); | 3946 EXPECT_EQ(v1->layer(), child_layers_pre[0]); |
3947 EXPECT_EQ(v2->layer(), child_layers_pre[1]); | 3947 EXPECT_EQ(v2->layer(), child_layers_pre[1]); |
3948 | 3948 |
3949 scoped_ptr<ui::Layer> v1_old_layer(v1->RecreateLayer()); | 3949 scoped_ptr<ui::Layer> v1_old_layer(v1->RecreateLayer()); |
3950 | 3950 |
3951 // Test the new layer order. We expect: |v1| |v1_old_layer| |v2|. | 3951 // Test the new layer order. We expect: |v1| |v1_old_layer| |v2|. |
3952 const std::vector<ui::Layer*>& child_layers_post = root_layer->children(); | 3952 const std::vector<ui::Layer*>& child_layers_post = root_layer->children(); |
3953 ASSERT_EQ(3u, child_layers_post.size()); | 3953 ASSERT_EQ(3u, child_layers_post.size()); |
3954 EXPECT_EQ(v1->layer(), child_layers_post[0]); | 3954 EXPECT_EQ(v1->layer(), child_layers_post[0]); |
3955 EXPECT_EQ(v1_old_layer, child_layers_post[1]); | 3955 EXPECT_EQ(v1_old_layer.get(), child_layers_post[1]); |
3956 EXPECT_EQ(v2->layer(), child_layers_post[2]); | 3956 EXPECT_EQ(v2->layer(), child_layers_post[2]); |
3957 } | 3957 } |
3958 | 3958 |
3959 // Verifies RecreateLayer() moves all Layers over, even those that don't have | 3959 // Verifies RecreateLayer() moves all Layers over, even those that don't have |
3960 // a View. | 3960 // a View. |
3961 TEST_F(ViewLayerTest, RecreateLayerMovesNonViewChildren) { | 3961 TEST_F(ViewLayerTest, RecreateLayerMovesNonViewChildren) { |
3962 View v; | 3962 View v; |
3963 v.SetPaintToLayer(true); | 3963 v.SetPaintToLayer(true); |
3964 View child; | 3964 View child; |
3965 child.SetPaintToLayer(true); | 3965 child.SetPaintToLayer(true); |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4093 // notification. | 4093 // notification. |
4094 TestView* test_view_child_2 = new TestView(); | 4094 TestView* test_view_child_2 = new TestView(); |
4095 test_view->AddChildView(test_view_child_2); | 4095 test_view->AddChildView(test_view_child_2); |
4096 EXPECT_TRUE(test_view_child_2->native_theme_); | 4096 EXPECT_TRUE(test_view_child_2->native_theme_); |
4097 EXPECT_EQ(widget->GetNativeTheme(), test_view_child_2->native_theme_); | 4097 EXPECT_EQ(widget->GetNativeTheme(), test_view_child_2->native_theme_); |
4098 | 4098 |
4099 widget->CloseNow(); | 4099 widget->CloseNow(); |
4100 } | 4100 } |
4101 | 4101 |
4102 } // namespace views | 4102 } // namespace views |
OLD | NEW |