| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 #include "testing/gtest/include/gtest/gtest.h" | 59 #include "testing/gtest/include/gtest/gtest.h" |
| 60 | 60 |
| 61 namespace blink { | 61 namespace blink { |
| 62 | 62 |
| 63 class AnimationCompositorAnimationsTest : public ::testing::Test { | 63 class AnimationCompositorAnimationsTest : public ::testing::Test { |
| 64 protected: | 64 protected: |
| 65 RefPtr<TimingFunction> linear_timing_function_; | 65 RefPtr<TimingFunction> linear_timing_function_; |
| 66 RefPtr<TimingFunction> cubic_ease_timing_function_; | 66 RefPtr<TimingFunction> cubic_ease_timing_function_; |
| 67 RefPtr<TimingFunction> cubic_custom_timing_function_; | 67 RefPtr<TimingFunction> cubic_custom_timing_function_; |
| 68 RefPtr<TimingFunction> step_timing_function_; | 68 RefPtr<TimingFunction> step_timing_function_; |
| 69 RefPtr<TimingFunction> frames_timing_function_; |
| 69 | 70 |
| 70 Timing timing_; | 71 Timing timing_; |
| 71 CompositorAnimations::CompositorTiming compositor_timing_; | 72 CompositorAnimations::CompositorTiming compositor_timing_; |
| 72 std::unique_ptr<AnimatableValueKeyframeVector> keyframe_vector2_; | 73 std::unique_ptr<AnimatableValueKeyframeVector> keyframe_vector2_; |
| 73 Persistent<AnimatableValueKeyframeEffectModel> keyframe_animation_effect2_; | 74 Persistent<AnimatableValueKeyframeEffectModel> keyframe_animation_effect2_; |
| 74 std::unique_ptr<AnimatableValueKeyframeVector> keyframe_vector5_; | 75 std::unique_ptr<AnimatableValueKeyframeVector> keyframe_vector5_; |
| 75 Persistent<AnimatableValueKeyframeEffectModel> keyframe_animation_effect5_; | 76 Persistent<AnimatableValueKeyframeEffectModel> keyframe_animation_effect5_; |
| 76 | 77 |
| 77 Persistent<Document> document_; | 78 Persistent<Document> document_; |
| 78 Persistent<Element> element_; | 79 Persistent<Element> element_; |
| 79 Persistent<AnimationTimeline> timeline_; | 80 Persistent<AnimationTimeline> timeline_; |
| 80 std::unique_ptr<DummyPageHolder> page_holder_; | 81 std::unique_ptr<DummyPageHolder> page_holder_; |
| 81 | 82 |
| 82 void SetUp() override { | 83 void SetUp() override { |
| 83 linear_timing_function_ = LinearTimingFunction::Shared(); | 84 linear_timing_function_ = LinearTimingFunction::Shared(); |
| 84 cubic_ease_timing_function_ = CubicBezierTimingFunction::Preset( | 85 cubic_ease_timing_function_ = CubicBezierTimingFunction::Preset( |
| 85 CubicBezierTimingFunction::EaseType::EASE); | 86 CubicBezierTimingFunction::EaseType::EASE); |
| 86 cubic_custom_timing_function_ = | 87 cubic_custom_timing_function_ = |
| 87 CubicBezierTimingFunction::Create(1, 2, 3, 4); | 88 CubicBezierTimingFunction::Create(1, 2, 3, 4); |
| 88 step_timing_function_ = | 89 step_timing_function_ = |
| 89 StepsTimingFunction::Create(1, StepsTimingFunction::StepPosition::END); | 90 StepsTimingFunction::Create(1, StepsTimingFunction::StepPosition::END); |
| 91 frames_timing_function_ = FramesTimingFunction::Create(2); |
| 90 | 92 |
| 91 timing_ = CreateCompositableTiming(); | 93 timing_ = CreateCompositableTiming(); |
| 92 compositor_timing_ = CompositorAnimations::CompositorTiming(); | 94 compositor_timing_ = CompositorAnimations::CompositorTiming(); |
| 93 // Make sure the CompositableTiming is really compositable, otherwise | 95 // Make sure the CompositableTiming is really compositable, otherwise |
| 94 // most other tests will fail. | 96 // most other tests will fail. |
| 95 ASSERT_TRUE(ConvertTimingForCompositor(timing_, compositor_timing_)); | 97 ASSERT_TRUE(ConvertTimingForCompositor(timing_, compositor_timing_)); |
| 96 | 98 |
| 97 keyframe_vector2_ = CreateCompositableFloatKeyframeVector(2); | 99 keyframe_vector2_ = CreateCompositableFloatKeyframeVector(2); |
| 98 keyframe_animation_effect2_ = | 100 keyframe_animation_effect2_ = |
| 99 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector2_); | 101 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector2_); |
| (...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 TEST_F(AnimationCompositorAnimationsTest, | 605 TEST_F(AnimationCompositorAnimationsTest, |
| 604 isCandidateForAnimationOnCompositorTimingFunctionSteps) { | 606 isCandidateForAnimationOnCompositorTimingFunctionSteps) { |
| 605 timing_.timing_function = step_timing_function_; | 607 timing_.timing_function = step_timing_function_; |
| 606 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( | 608 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 607 timing_, *keyframe_animation_effect2_)); | 609 timing_, *keyframe_animation_effect2_)); |
| 608 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( | 610 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 609 timing_, *keyframe_animation_effect5_)); | 611 timing_, *keyframe_animation_effect5_)); |
| 610 } | 612 } |
| 611 | 613 |
| 612 TEST_F(AnimationCompositorAnimationsTest, | 614 TEST_F(AnimationCompositorAnimationsTest, |
| 615 isCandidateForAnimationOnCompositorTimingFunctionFrames) { |
| 616 timing_.timing_function = frames_timing_function_; |
| 617 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 618 timing_, *keyframe_animation_effect2_)); |
| 619 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 620 timing_, *keyframe_animation_effect5_)); |
| 621 } |
| 622 |
| 623 TEST_F(AnimationCompositorAnimationsTest, |
| 613 isCandidateForAnimationOnCompositorTimingFunctionChainedLinear) { | 624 isCandidateForAnimationOnCompositorTimingFunctionChainedLinear) { |
| 614 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( | 625 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 615 timing_, *keyframe_animation_effect2_)); | 626 timing_, *keyframe_animation_effect2_)); |
| 616 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( | 627 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 617 timing_, *keyframe_animation_effect5_)); | 628 timing_, *keyframe_animation_effect5_)); |
| 618 } | 629 } |
| 619 | 630 |
| 620 TEST_F( | 631 TEST_F( |
| 621 AnimationCompositorAnimationsTest, | 632 AnimationCompositorAnimationsTest, |
| 622 isCandidateForAnimationOnCompositorNonLinearTimingFunctionOnFirstOrLastFrame
) { | 633 isCandidateForAnimationOnCompositorNonLinearTimingFunctionOnFirstOrLastFrame
) { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 672 (*keyframe_vector5_)[1]->SetEasing(cubic_ease_timing_function_.Get()); | 683 (*keyframe_vector5_)[1]->SetEasing(cubic_ease_timing_function_.Get()); |
| 673 (*keyframe_vector5_)[2]->SetEasing(cubic_ease_timing_function_.Get()); | 684 (*keyframe_vector5_)[2]->SetEasing(cubic_ease_timing_function_.Get()); |
| 674 (*keyframe_vector5_)[3]->SetEasing(linear_timing_function_.Get()); | 685 (*keyframe_vector5_)[3]->SetEasing(linear_timing_function_.Get()); |
| 675 keyframe_animation_effect5_ = | 686 keyframe_animation_effect5_ = |
| 676 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector5_); | 687 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector5_); |
| 677 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( | 688 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 678 timing_, *keyframe_animation_effect5_)); | 689 timing_, *keyframe_animation_effect5_)); |
| 679 } | 690 } |
| 680 | 691 |
| 681 TEST_F(AnimationCompositorAnimationsTest, | 692 TEST_F(AnimationCompositorAnimationsTest, |
| 682 isCandidateForAnimationOnCompositorTimingFunctionWithStepOkay) { | 693 isCandidateForAnimationOnCompositorTimingFunctionWithStepOrFrameOkay) { |
| 683 (*keyframe_vector2_)[0]->SetEasing(step_timing_function_.Get()); | 694 (*keyframe_vector2_)[0]->SetEasing(step_timing_function_.Get()); |
| 684 keyframe_animation_effect2_ = | 695 keyframe_animation_effect2_ = |
| 685 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector2_); | 696 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector2_); |
| 686 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( | 697 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 687 timing_, *keyframe_animation_effect2_)); | 698 timing_, *keyframe_animation_effect2_)); |
| 688 | 699 |
| 700 (*keyframe_vector2_)[0]->SetEasing(frames_timing_function_.Get()); |
| 701 keyframe_animation_effect2_ = |
| 702 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector2_); |
| 703 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 704 timing_, *keyframe_animation_effect2_)); |
| 705 |
| 689 (*keyframe_vector5_)[0]->SetEasing(step_timing_function_.Get()); | 706 (*keyframe_vector5_)[0]->SetEasing(step_timing_function_.Get()); |
| 690 (*keyframe_vector5_)[1]->SetEasing(linear_timing_function_.Get()); | 707 (*keyframe_vector5_)[1]->SetEasing(linear_timing_function_.Get()); |
| 691 (*keyframe_vector5_)[2]->SetEasing(cubic_ease_timing_function_.Get()); | 708 (*keyframe_vector5_)[2]->SetEasing(cubic_ease_timing_function_.Get()); |
| 692 (*keyframe_vector5_)[3]->SetEasing(linear_timing_function_.Get()); | 709 (*keyframe_vector5_)[3]->SetEasing(frames_timing_function_.Get()); |
| 693 keyframe_animation_effect5_ = | 710 keyframe_animation_effect5_ = |
| 694 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector5_); | 711 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector5_); |
| 695 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( | 712 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 696 timing_, *keyframe_animation_effect5_)); | 713 timing_, *keyframe_animation_effect5_)); |
| 697 | 714 |
| 698 (*keyframe_vector5_)[0]->SetEasing(linear_timing_function_.Get()); | 715 (*keyframe_vector5_)[0]->SetEasing(frames_timing_function_.Get()); |
| 699 (*keyframe_vector5_)[1]->SetEasing(step_timing_function_.Get()); | 716 (*keyframe_vector5_)[1]->SetEasing(step_timing_function_.Get()); |
| 700 (*keyframe_vector5_)[2]->SetEasing(cubic_ease_timing_function_.Get()); | 717 (*keyframe_vector5_)[2]->SetEasing(cubic_ease_timing_function_.Get()); |
| 701 (*keyframe_vector5_)[3]->SetEasing(linear_timing_function_.Get()); | 718 (*keyframe_vector5_)[3]->SetEasing(linear_timing_function_.Get()); |
| 702 keyframe_animation_effect5_ = | 719 keyframe_animation_effect5_ = |
| 703 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector5_); | 720 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector5_); |
| 704 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( | 721 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 705 timing_, *keyframe_animation_effect5_)); | 722 timing_, *keyframe_animation_effect5_)); |
| 706 | 723 |
| 707 (*keyframe_vector5_)[0]->SetEasing(linear_timing_function_.Get()); | 724 (*keyframe_vector5_)[0]->SetEasing(linear_timing_function_.Get()); |
| 708 (*keyframe_vector5_)[1]->SetEasing(cubic_ease_timing_function_.Get()); | 725 (*keyframe_vector5_)[1]->SetEasing(frames_timing_function_.Get()); |
| 709 (*keyframe_vector5_)[2]->SetEasing(cubic_ease_timing_function_.Get()); | 726 (*keyframe_vector5_)[2]->SetEasing(cubic_ease_timing_function_.Get()); |
| 710 (*keyframe_vector5_)[3]->SetEasing(step_timing_function_.Get()); | 727 (*keyframe_vector5_)[3]->SetEasing(step_timing_function_.Get()); |
| 711 keyframe_animation_effect5_ = | 728 keyframe_animation_effect5_ = |
| 712 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector5_); | 729 AnimatableValueKeyframeEffectModel::Create(*keyframe_vector5_); |
| 713 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( | 730 EXPECT_TRUE(IsCandidateForAnimationOnCompositor( |
| 714 timing_, *keyframe_animation_effect5_)); | 731 timing_, *keyframe_animation_effect5_)); |
| 715 } | 732 } |
| 716 | 733 |
| 717 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositor) { | 734 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositor) { |
| 718 AnimatableValueKeyframeVector basic_frames_vector; | 735 AnimatableValueKeyframeVector basic_frames_vector; |
| (...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1307 | 1324 |
| 1308 // Clearing the effect node entirely should also produce false. | 1325 // Clearing the effect node entirely should also produce false. |
| 1309 properties.ClearEffect(); | 1326 properties.ClearEffect(); |
| 1310 EXPECT_FALSE(CompositorAnimations::CanStartAnimationOnCompositor(*element)); | 1327 EXPECT_FALSE(CompositorAnimations::CanStartAnimationOnCompositor(*element)); |
| 1311 | 1328 |
| 1312 element->SetLayoutObject(nullptr); | 1329 element->SetLayoutObject(nullptr); |
| 1313 LayoutObjectProxy::Dispose(layout_object); | 1330 LayoutObjectProxy::Dispose(layout_object); |
| 1314 } | 1331 } |
| 1315 | 1332 |
| 1316 } // namespace blink | 1333 } // namespace blink |
| OLD | NEW |