Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Side by Side Diff: ui/compositor/layer_unittest.cc

Issue 10832355: Prepare ui/compositor for WebLayer type change (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« ui/compositor/layer.cc ('K') | « ui/compositor/layer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
OLDNEW
« ui/compositor/layer.cc ('K') | « ui/compositor/layer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698