| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "cc/animation/keyframed_animation_curve.h" | 5 #include "cc/animation/keyframed_animation_curve.h" |
| 6 | 6 |
| 7 #include "cc/animation/transform_operations.h" | 7 #include "cc/animation/transform_operations.h" |
| 8 #include "testing/gmock/include/gmock/gmock.h" | 8 #include "testing/gmock/include/gmock/gmock.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include "ui/gfx/animation/tween.h" | 10 #include "ui/gfx/animation/tween.h" |
| (...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 670 TransformKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), operations5, | 670 TransformKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), operations5, |
| 671 EaseTimingFunction::Create())); | 671 EaseTimingFunction::Create())); |
| 672 | 672 |
| 673 EXPECT_TRUE(curve2->MaximumTargetScale(true, &maximum_scale)); | 673 EXPECT_TRUE(curve2->MaximumTargetScale(true, &maximum_scale)); |
| 674 EXPECT_EQ(0.8f, maximum_scale); | 674 EXPECT_EQ(0.8f, maximum_scale); |
| 675 | 675 |
| 676 EXPECT_TRUE(curve2->MaximumTargetScale(false, &maximum_scale)); | 676 EXPECT_TRUE(curve2->MaximumTargetScale(false, &maximum_scale)); |
| 677 EXPECT_EQ(0.6f, maximum_scale); | 677 EXPECT_EQ(0.6f, maximum_scale); |
| 678 } | 678 } |
| 679 | 679 |
| 680 // Tests that starting animation scale is computed as expected. |
| 681 TEST(KeyframedAnimationCurveTest, AnimationStartScale) { |
| 682 scoped_ptr<KeyframedTransformAnimationCurve> curve( |
| 683 KeyframedTransformAnimationCurve::Create()); |
| 684 |
| 685 TransformOperations operations1; |
| 686 curve->AddKeyframe( |
| 687 TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr)); |
| 688 operations1.AppendScale(2.f, -3.f, 1.f); |
| 689 curve->AddKeyframe( |
| 690 TransformKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), operations1, |
| 691 EaseTimingFunction::Create())); |
| 692 |
| 693 float start_scale = 0.f; |
| 694 |
| 695 // Forward direction |
| 696 EXPECT_TRUE(curve->AnimationStartScale(true, &start_scale)); |
| 697 EXPECT_EQ(1.f, start_scale); |
| 698 |
| 699 // Backward direction |
| 700 EXPECT_TRUE(curve->AnimationStartScale(false, &start_scale)); |
| 701 EXPECT_EQ(3.f, start_scale); |
| 702 |
| 703 TransformOperations operations2; |
| 704 operations2.AppendScale(6.f, 3.f, 2.f); |
| 705 curve->AddKeyframe( |
| 706 TransformKeyframe::Create(base::TimeDelta::FromSecondsD(2.f), operations2, |
| 707 EaseTimingFunction::Create())); |
| 708 |
| 709 // Backward direction |
| 710 EXPECT_TRUE(curve->AnimationStartScale(true, &start_scale)); |
| 711 EXPECT_EQ(1.f, start_scale); |
| 712 |
| 713 // Backward direction |
| 714 EXPECT_TRUE(curve->AnimationStartScale(false, &start_scale)); |
| 715 EXPECT_EQ(6.f, start_scale); |
| 716 |
| 717 TransformOperations operations3; |
| 718 operations3.AppendRotate(1.f, 0.f, 0.f, 90.f); |
| 719 curve->AddKeyframe( |
| 720 TransformKeyframe::Create(base::TimeDelta::FromSecondsD(3.f), operations3, |
| 721 EaseTimingFunction::Create())); |
| 722 |
| 723 EXPECT_FALSE(curve->AnimationStartScale(false, &start_scale)); |
| 724 EXPECT_EQ(0.f, start_scale); |
| 725 } |
| 726 |
| 680 // Tests that an animation with a curve timing function works as expected. | 727 // Tests that an animation with a curve timing function works as expected. |
| 681 TEST(KeyframedAnimationCurveTest, CurveTiming) { | 728 TEST(KeyframedAnimationCurveTest, CurveTiming) { |
| 682 scoped_ptr<KeyframedFloatAnimationCurve> curve( | 729 scoped_ptr<KeyframedFloatAnimationCurve> curve( |
| 683 KeyframedFloatAnimationCurve::Create()); | 730 KeyframedFloatAnimationCurve::Create()); |
| 684 curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 0.f, nullptr)); | 731 curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 0.f, nullptr)); |
| 685 curve->AddKeyframe( | 732 curve->AddKeyframe( |
| 686 FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), 1.f, nullptr)); | 733 FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), 1.f, nullptr)); |
| 687 curve->SetTimingFunction( | 734 curve->SetTimingFunction( |
| 688 CubicBezierTimingFunction::Create(0.75f, 0.f, 0.25f, 1.f).Pass()); | 735 CubicBezierTimingFunction::Create(0.75f, 0.f, 0.25f, 1.f).Pass()); |
| 689 EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f))); | 736 EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f))); |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 834 curve->SetTimingFunction( | 881 curve->SetTimingFunction( |
| 835 CubicBezierTimingFunction::Create(0.5f, -0.5f, 0.5f, 1.5f).Pass()); | 882 CubicBezierTimingFunction::Create(0.5f, -0.5f, 0.5f, 1.5f).Pass()); |
| 836 EXPECT_LE(curve->GetValue(base::TimeDelta::FromSecondsD(1.f)), | 883 EXPECT_LE(curve->GetValue(base::TimeDelta::FromSecondsD(1.f)), |
| 837 0.f); // c(.25) < 0 | 884 0.f); // c(.25) < 0 |
| 838 EXPECT_GE(curve->GetValue(base::TimeDelta::FromSecondsD(3.f)), | 885 EXPECT_GE(curve->GetValue(base::TimeDelta::FromSecondsD(3.f)), |
| 839 9.f); // c(.75) > 1 | 886 9.f); // c(.75) > 1 |
| 840 } | 887 } |
| 841 | 888 |
| 842 } // namespace | 889 } // namespace |
| 843 } // namespace cc | 890 } // namespace cc |
| OLD | NEW |