summaryrefslogtreecommitdiffstats
path: root/ui/compositor/layer_animator_unittest.cc
diff options
context:
space:
mode:
authorantrim@chromium.org <antrim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-20 22:35:43 +0000
committerantrim@chromium.org <antrim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-20 22:35:43 +0000
commitdf55f237ba4267add48468a1ee5b9498642d0dce (patch)
tree9be3f01ccfb2c3398b33682c279689b493386458 /ui/compositor/layer_animator_unittest.cc
parentf51867e134ea4120064e5be1e2e976433e3afd68 (diff)
downloadchromium_src-df55f237ba4267add48468a1ee5b9498642d0dce.zip
chromium_src-df55f237ba4267add48468a1ee5b9498642d0dce.tar.gz
chromium_src-df55f237ba4267add48468a1ee5b9498642d0dce.tar.bz2
Let Layer.SetNNN methods respect ENQUEUE_ANIMATION strategy.
It will fix regression with no scale animation on locking. BUG=138171 Review URL: https://chromiumcodereview.appspot.com/11280090 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168891 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/compositor/layer_animator_unittest.cc')
-rw-r--r--ui/compositor/layer_animator_unittest.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/ui/compositor/layer_animator_unittest.cc b/ui/compositor/layer_animator_unittest.cc
index ff6d164..e1eb67c 100644
--- a/ui/compositor/layer_animator_unittest.cc
+++ b/ui/compositor/layer_animator_unittest.cc
@@ -1737,4 +1737,34 @@ TEST(LayerAnimatorTest, ObserverDeletesAnimatorAfterAborted) {
EXPECT_TRUE(observer_was_deleted);
}
+
+TEST(LayerAnimatorTest, TestSetterRespectEnqueueStrategy) {
+ scoped_refptr<LayerAnimator> animator(LayerAnimator::CreateDefaultAnimator());
+ animator->set_disable_timer_for_test(true);
+
+ TestLayerAnimationDelegate delegate;
+ animator->SetDelegate(&delegate);
+
+ float start_opacity = 0.0f;
+ float target_opacity = 1.0f;
+ float magic_opacity = 0.123f;
+
+ delegate.SetOpacityFromAnimation(start_opacity);
+
+ ScopedLayerAnimationSettings settings(animator);
+ settings.SetPreemptionStrategy(
+ LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
+ settings.SetTransitionDuration(base::TimeDelta::FromSeconds(1));
+ animator->SetOpacity(target_opacity);
+
+ EXPECT_EQ(start_opacity, delegate.GetOpacityForAnimation());
+
+ settings.SetPreemptionStrategy(
+ LayerAnimator::ENQUEUE_NEW_ANIMATION);
+ settings.SetTransitionDuration(base::TimeDelta());
+ animator->SetOpacity(magic_opacity);
+
+ EXPECT_EQ(start_opacity, delegate.GetOpacityForAnimation());
+}
+
} // namespace ui