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

Unified Diff: ui/compositor/layer_unittest.cc

Issue 1125283015: Update Layer::GetTargetColor to account for animation state (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add Layer unittests Created 5 years, 7 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_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/compositor/layer_unittest.cc
diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc
index 6efe2d23642bd7d2fc94eb8c7160cbd4491285de..db9382305f8634be6c772a64e8f2c7fa616bd841 100644
--- a/ui/compositor/layer_unittest.cc
+++ b/ui/compositor/layer_unittest.cc
@@ -29,6 +29,8 @@
#include "ui/compositor/layer_animator.h"
#include "ui/compositor/paint_context.h"
#include "ui/compositor/paint_recorder.h"
+#include "ui/compositor/scoped_animation_duration_scale_mode.h"
+#include "ui/compositor/scoped_layer_animation_settings.h"
#include "ui/compositor/test/context_factories_for_test.h"
#include "ui/compositor/test/draw_waiter_for_test.h"
#include "ui/compositor/test/test_compositor_host.h"
@@ -1604,6 +1606,77 @@ TEST_F(LayerWithRealCompositorTest, SwitchCCLayerAnimations) {
EXPECT_FLOAT_EQ(l1->opacity(), 0.5f);
}
+// Tests that when a LAYER_SOLID_COLOR has its CC layer switched, that
+// opaqueness and color set while not animating, are maintained.
+TEST_F(LayerWithRealCompositorTest, SwitchCCLayerSolidColorNotAnimating) {
+ SkColor transparent = SK_ColorTRANSPARENT;
+ scoped_ptr<Layer> root(CreateLayer(LAYER_SOLID_COLOR));
+ GetCompositor()->SetRootLayer(root.get());
+ root->SetFillsBoundsOpaquely(false);
+ root->SetColor(transparent);
+
+ ASSERT_FALSE(root->fills_bounds_opaquely());
danakj 2015/05/19 21:56:25 EXPECT rather than ASSERT everywhere
jonross 2015/05/20 01:03:54 Done.
+ ASSERT_FALSE(
+ root->GetAnimator()->IsAnimatingProperty(LayerAnimationElement::COLOR));
+ ASSERT_EQ(transparent, root->background_color());
+ ASSERT_EQ(transparent, root->GetTargetColor());
+
+ // Changing the underlying layer should not affect targets.
+ root->SwitchCCLayerForTest();
+
+ EXPECT_FALSE(root->fills_bounds_opaquely());
+ EXPECT_FALSE(
+ root->GetAnimator()->IsAnimatingProperty(LayerAnimationElement::COLOR));
+ EXPECT_EQ(transparent, root->background_color());
+ EXPECT_EQ(transparent, root->GetTargetColor());
+}
+
+// Tests that when a LAYER_SOLID_COLOR has its CC layer switched during an
+// animation of its opaquness and color, that both the current values, and the
+// targets are maintained.
+TEST_F(LayerWithRealCompositorTest, SwitchCCLayerSolidColorWhileAnimating) {
+ SkColor transparent = SK_ColorTRANSPARENT;
+ scoped_ptr<Layer> root(CreateLayer(LAYER_SOLID_COLOR));
+ GetCompositor()->SetRootLayer(root.get());
+ root->SetColor(SK_ColorBLACK);
+
+ ASSERT_TRUE(root->fills_bounds_opaquely());
+ ASSERT_EQ(SK_ColorBLACK, root->GetTargetColor());
+
+ scoped_ptr<ui::ScopedAnimationDurationScaleMode> long_duration_animation(
+ new ui::ScopedAnimationDurationScaleMode(
+ ui::ScopedAnimationDurationScaleMode::SLOW_DURATION));
+ {
+ ui::ScopedLayerAnimationSettings animation(root->GetAnimator());
+ animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+ root->SetFillsBoundsOpaquely(false);
+ root->SetColor(transparent);
+ }
+
+ EXPECT_TRUE(root->fills_bounds_opaquely());
+ EXPECT_TRUE(
+ root->GetAnimator()->IsAnimatingProperty(LayerAnimationElement::COLOR));
+ EXPECT_EQ(SK_ColorBLACK, root->background_color());
+ EXPECT_EQ(transparent, root->GetTargetColor());
+
+ // Changing the underlying layer should not affect targets.
+ root->SwitchCCLayerForTest();
+
+ EXPECT_TRUE(root->fills_bounds_opaquely());
+ EXPECT_TRUE(
+ root->GetAnimator()->IsAnimatingProperty(LayerAnimationElement::COLOR));
+ EXPECT_EQ(SK_ColorBLACK, root->background_color());
+ EXPECT_EQ(transparent, root->GetTargetColor());
+
+ // End all animations.
+ root->GetAnimator()->StopAnimating();
+ EXPECT_FALSE(root->fills_bounds_opaquely());
+ EXPECT_FALSE(
+ root->GetAnimator()->IsAnimatingProperty(LayerAnimationElement::COLOR));
+ EXPECT_EQ(transparent, root->background_color());
+ EXPECT_EQ(transparent, root->GetTargetColor());
+}
+
// Tests that the animators in the layer tree is added to the
// animator-collection when the root-layer is set to the compositor.
TEST_F(LayerWithDelegateTest, RootLayerAnimatorsInCompositor) {
« no previous file with comments | « ui/compositor/layer_owner_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698