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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/compiler_specific.h" | 6 #include "base/compiler_specific.h" |
7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 678 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 | 689 |
690 NullLayerDelegate delegate; | 690 NullLayerDelegate delegate; |
691 l1->set_delegate(&delegate); | 691 l1->set_delegate(&delegate); |
692 l2->set_delegate(&delegate); | 692 l2->set_delegate(&delegate); |
693 l3->set_delegate(&delegate); | 693 l3->set_delegate(&delegate); |
694 | 694 |
695 // Layers should initially be drawn. | 695 // Layers should initially be drawn. |
696 EXPECT_TRUE(l1->IsDrawn()); | 696 EXPECT_TRUE(l1->IsDrawn()); |
697 EXPECT_TRUE(l2->IsDrawn()); | 697 EXPECT_TRUE(l2->IsDrawn()); |
698 EXPECT_TRUE(l3->IsDrawn()); | 698 EXPECT_TRUE(l3->IsDrawn()); |
| 699 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 700 EXPECT_EQ(1.f, l1->web_layer()->opacity()); |
| 701 EXPECT_EQ(1.f, l2->web_layer()->opacity()); |
| 702 EXPECT_EQ(1.f, l3->web_layer()->opacity()); |
| 703 #else |
699 EXPECT_EQ(1.f, l1->web_layer().opacity()); | 704 EXPECT_EQ(1.f, l1->web_layer().opacity()); |
700 EXPECT_EQ(1.f, l2->web_layer().opacity()); | 705 EXPECT_EQ(1.f, l2->web_layer().opacity()); |
701 EXPECT_EQ(1.f, l3->web_layer().opacity()); | 706 EXPECT_EQ(1.f, l3->web_layer().opacity()); |
| 707 #endif |
702 | 708 |
703 compositor()->SetRootLayer(l1.get()); | 709 compositor()->SetRootLayer(l1.get()); |
704 | 710 |
705 Draw(); | 711 Draw(); |
706 | 712 |
707 l1->SetVisible(false); | 713 l1->SetVisible(false); |
708 EXPECT_FALSE(l1->IsDrawn()); | 714 EXPECT_FALSE(l1->IsDrawn()); |
709 EXPECT_FALSE(l2->IsDrawn()); | 715 EXPECT_FALSE(l2->IsDrawn()); |
710 EXPECT_FALSE(l3->IsDrawn()); | 716 EXPECT_FALSE(l3->IsDrawn()); |
| 717 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 718 EXPECT_EQ(0.f, l1->web_layer()->opacity()); |
| 719 #else |
711 EXPECT_EQ(0.f, l1->web_layer().opacity()); | 720 EXPECT_EQ(0.f, l1->web_layer().opacity()); |
| 721 #endif |
712 | 722 |
713 l3->SetVisible(false); | 723 l3->SetVisible(false); |
714 EXPECT_FALSE(l1->IsDrawn()); | 724 EXPECT_FALSE(l1->IsDrawn()); |
715 EXPECT_FALSE(l2->IsDrawn()); | 725 EXPECT_FALSE(l2->IsDrawn()); |
716 EXPECT_FALSE(l3->IsDrawn()); | 726 EXPECT_FALSE(l3->IsDrawn()); |
| 727 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 728 EXPECT_EQ(0.f, l3->web_layer()->opacity()); |
| 729 #else |
717 EXPECT_EQ(0.f, l3->web_layer().opacity()); | 730 EXPECT_EQ(0.f, l3->web_layer().opacity()); |
| 731 #endif |
718 | 732 |
719 l1->SetVisible(true); | 733 l1->SetVisible(true); |
720 EXPECT_TRUE(l1->IsDrawn()); | 734 EXPECT_TRUE(l1->IsDrawn()); |
721 EXPECT_TRUE(l2->IsDrawn()); | 735 EXPECT_TRUE(l2->IsDrawn()); |
722 EXPECT_FALSE(l3->IsDrawn()); | 736 EXPECT_FALSE(l3->IsDrawn()); |
| 737 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 738 EXPECT_EQ(1.f, l1->web_layer()->opacity()); |
| 739 #else |
723 EXPECT_EQ(1.f, l1->web_layer().opacity()); | 740 EXPECT_EQ(1.f, l1->web_layer().opacity()); |
| 741 #endif |
724 } | 742 } |
725 | 743 |
726 // Checks that stacking-related methods behave as advertised. | 744 // Checks that stacking-related methods behave as advertised. |
727 TEST_F(LayerWithNullDelegateTest, Stacking) { | 745 TEST_F(LayerWithNullDelegateTest, Stacking) { |
728 scoped_ptr<Layer> root(new Layer(LAYER_NOT_DRAWN)); | 746 scoped_ptr<Layer> root(new Layer(LAYER_NOT_DRAWN)); |
729 scoped_ptr<Layer> l1(new Layer(LAYER_TEXTURED)); | 747 scoped_ptr<Layer> l1(new Layer(LAYER_TEXTURED)); |
730 scoped_ptr<Layer> l2(new Layer(LAYER_TEXTURED)); | 748 scoped_ptr<Layer> l2(new Layer(LAYER_TEXTURED)); |
731 scoped_ptr<Layer> l3(new Layer(LAYER_TEXTURED)); | 749 scoped_ptr<Layer> l3(new Layer(LAYER_TEXTURED)); |
732 l1->set_name("1"); | 750 l1->set_name("1"); |
733 l2->set_name("2"); | 751 l2->set_name("2"); |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1121 l1_delegate.AddColor(SK_ColorWHITE); | 1139 l1_delegate.AddColor(SK_ColorWHITE); |
1122 l1->set_delegate(&l1_delegate); | 1140 l1->set_delegate(&l1_delegate); |
1123 | 1141 |
1124 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); | 1142 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); |
1125 GetCompositor()->SetRootLayer(root.get()); | 1143 GetCompositor()->SetRootLayer(root.get()); |
1126 root->Add(l1.get()); | 1144 root->Add(l1.get()); |
1127 RunPendingMessages(); | 1145 RunPendingMessages(); |
1128 | 1146 |
1129 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); | 1147 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); |
1130 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); | 1148 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); |
| 1149 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 1150 gfx::Size size_in_pixel = root->web_layer()->bounds(); |
| 1151 #else |
1131 gfx::Size size_in_pixel = root->web_layer().bounds(); | 1152 gfx::Size size_in_pixel = root->web_layer().bounds(); |
| 1153 #endif |
1132 EXPECT_EQ("200x220", size_in_pixel.ToString()); | 1154 EXPECT_EQ("200x220", size_in_pixel.ToString()); |
| 1155 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 1156 size_in_pixel = l1->web_layer()->bounds(); |
| 1157 #else |
1133 size_in_pixel = l1->web_layer().bounds(); | 1158 size_in_pixel = l1->web_layer().bounds(); |
| 1159 #endif |
1134 EXPECT_EQ("140x180", size_in_pixel.ToString()); | 1160 EXPECT_EQ("140x180", size_in_pixel.ToString()); |
1135 // No scale change, so no scale notification. | 1161 // No scale change, so no scale notification. |
1136 EXPECT_EQ(0.0f, root_delegate.device_scale_factor()); | 1162 EXPECT_EQ(0.0f, root_delegate.device_scale_factor()); |
1137 EXPECT_EQ(0.0f, l1_delegate.device_scale_factor()); | 1163 EXPECT_EQ(0.0f, l1_delegate.device_scale_factor()); |
1138 | 1164 |
1139 RunPendingMessages(); | 1165 RunPendingMessages(); |
1140 EXPECT_EQ("200x220", root_delegate.paint_size().ToString()); | 1166 EXPECT_EQ("200x220", root_delegate.paint_size().ToString()); |
1141 EXPECT_EQ("140x180", l1_delegate.paint_size().ToString()); | 1167 EXPECT_EQ("140x180", l1_delegate.paint_size().ToString()); |
1142 | 1168 |
1143 // Scale up to 2.0. Changing scale doesn't change the bounds in DIP. | 1169 // Scale up to 2.0. Changing scale doesn't change the bounds in DIP. |
1144 GetCompositor()->SetScaleAndSize(2.0f, gfx::Size(500, 500)); | 1170 GetCompositor()->SetScaleAndSize(2.0f, gfx::Size(500, 500)); |
1145 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); | 1171 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); |
1146 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); | 1172 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); |
1147 // Pixel size must have been scaled up. | 1173 // Pixel size must have been scaled up. |
| 1174 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 1175 size_in_pixel = root->web_layer()->bounds(); |
| 1176 #else |
1148 size_in_pixel = root->web_layer().bounds(); | 1177 size_in_pixel = root->web_layer().bounds(); |
| 1178 #endif |
1149 EXPECT_EQ("400x440", size_in_pixel.ToString()); | 1179 EXPECT_EQ("400x440", size_in_pixel.ToString()); |
| 1180 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 1181 size_in_pixel = l1->web_layer()->bounds(); |
| 1182 #else |
1150 size_in_pixel = l1->web_layer().bounds(); | 1183 size_in_pixel = l1->web_layer().bounds(); |
| 1184 #endif |
1151 EXPECT_EQ("280x360", size_in_pixel.ToString()); | 1185 EXPECT_EQ("280x360", size_in_pixel.ToString()); |
1152 // New scale factor must have been notified. | 1186 // New scale factor must have been notified. |
1153 EXPECT_EQ(2.0f, root_delegate.device_scale_factor()); | 1187 EXPECT_EQ(2.0f, root_delegate.device_scale_factor()); |
1154 EXPECT_EQ(2.0f, l1_delegate.device_scale_factor()); | 1188 EXPECT_EQ(2.0f, l1_delegate.device_scale_factor()); |
1155 | 1189 |
1156 // Canvas size must have been scaled down up. | 1190 // Canvas size must have been scaled down up. |
1157 RunPendingMessages(); | 1191 RunPendingMessages(); |
1158 EXPECT_EQ("400x440", root_delegate.paint_size().ToString()); | 1192 EXPECT_EQ("400x440", root_delegate.paint_size().ToString()); |
1159 EXPECT_EQ("2.0 2.0", root_delegate.ToScaleString()); | 1193 EXPECT_EQ("2.0 2.0", root_delegate.ToScaleString()); |
1160 EXPECT_EQ("280x360", l1_delegate.paint_size().ToString()); | 1194 EXPECT_EQ("280x360", l1_delegate.paint_size().ToString()); |
1161 EXPECT_EQ("2.0 2.0", l1_delegate.ToScaleString()); | 1195 EXPECT_EQ("2.0 2.0", l1_delegate.ToScaleString()); |
1162 | 1196 |
1163 // Scale down back to 1.0f. | 1197 // Scale down back to 1.0f. |
1164 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); | 1198 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); |
1165 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); | 1199 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); |
1166 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); | 1200 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); |
1167 // Pixel size must have been scaled down. | 1201 // Pixel size must have been scaled down. |
| 1202 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 1203 size_in_pixel = root->web_layer()->bounds(); |
| 1204 #else |
1168 size_in_pixel = root->web_layer().bounds(); | 1205 size_in_pixel = root->web_layer().bounds(); |
| 1206 #endif |
1169 EXPECT_EQ("200x220", size_in_pixel.ToString()); | 1207 EXPECT_EQ("200x220", size_in_pixel.ToString()); |
| 1208 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 1209 size_in_pixel = l1->web_layer()->bounds(); |
| 1210 #else |
1170 size_in_pixel = l1->web_layer().bounds(); | 1211 size_in_pixel = l1->web_layer().bounds(); |
| 1212 #endif |
1171 EXPECT_EQ("140x180", size_in_pixel.ToString()); | 1213 EXPECT_EQ("140x180", size_in_pixel.ToString()); |
1172 // New scale factor must have been notified. | 1214 // New scale factor must have been notified. |
1173 EXPECT_EQ(1.0f, root_delegate.device_scale_factor()); | 1215 EXPECT_EQ(1.0f, root_delegate.device_scale_factor()); |
1174 EXPECT_EQ(1.0f, l1_delegate.device_scale_factor()); | 1216 EXPECT_EQ(1.0f, l1_delegate.device_scale_factor()); |
1175 | 1217 |
1176 // Canvas size must have been scaled down too. | 1218 // Canvas size must have been scaled down too. |
1177 RunPendingMessages(); | 1219 RunPendingMessages(); |
1178 EXPECT_EQ("200x220", root_delegate.paint_size().ToString()); | 1220 EXPECT_EQ("200x220", root_delegate.paint_size().ToString()); |
1179 EXPECT_EQ("1.0 1.0", root_delegate.ToScaleString()); | 1221 EXPECT_EQ("1.0 1.0", root_delegate.ToScaleString()); |
1180 EXPECT_EQ("140x180", l1_delegate.paint_size().ToString()); | 1222 EXPECT_EQ("140x180", l1_delegate.paint_size().ToString()); |
(...skipping 22 matching lines...) Expand all Loading... |
1203 TestLayerDelegate l1_delegate; | 1245 TestLayerDelegate l1_delegate; |
1204 l1_delegate.AddColor(SK_ColorWHITE); | 1246 l1_delegate.AddColor(SK_ColorWHITE); |
1205 l1->set_delegate(&l1_delegate); | 1247 l1->set_delegate(&l1_delegate); |
1206 | 1248 |
1207 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); | 1249 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); |
1208 GetCompositor()->SetRootLayer(root.get()); | 1250 GetCompositor()->SetRootLayer(root.get()); |
1209 RunPendingMessages(); | 1251 RunPendingMessages(); |
1210 | 1252 |
1211 root->Add(l1.get()); | 1253 root->Add(l1.get()); |
1212 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); | 1254 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); |
| 1255 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 1256 gfx::Size size_in_pixel = l1->web_layer()->bounds(); |
| 1257 #else |
1213 gfx::Size size_in_pixel = l1->web_layer().bounds(); | 1258 gfx::Size size_in_pixel = l1->web_layer().bounds(); |
| 1259 #endif |
1214 EXPECT_EQ("140x180", size_in_pixel.ToString()); | 1260 EXPECT_EQ("140x180", size_in_pixel.ToString()); |
1215 EXPECT_EQ(0.0f, l1_delegate.device_scale_factor()); | 1261 EXPECT_EQ(0.0f, l1_delegate.device_scale_factor()); |
1216 | 1262 |
1217 RunPendingMessages(); | 1263 RunPendingMessages(); |
1218 EXPECT_EQ("140x180", l1_delegate.paint_size().ToString()); | 1264 EXPECT_EQ("140x180", l1_delegate.paint_size().ToString()); |
1219 EXPECT_EQ("1.0 1.0", l1_delegate.ToScaleString()); | 1265 EXPECT_EQ("1.0 1.0", l1_delegate.ToScaleString()); |
1220 | 1266 |
1221 // Remove l1 from root and change the scale. | 1267 // Remove l1 from root and change the scale. |
1222 root->Remove(l1.get()); | 1268 root->Remove(l1.get()); |
1223 EXPECT_EQ(NULL, l1->parent()); | 1269 EXPECT_EQ(NULL, l1->parent()); |
1224 EXPECT_EQ(NULL, l1->GetCompositor()); | 1270 EXPECT_EQ(NULL, l1->GetCompositor()); |
1225 GetCompositor()->SetScaleAndSize(2.0f, gfx::Size(500, 500)); | 1271 GetCompositor()->SetScaleAndSize(2.0f, gfx::Size(500, 500)); |
1226 // Sanity check on root and l1. | 1272 // Sanity check on root and l1. |
1227 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); | 1273 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); |
| 1274 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 1275 size_in_pixel = l1->web_layer()->bounds(); |
| 1276 #else |
1228 size_in_pixel = l1->web_layer().bounds(); | 1277 size_in_pixel = l1->web_layer().bounds(); |
| 1278 #endif |
1229 EXPECT_EQ("140x180", size_in_pixel.ToString()); | 1279 EXPECT_EQ("140x180", size_in_pixel.ToString()); |
1230 | 1280 |
1231 | 1281 |
1232 root->Add(l1.get()); | 1282 root->Add(l1.get()); |
1233 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); | 1283 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); |
| 1284 #if defined(WEBLAYER_IS_PURE_VIRTUAL) |
| 1285 size_in_pixel = l1->web_layer()->bounds(); |
| 1286 #else |
1234 size_in_pixel = l1->web_layer().bounds(); | 1287 size_in_pixel = l1->web_layer().bounds(); |
| 1288 #endif |
1235 EXPECT_EQ("280x360", size_in_pixel.ToString()); | 1289 EXPECT_EQ("280x360", size_in_pixel.ToString()); |
1236 EXPECT_EQ(2.0f, l1_delegate.device_scale_factor()); | 1290 EXPECT_EQ(2.0f, l1_delegate.device_scale_factor()); |
1237 RunPendingMessages(); | 1291 RunPendingMessages(); |
1238 EXPECT_EQ("280x360", l1_delegate.paint_size().ToString()); | 1292 EXPECT_EQ("280x360", l1_delegate.paint_size().ToString()); |
1239 EXPECT_EQ("2.0 2.0", l1_delegate.ToScaleString()); | 1293 EXPECT_EQ("2.0 2.0", l1_delegate.ToScaleString()); |
1240 } | 1294 } |
1241 | 1295 |
1242 // Tests layer::set_scale_content(false). | 1296 // Tests layer::set_scale_content(false). |
1243 TEST_F(LayerWithRealCompositorTest, MAYBE_NoScaleCanvas) { | 1297 TEST_F(LayerWithRealCompositorTest, MAYBE_NoScaleCanvas) { |
1244 scoped_ptr<Layer> root(CreateColorLayer(SK_ColorWHITE, | 1298 scoped_ptr<Layer> root(CreateColorLayer(SK_ColorWHITE, |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1299 | 1353 |
1300 // Resize layer. | 1354 // Resize layer. |
1301 child->SetBounds(gfx::Rect(200, 200, 400, 400)); | 1355 child->SetBounds(gfx::Rect(200, 200, 400, 400)); |
1302 child->SetVisible(true); | 1356 child->SetVisible(true); |
1303 EXPECT_TRUE(schedule_draw_invoked_); | 1357 EXPECT_TRUE(schedule_draw_invoked_); |
1304 DrawTree(root.get()); | 1358 DrawTree(root.get()); |
1305 EXPECT_TRUE(delegate.painted()); | 1359 EXPECT_TRUE(delegate.painted()); |
1306 } | 1360 } |
1307 | 1361 |
1308 } // namespace ui | 1362 } // namespace ui |
OLD | NEW |