| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "ui/aura/window.h" | 8 #include "ui/aura/window.h" |
| 9 #include "ui/compositor/layer.h" | 9 #include "ui/compositor/layer.h" |
| 10 #include "ui/compositor/layer_tree_owner.h" | 10 #include "ui/compositor/layer_tree_owner.h" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 | 104 |
| 105 // Test the initial order of the layers. | 105 // Test the initial order of the layers. |
| 106 ui::Layer* w1_layer = w1->GetNativeView()->layer(); | 106 ui::Layer* w1_layer = w1->GetNativeView()->layer(); |
| 107 ASSERT_EQ("w1", w1_layer->name()); | 107 ASSERT_EQ("w1", w1_layer->name()); |
| 108 ASSERT_EQ("v1 v4 w2 v7", ui::test::ChildLayerNamesAsString(*w1_layer)); | 108 ASSERT_EQ("v1 v4 w2 v7", ui::test::ChildLayerNamesAsString(*w1_layer)); |
| 109 ui::Layer* w2_layer = w1_layer->children()[2]; | 109 ui::Layer* w2_layer = w1_layer->children()[2]; |
| 110 ASSERT_EQ("v5", ui::test::ChildLayerNamesAsString(*w2_layer)); | 110 ASSERT_EQ("v5", ui::test::ChildLayerNamesAsString(*w2_layer)); |
| 111 ui::Layer* v5_layer = w2_layer->children()[0]; | 111 ui::Layer* v5_layer = w2_layer->children()[0]; |
| 112 ASSERT_EQ("v6", ui::test::ChildLayerNamesAsString(*v5_layer)); | 112 ASSERT_EQ("v6", ui::test::ChildLayerNamesAsString(*v5_layer)); |
| 113 | 113 |
| 114 // Verify the value of Widget::GetRootLayers(). It should only include layers |
| 115 // from layer-backed Views descended from the Widget's root View. |
| 116 std::vector<ui::Layer*> old_w1_root_sublayers = w1->GetRootLayers(); |
| 117 ASSERT_EQ(3u, old_w1_root_sublayers.size()); |
| 118 EXPECT_EQ(v1_layer, old_w1_root_sublayers[0]); |
| 119 EXPECT_EQ(v4_layer, old_w1_root_sublayers[1]); |
| 120 EXPECT_EQ(v7_layer, old_w1_root_sublayers[2]); |
| 121 |
| 114 { | 122 { |
| 115 scoped_ptr<ui::LayerTreeOwner> cloned_owner( | 123 scoped_ptr<ui::LayerTreeOwner> cloned_owner( |
| 116 wm::RecreateLayers(w1->GetNativeView())); | 124 wm::RecreateLayers(w1->GetNativeView())); |
| 117 EXPECT_EQ(w1_layer, cloned_owner->root()); | 125 EXPECT_EQ(w1_layer, cloned_owner->root()); |
| 118 EXPECT_NE(w1_layer, w1->GetNativeView()->layer()); | 126 EXPECT_NE(w1_layer, w1->GetNativeView()->layer()); |
| 119 | 127 |
| 120 // The old layers should still exist and have the same hierarchy. | 128 // The old layers should still exist and have the same hierarchy. |
| 121 ASSERT_EQ("w1", w1_layer->name()); | 129 ASSERT_EQ("w1", w1_layer->name()); |
| 122 ASSERT_EQ("v1 v4 w2 v7", ui::test::ChildLayerNamesAsString(*w1_layer)); | 130 ASSERT_EQ("v1 v4 w2 v7", ui::test::ChildLayerNamesAsString(*w1_layer)); |
| 123 ASSERT_EQ("v5", ui::test::ChildLayerNamesAsString(*w2_layer)); | 131 ASSERT_EQ("v5", ui::test::ChildLayerNamesAsString(*w2_layer)); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 135 | 143 |
| 136 ASSERT_EQ(1u, v5_layer->children().size()); | 144 ASSERT_EQ(1u, v5_layer->children().size()); |
| 137 EXPECT_EQ(v6_layer, v5_layer->children()[0]); | 145 EXPECT_EQ(v6_layer, v5_layer->children()[0]); |
| 138 | 146 |
| 139 ASSERT_EQ(0u, v6_layer->children().size()); | 147 ASSERT_EQ(0u, v6_layer->children().size()); |
| 140 | 148 |
| 141 EXPECT_EQ(2u, v7_layer->children().size()); | 149 EXPECT_EQ(2u, v7_layer->children().size()); |
| 142 EXPECT_EQ(v8_layer, v7_layer->children()[0]); | 150 EXPECT_EQ(v8_layer, v7_layer->children()[0]); |
| 143 EXPECT_EQ(v9_layer, v7_layer->children()[1]); | 151 EXPECT_EQ(v9_layer, v7_layer->children()[1]); |
| 144 | 152 |
| 145 // The cloned layers should have the same hierarchy as old. | 153 // The cloned layers should have the same hierarchy as old, but with new |
| 154 // ui::Layer instances. |
| 146 ui::Layer* w1_new_layer = w1->GetNativeView()->layer(); | 155 ui::Layer* w1_new_layer = w1->GetNativeView()->layer(); |
| 147 EXPECT_EQ("w1", w1_new_layer->name()); | 156 EXPECT_EQ("w1", w1_new_layer->name()); |
| 157 EXPECT_NE(w1_layer, w1_new_layer); |
| 158 ui::Layer* v1_new_layer = w1_new_layer->children()[0]; |
| 159 ui::Layer* v4_new_layer = w1_new_layer->children()[1]; |
| 148 ASSERT_EQ("v1 v4 w2 v7", ui::test::ChildLayerNamesAsString(*w1_new_layer)); | 160 ASSERT_EQ("v1 v4 w2 v7", ui::test::ChildLayerNamesAsString(*w1_new_layer)); |
| 161 EXPECT_NE(v1_layer, v1_new_layer); |
| 162 EXPECT_NE(v4_layer, v4_new_layer); |
| 149 ui::Layer* w2_new_layer = w1_new_layer->children()[2]; | 163 ui::Layer* w2_new_layer = w1_new_layer->children()[2]; |
| 150 ASSERT_EQ("v5", ui::test::ChildLayerNamesAsString(*w2_new_layer)); | 164 ASSERT_EQ("v5", ui::test::ChildLayerNamesAsString(*w2_new_layer)); |
| 151 ui::Layer* v5_new_layer = w2_new_layer->children()[0]; | 165 ui::Layer* v5_new_layer = w2_new_layer->children()[0]; |
| 152 ASSERT_EQ("v6", ui::test::ChildLayerNamesAsString(*v5_new_layer)); | 166 ASSERT_EQ("v6", ui::test::ChildLayerNamesAsString(*v5_new_layer)); |
| 153 ui::Layer* v7_new_layer = w1_new_layer->children()[3]; | 167 ui::Layer* v7_new_layer = w1_new_layer->children()[3]; |
| 154 ASSERT_EQ("v8 v9", ui::test::ChildLayerNamesAsString(*v7_new_layer)); | 168 ASSERT_EQ("v8 v9", ui::test::ChildLayerNamesAsString(*v7_new_layer)); |
| 169 EXPECT_NE(v7_layer, v7_new_layer); |
| 170 |
| 171 // Ensure Widget::GetRootLayers() is correctly updated. |
| 172 std::vector<ui::Layer*> new_w1_root_sublayers = w1->GetRootLayers(); |
| 173 ASSERT_EQ(3u, new_w1_root_sublayers.size()); |
| 174 EXPECT_EQ(v1_new_layer, new_w1_root_sublayers[0]); |
| 175 EXPECT_EQ(v4_new_layer, new_w1_root_sublayers[1]); |
| 176 EXPECT_EQ(v7_new_layer, new_w1_root_sublayers[2]); |
| 155 } | 177 } |
| 156 w1->CloseNow(); | 178 w1->CloseNow(); |
| 157 } | 179 } |
| 158 | 180 |
| 159 } // namespace views | 181 } // namespace views |
| OLD | NEW |