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

Unified Diff: ui/compositor/layer_owner_unittest.cc

Issue 2458833003: Revert of [M55] Generalize layer mirroring for phantom windows (Closed)
Patch Set: Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/compositor/layer_owner_delegate.h ('k') | ui/compositor/layer_tree_owner.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/compositor/layer_owner_unittest.cc
diff --git a/ui/compositor/layer_owner_unittest.cc b/ui/compositor/layer_owner_unittest.cc
index 5e81fe98426e511eaa21bd0d059383d136ee5125..cdffd2a5aca1c1c786bf0a74e91e8e770a49d707 100644
--- a/ui/compositor/layer_owner_unittest.cc
+++ b/ui/compositor/layer_owner_unittest.cc
@@ -85,10 +85,108 @@
} // namespace
+TEST(LayerOwnerTest, RecreateLayerHonorsAnimationTargets) {
+ LayerOwner owner;
+ Layer* layer = new Layer(LAYER_SOLID_COLOR);
+ layer->SetVisible(true);
+ layer->SetOpacity(1.0f);
+ layer->SetColor(SK_ColorRED);
+
+ owner.SetLayer(layer);
+
+ ScopedLayerAnimationSettings settings(layer->GetAnimator());
+ layer->SetVisible(false);
+ layer->SetOpacity(0.0f);
+ layer->SetColor(SK_ColorGREEN);
+ EXPECT_TRUE(layer->visible());
+ EXPECT_EQ(1.0f, layer->opacity());
+ EXPECT_EQ(SK_ColorRED, layer->background_color());
+
+ std::unique_ptr<Layer> old_layer(owner.RecreateLayer());
+ EXPECT_FALSE(owner.layer()->visible());
+ EXPECT_EQ(0.0f, owner.layer()->opacity());
+ EXPECT_EQ(SK_ColorGREEN, owner.layer()->background_color());
+}
+
+// Tests that when a LAYER_SOLID_COLOR which is not backed by a SolidColorLayer
+// that opaqueness and color targets are maintained when the
+// LayerOwner::RecreateLayers is called.
+TEST(LayerOwnerTest, RecreateLayerSolidColorWithChangedCCLayerHonorsTargets) {
+ SkColor transparent = SK_ColorTRANSPARENT;
+ LayerOwner owner;
+ Layer* layer = new Layer(LAYER_SOLID_COLOR);
+ owner.SetLayer(layer);
+ layer->SetFillsBoundsOpaquely(false);
+ layer->SetColor(transparent);
+ // Changing the backing layer takes LAYER_SOLID_COLOR off of the normal layer
+ // flow, need to ensure that set values are maintained.
+ layer->SwitchCCLayerForTest();
+
+ EXPECT_FALSE(layer->fills_bounds_opaquely());
+ EXPECT_EQ(transparent, layer->background_color());
+ EXPECT_EQ(transparent, layer->GetTargetColor());
+
+ std::unique_ptr<Layer> old_layer(owner.RecreateLayer());
+ EXPECT_FALSE(owner.layer()->fills_bounds_opaquely());
+ EXPECT_EQ(transparent, owner.layer()->background_color());
+ EXPECT_EQ(transparent, owner.layer()->GetTargetColor());
+}
+
+TEST(LayerOwnerTest, RecreateRootLayerWithNullCompositor) {
+ LayerOwner owner;
+ Layer* layer = new Layer;
+ owner.SetLayer(layer);
+
+ std::unique_ptr<Layer> layer_copy = owner.RecreateLayer();
+
+ EXPECT_EQ(nullptr, owner.layer()->GetCompositor());
+ EXPECT_EQ(nullptr, layer_copy->GetCompositor());
+}
+
+TEST(LayerOwnerTest, InvertPropertyRemainSameWithRecreateLayer) {
+ LayerOwner owner;
+ Layer* layer = new Layer;
+ owner.SetLayer(layer);
+
+ layer->SetLayerInverted(true);
+ std::unique_ptr<Layer> old_layer1 = owner.RecreateLayer();
+ EXPECT_EQ(old_layer1->layer_inverted(), owner.layer()->layer_inverted());
+
+ old_layer1->SetLayerInverted(false);
+ std::unique_ptr<Layer> old_layer2 = owner.RecreateLayer();
+ EXPECT_EQ(old_layer2->layer_inverted(), owner.layer()->layer_inverted());
+}
+
+TEST(LayerOwnerTest, RecreateLayerWithTransform) {
+ LayerOwner owner;
+ Layer* layer = new Layer;
+ owner.SetLayer(layer);
+
+ gfx::Transform transform;
+ transform.Scale(2, 1);
+ transform.Translate(10, 5);
+
+ layer->SetTransform(transform);
+
+ std::unique_ptr<Layer> old_layer1 = owner.RecreateLayer();
+ // Both new layer and original layer have the same transform.
+ EXPECT_EQ(transform, old_layer1->GetTargetTransform());
+ EXPECT_EQ(transform, owner.layer()->GetTargetTransform());
+
+ // But they're now separated, so changing the old layer's transform
+ // should not affect the owner's.
+ owner.layer()->SetTransform(gfx::Transform());
+ EXPECT_EQ(transform, old_layer1->GetTargetTransform());
+ std::unique_ptr<Layer> old_layer2 = owner.RecreateLayer();
+ EXPECT_TRUE(old_layer2->GetTargetTransform().IsIdentity());
+ EXPECT_TRUE(owner.layer()->GetTargetTransform().IsIdentity());
+}
+
TEST_F(LayerOwnerTestWithCompositor, RecreateRootLayerWithCompositor) {
LayerOwner owner;
- owner.SetLayer(base::MakeUnique<Layer>());
- Layer* layer = owner.layer();
+ Layer* layer = new Layer;
+ owner.SetLayer(layer);
+
compositor()->SetRootLayer(layer);
std::unique_ptr<Layer> layer_copy = owner.RecreateLayer();
@@ -103,8 +201,8 @@
// of animations being cancelled.
TEST_F(LayerOwnerTestWithCompositor, RecreateRootLayerDuringAnimation) {
LayerOwner owner;
- owner.SetLayer(base::MakeUnique<Layer>());
- Layer* layer = owner.layer();
+ Layer* layer = new Layer;
+ owner.SetLayer(layer);
compositor()->SetRootLayer(layer);
std::unique_ptr<Layer> child(new Layer);
@@ -138,8 +236,8 @@
compositor()->SetRootLayer(root_layer.get());
LayerOwner owner;
- owner.SetLayer(base::MakeUnique<Layer>());
- Layer* layer = owner.layer();
+ Layer* layer = new Layer;
+ owner.SetLayer(layer);
root_layer->Add(layer);
std::unique_ptr<Layer> child(new Layer);
@@ -172,8 +270,8 @@
compositor()->SetRootLayer(root_layer.get());
LayerOwnerForTesting owner;
- owner.SetLayer(base::MakeUnique<Layer>());
- Layer* layer = owner.layer();
+ Layer* layer = new Layer;
+ owner.SetLayer(layer);
layer->SetOpacity(0.5f);
root_layer->Add(layer);
@@ -195,8 +293,8 @@
compositor()->SetRootLayer(root_layer.get());
LayerOwner owner;
- owner.SetLayer(base::MakeUnique<Layer>());
- Layer* layer = owner.layer();
+ Layer* layer = new Layer;
+ owner.SetLayer(layer);
root_layer->Add(layer);
layer->SetOpacity(0.5f);
« no previous file with comments | « ui/compositor/layer_owner_delegate.h ('k') | ui/compositor/layer_tree_owner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698