| Index: Source/core/animation/KeyframeEffectModelTest.cpp
|
| diff --git a/Source/core/animation/KeyframeEffectModelTest.cpp b/Source/core/animation/KeyframeEffectModelTest.cpp
|
| index 9c309d76a54da0107816198436abc2463f35fa6b..a0e2613e7585c838543b75405c3578cda1c60f91 100644
|
| --- a/Source/core/animation/KeyframeEffectModelTest.cpp
|
| +++ b/Source/core/animation/KeyframeEffectModelTest.cpp
|
| @@ -102,7 +102,8 @@ TEST(AnimationKeyframeEffectModel, BasicOperation)
|
| {
|
| AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(unknownAnimatableValue(3.0), unknownAnimatableValue(5.0));
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = effect->sample(0, 0.6, duration);
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| ASSERT_EQ(1UL, values->size());
|
| expectProperty(CSSPropertyLeft, values->at(0));
|
| expectDoubleValue(5.0, values->at(0));
|
| @@ -114,7 +115,9 @@ TEST(AnimationKeyframeEffectModel, CompositeReplaceNonInterpolable)
|
| keyframes[0]->setComposite(AnimationEffect::CompositeReplace);
|
| keyframes[1]->setComposite(AnimationEffect::CompositeReplace);
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(5.0, effect->sample(0, 0.6, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| + expectDoubleValue(5.0, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, CompositeReplace)
|
| @@ -123,7 +126,9 @@ TEST(AnimationKeyframeEffectModel, CompositeReplace)
|
| keyframes[0]->setComposite(AnimationEffect::CompositeReplace);
|
| keyframes[1]->setComposite(AnimationEffect::CompositeReplace);
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(3.0 * 0.4 + 5.0 * 0.6, effect->sample(0, 0.6, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| + expectDoubleValue(3.0 * 0.4 + 5.0 * 0.6, values->at(0));
|
| }
|
|
|
| // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
|
| @@ -133,7 +138,9 @@ TEST(AnimationKeyframeEffectModel, DISABLED_CompositeAdd)
|
| keyframes[0]->setComposite(AnimationEffect::CompositeAdd);
|
| keyframes[1]->setComposite(AnimationEffect::CompositeAdd);
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, effect->sample(0, 0.6, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| + expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, CompositeEaseIn)
|
| @@ -143,8 +150,11 @@ TEST(AnimationKeyframeEffectModel, CompositeEaseIn)
|
| keyframes[0]->setEasing(CubicBezierTimingFunction::preset(CubicBezierTimingFunction::EaseIn));
|
| keyframes[1]->setComposite(AnimationEffect::CompositeReplace);
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(3.8579516, effect->sample(0, 0.6, duration)->at(0));
|
| - expectDoubleValue(3.8582394, effect->sample(0, 0.6, duration * 100)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| + expectDoubleValue(3.8579516, values->at(0));
|
| + effect->sample(0, 0.6, duration * 100, values);
|
| + expectDoubleValue(3.8582394, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, CompositeCubicBezier)
|
| @@ -154,8 +164,11 @@ TEST(AnimationKeyframeEffectModel, CompositeCubicBezier)
|
| keyframes[0]->setEasing(CubicBezierTimingFunction::create(0.42, 0, 0.58, 1));
|
| keyframes[1]->setComposite(AnimationEffect::CompositeReplace);
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(4.3363357, effect->sample(0, 0.6, duration)->at(0));
|
| - expectDoubleValue(4.3362322, effect->sample(0, 0.6, duration * 1000)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| + expectDoubleValue(4.3363357, values->at(0));
|
| + effect->sample(0, 0.6, duration * 1000, values);
|
| + expectDoubleValue(4.3362322, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, ExtrapolateReplaceNonInterpolable)
|
| @@ -164,7 +177,9 @@ TEST(AnimationKeyframeEffectModel, ExtrapolateReplaceNonInterpolable)
|
| keyframes[0]->setComposite(AnimationEffect::CompositeReplace);
|
| keyframes[1]->setComposite(AnimationEffect::CompositeReplace);
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(5.0, effect->sample(0, 1.6, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 1.6, duration, values);
|
| + expectDoubleValue(5.0, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, ExtrapolateReplace)
|
| @@ -173,7 +188,9 @@ TEST(AnimationKeyframeEffectModel, ExtrapolateReplace)
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| keyframes[0]->setComposite(AnimationEffect::CompositeReplace);
|
| keyframes[1]->setComposite(AnimationEffect::CompositeReplace);
|
| - expectDoubleValue(3.0 * -0.6 + 5.0 * 1.6, effect->sample(0, 1.6, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 1.6, duration, values);
|
| + expectDoubleValue(3.0 * -0.6 + 5.0 * 1.6, values->at(0));
|
| }
|
|
|
| // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
|
| @@ -183,13 +200,17 @@ TEST(AnimationKeyframeEffectModel, DISABLED_ExtrapolateAdd)
|
| keyframes[0]->setComposite(AnimationEffect::CompositeAdd);
|
| keyframes[1]->setComposite(AnimationEffect::CompositeAdd);
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue((7.0 + 3.0) * -0.6 + (7.0 + 5.0) * 1.6, effect->sample(0, 1.6, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 1.6, duration, values);
|
| + expectDoubleValue((7.0 + 3.0) * -0.6 + (7.0 + 5.0) * 1.6, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, ZeroKeyframes)
|
| {
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(AnimatableValueKeyframeVector());
|
| - EXPECT_TRUE(effect->sample(0, 0.5, duration)->isEmpty());
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.5, duration, values);
|
| + EXPECT_TRUE(values->isEmpty());
|
| }
|
|
|
| // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
|
| @@ -201,7 +222,9 @@ TEST(AnimationKeyframeEffectModel, DISABLED_SingleKeyframeAtOffsetZero)
|
| keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0).get());
|
|
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(3.0, effect->sample(0, 0.6, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| + expectDoubleValue(3.0, values->at(0));
|
| }
|
|
|
| // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
|
| @@ -213,7 +236,9 @@ TEST(AnimationKeyframeEffectModel, DISABLED_SingleKeyframeAtOffsetOne)
|
| keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(5.0).get());
|
|
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(7.0 * 0.4 + 5.0 * 0.6, effect->sample(0, 0.6, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| + expectDoubleValue(7.0 * 0.4 + 5.0 * 0.6, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, MoreThanTwoKeyframes)
|
| @@ -230,8 +255,11 @@ TEST(AnimationKeyframeEffectModel, MoreThanTwoKeyframes)
|
| keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0).get());
|
|
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(4.0, effect->sample(0, 0.3, duration)->at(0));
|
| - expectDoubleValue(5.0, effect->sample(0, 0.8, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.3, duration, values);
|
| + expectDoubleValue(4.0, values->at(0));
|
| + effect->sample(0, 0.8, duration, values);
|
| + expectDoubleValue(5.0, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, EndKeyframeOffsetsUnspecified)
|
| @@ -246,9 +274,13 @@ TEST(AnimationKeyframeEffectModel, EndKeyframeOffsetsUnspecified)
|
| keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0).get());
|
|
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(3.0, effect->sample(0, 0.1, duration)->at(0));
|
| - expectDoubleValue(4.0, effect->sample(0, 0.6, duration)->at(0));
|
| - expectDoubleValue(5.0, effect->sample(0, 0.9, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.1, duration, values);
|
| + expectDoubleValue(3.0, values->at(0));
|
| + effect->sample(0, 0.6, duration, values);
|
| + expectDoubleValue(4.0, values->at(0));
|
| + effect->sample(0, 0.9, duration, values);
|
| + expectDoubleValue(5.0, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, SampleOnKeyframe)
|
| @@ -265,9 +297,13 @@ TEST(AnimationKeyframeEffectModel, SampleOnKeyframe)
|
| keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0).get());
|
|
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(3.0, effect->sample(0, 0.0, duration)->at(0));
|
| - expectDoubleValue(4.0, effect->sample(0, 0.5, duration)->at(0));
|
| - expectDoubleValue(5.0, effect->sample(0, 1.0, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.0, duration, values);
|
| + expectDoubleValue(3.0, values->at(0));
|
| + effect->sample(0, 0.5, duration, values);
|
| + expectDoubleValue(4.0, values->at(0));
|
| + effect->sample(0, 1.0, duration, values);
|
| + expectDoubleValue(5.0, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, MultipleKeyframesWithSameOffset)
|
| @@ -302,13 +338,21 @@ TEST(AnimationKeyframeEffectModel, MultipleKeyframesWithSameOffset)
|
| keyframes[8]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(7.0).get());
|
|
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(0.0, effect->sample(0, 0.0, duration)->at(0));
|
| - expectDoubleValue(2.0, effect->sample(0, 0.2, duration)->at(0));
|
| - expectDoubleValue(3.0, effect->sample(0, 0.4, duration)->at(0));
|
| - expectDoubleValue(5.0, effect->sample(0, 0.5, duration)->at(0));
|
| - expectDoubleValue(5.0, effect->sample(0, 0.6, duration)->at(0));
|
| - expectDoubleValue(6.0, effect->sample(0, 0.8, duration)->at(0));
|
| - expectDoubleValue(7.0, effect->sample(0, 1.0, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.0, duration, values);
|
| + expectDoubleValue(0.0, values->at(0));
|
| + effect->sample(0, 0.2, duration, values);
|
| + expectDoubleValue(2.0, values->at(0));
|
| + effect->sample(0, 0.4, duration, values);
|
| + expectDoubleValue(3.0, values->at(0));
|
| + effect->sample(0, 0.5, duration, values);
|
| + expectDoubleValue(5.0, values->at(0));
|
| + effect->sample(0, 0.6, duration, values);
|
| + expectDoubleValue(5.0, values->at(0));
|
| + effect->sample(0, 0.8, duration, values);
|
| + expectDoubleValue(6.0, values->at(0));
|
| + effect->sample(0, 1.0, duration, values);
|
| + expectDoubleValue(7.0, values->at(0));
|
| }
|
|
|
| // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
|
| @@ -324,7 +368,9 @@ TEST(AnimationKeyframeEffectModel, DISABLED_PerKeyframeComposite)
|
| keyframes[1]->setComposite(AnimationEffect::CompositeAdd);
|
|
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(3.0 * 0.4 + (7.0 + 5.0) * 0.6, effect->sample(0, 0.6, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| + expectDoubleValue(3.0 * 0.4 + (7.0 + 5.0) * 0.6, values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, MultipleProperties)
|
| @@ -340,7 +386,8 @@ TEST(AnimationKeyframeEffectModel, MultipleProperties)
|
| keyframes[1]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(6.0).get());
|
|
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = effect->sample(0, 0.6, duration);
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| EXPECT_EQ(2UL, values->size());
|
| Interpolation* leftValue = findValue(*values.get(), CSSPropertyLeft);
|
| ASSERT_TRUE(leftValue);
|
| @@ -357,7 +404,8 @@ TEST(AnimationKeyframeEffectModel, DISABLED_RecompositeCompositableValue)
|
| keyframes[0]->setComposite(AnimationEffect::CompositeAdd);
|
| keyframes[1]->setComposite(AnimationEffect::CompositeAdd);
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = effect->sample(0, 0.6, duration);
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.6, duration, values);
|
| expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values->at(0));
|
| expectDoubleValue((9.0 + 3.0) * 0.4 + (9.0 + 5.0) * 0.6, values->at(0));
|
| }
|
| @@ -366,9 +414,13 @@ TEST(AnimationKeyframeEffectModel, MultipleIterations)
|
| {
|
| AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimatableValue(1.0), pixelAnimatableValue(3.0));
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - expectDoubleValue(2.0, effect->sample(0, 0.5, duration)->at(0));
|
| - expectDoubleValue(2.0, effect->sample(1, 0.5, duration)->at(0));
|
| - expectDoubleValue(2.0, effect->sample(2, 0.5, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0.5, duration, values);
|
| + expectDoubleValue(2.0, values->at(0));
|
| + effect->sample(1, 0.5, duration, values);
|
| + expectDoubleValue(2.0, values->at(0));
|
| + effect->sample(2, 0.5, duration, values);
|
| + expectDoubleValue(2.0, values->at(0));
|
| }
|
|
|
| // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
|
| @@ -387,15 +439,25 @@ TEST(AnimationKeyframeEffectModel, DISABLED_DependsOnUnderlyingValue)
|
| keyframes[2]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0).get());
|
|
|
| RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(keyframes);
|
| - EXPECT_TRUE(effect->sample(0, 0, duration)->at(0));
|
| - EXPECT_TRUE(effect->sample(0, 0.1, duration)->at(0));
|
| - EXPECT_TRUE(effect->sample(0, 0.25, duration)->at(0));
|
| - EXPECT_TRUE(effect->sample(0, 0.4, duration)->at(0));
|
| - EXPECT_FALSE(effect->sample(0, 0.5, duration)->at(0));
|
| - EXPECT_FALSE(effect->sample(0, 0.6, duration)->at(0));
|
| - EXPECT_FALSE(effect->sample(0, 0.75, duration)->at(0));
|
| - EXPECT_FALSE(effect->sample(0, 0.8, duration)->at(0));
|
| - EXPECT_FALSE(effect->sample(0, 1, duration)->at(0));
|
| + OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > values = nullptr;
|
| + effect->sample(0, 0, duration, values);
|
| + EXPECT_TRUE(values->at(0));
|
| + effect->sample(0, 0.1, duration, values);
|
| + EXPECT_TRUE(values->at(0));
|
| + effect->sample(0, 0.25, duration, values);
|
| + EXPECT_TRUE(values->at(0));
|
| + effect->sample(0, 0.4, duration, values);
|
| + EXPECT_TRUE(values->at(0));
|
| + effect->sample(0, 0.5, duration, values);
|
| + EXPECT_FALSE(values->at(0));
|
| + effect->sample(0, 0.6, duration, values);
|
| + EXPECT_FALSE(values->at(0));
|
| + effect->sample(0, 0.75, duration, values);
|
| + EXPECT_FALSE(values->at(0));
|
| + effect->sample(0, 0.8, duration, values);
|
| + EXPECT_FALSE(values->at(0));
|
| + effect->sample(0, 1, duration, values);
|
| + EXPECT_FALSE(values->at(0));
|
| }
|
|
|
| TEST(AnimationKeyframeEffectModel, AddSyntheticKeyframes)
|
|
|