Index: cc/trees/layer_tree_host_common_unittest.cc |
diff --git a/cc/trees/layer_tree_host_common_unittest.cc b/cc/trees/layer_tree_host_common_unittest.cc |
index c65a2cf5002b0c259c5f42e07ba706b27ff11c6a..cca81b17793be3a6aed7af8ed82b879bc267f861 100644 |
--- a/cc/trees/layer_tree_host_common_unittest.cc |
+++ b/cc/trees/layer_tree_host_common_unittest.cc |
@@ -1391,6 +1391,43 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfaceForBlendMode) { |
EXPECT_EQ(SkXfermode::kSrcOver_Mode, child->draw_blend_mode()); |
} |
+TEST_F(LayerTreeHostCommonTest, RenderSurfaceDrawOpacity) { |
+ LayerImpl* root = root_layer(); |
+ LayerImpl* surface1 = AddChildToRoot<LayerImpl>(); |
+ LayerImpl* not_surface = AddChild<LayerImpl>(surface1); |
+ LayerImpl* surface2 = AddChild<LayerImpl>(not_surface); |
+ |
+ const gfx::Transform identity_matrix; |
+ SetLayerPropertiesForTesting(root, identity_matrix, gfx::Point3F(), |
+ gfx::PointF(), gfx::Size(10, 10), true, false, |
+ true); |
+ SetLayerPropertiesForTesting(surface1, identity_matrix, gfx::Point3F(), |
+ gfx::PointF(), gfx::Size(10, 10), true, false, |
+ true); |
+ SetLayerPropertiesForTesting(not_surface, identity_matrix, gfx::Point3F(), |
+ gfx::PointF(), gfx::Size(10, 10), true, false, |
+ false); |
+ SetLayerPropertiesForTesting(surface2, identity_matrix, gfx::Point3F(), |
+ gfx::PointF(), gfx::Size(10, 10), true, false, |
+ true); |
+ surface1->SetDrawsContent(true); |
+ surface2->SetDrawsContent(true); |
+ |
+ surface1->SetOpacity(0.5f); |
+ not_surface->SetOpacity(0.5f); |
+ surface2->SetOpacity(0.5f); |
+ |
+ ExecuteCalculateDrawProperties(root); |
+ |
+ ASSERT_TRUE(surface1->render_surface()); |
+ ASSERT_FALSE(not_surface->render_surface()); |
+ ASSERT_TRUE(surface2->render_surface()); |
+ EXPECT_EQ(0.5f, surface1->render_surface()->draw_opacity()); |
+ // surface2's draw opacity should include the opacity of not-surface and |
+ // itself, but not the opacity od surface1. |
ajuma
2016/01/21 14:20:36
typo: s/od/of
|
+ EXPECT_EQ(0.25f, surface2->render_surface()->draw_opacity()); |
+} |
+ |
TEST_F(LayerTreeHostCommonTest, DrawOpacityWhenCannotRenderToSeparateSurface) { |
// Tests that when separate surfaces are disabled, a layer's draw opacity is |
// the product of all ancestor layer opacties and the layer's own opacity. |