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

Unified Diff: Source/core/animation/CompositorAnimationsTest.cpp

Issue 68173013: Web Animations CSS: More cleaning of new CompositorAnimation code. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 1 month 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
Index: Source/core/animation/CompositorAnimationsTest.cpp
diff --git a/Source/core/animation/CompositorAnimationsTest.cpp b/Source/core/animation/CompositorAnimationsTest.cpp
index ea6337f10fb0502979f28af5b542fd5c40b65e77..8b7d5a689d595bce5c1a7faa709e029b29d6758b 100644
--- a/Source/core/animation/CompositorAnimationsTest.cpp
+++ b/Source/core/animation/CompositorAnimationsTest.cpp
@@ -43,6 +43,7 @@
#include "platform/transforms/TransformOperations.h"
#include "platform/transforms/TranslateTransformOperation.h"
#include "public/platform/WebAnimation.h"
+#include "wtf/HashFunctions.h"
#include "wtf/OwnPtr.h"
#include "wtf/PassOwnPtr.h"
#include "wtf/PassRefPtr.h"
@@ -68,6 +69,7 @@ protected:
RefPtr<TimingFunction> m_stepTimingFunction;
Timing m_timing;
+ CompositorAnimationsImpl::CompositorTiming m_compositorTiming;
KeyframeAnimationEffect::KeyframeVector m_keyframeVector2;
KeyframeAnimationEffect::KeyframeVector m_keyframeVector5;
@@ -81,6 +83,10 @@ protected:
m_stepTimingFunction = StepsTimingFunction::create(1, false);
m_timing = createCompositableTiming();
+ m_compositorTiming = CompositorAnimationsImpl::CompositorTiming();
+ // Make sure the CompositableTiming is really compositable, otherwise
+ // most other tests will fail.
+ ASSERT(convertTimingForCompositor(m_timing, m_compositorTiming));
m_keyframeVector2 = createCompositableFloatKeyframeVector(2);
m_keyframeVector5 = createCompositableFloatKeyframeVector(5);
@@ -88,6 +94,10 @@ protected:
public:
+ bool convertTimingForCompositor(const Timing& t, CompositorAnimationsImpl::CompositorTiming& out)
+ {
+ return CompositorAnimationsImpl::convertTimingForCompositor(t, out);
+ }
bool isCandidateForCompositor(const Timing& t, KeyframeAnimationEffect::KeyframeVector& frames)
{
return CompositorAnimationsImpl::isCandidateForCompositor(t, frames);
@@ -227,19 +237,29 @@ TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorKeyframeCS
TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorKeyframeMultipleCSSProperties)
{
+ // In this test, we cheat by using an AnimatableDouble even with Transform
+ // as the actual value isn't considered.
RefPtr<Keyframe> keyframeGoodMultiple = createDefaultKeyframe(CSSPropertyOpacity, AnimationEffect::CompositeReplace);
- // Cheat by using an AnimatableDouble as creating a AnimatableTransform is much harder.
keyframeGoodMultiple->setPropertyValue(CSSPropertyWebkitTransform, AnimatableDouble::create(10.0).get());
EXPECT_TRUE(isCandidateForCompositor(*keyframeGoodMultiple.get()));
RefPtr<Keyframe> keyframeBadMultipleOp = createDefaultKeyframe(CSSPropertyOpacity, AnimationEffect::CompositeAdd);
- // Cheat by using an AnimatableDouble as creating a AnimatableTransform is much harder.
keyframeBadMultipleOp->setPropertyValue(CSSPropertyWebkitTransform, AnimatableDouble::create(10.0).get());
EXPECT_FALSE(isCandidateForCompositor(*keyframeBadMultipleOp.get()));
- RefPtr<Keyframe> keyframeBadMultipleID = createDefaultKeyframe(CSSPropertyOpacity, AnimationEffect::CompositeReplace);
- keyframeBadMultipleID->setPropertyValue(CSSPropertyColor, AnimatableDouble::create(10.0).get());
- EXPECT_FALSE(isCandidateForCompositor(*keyframeBadMultipleID.get()));
+ // Check both an unsupported property which hashes before and after the
+ // supported property.
+ typedef DefaultHash<CSSPropertyID>::Hash HashFunctions;
+
+ RefPtr<Keyframe> keyframeBadMultiple1ID = createDefaultKeyframe(CSSPropertyColor, AnimationEffect::CompositeReplace);
+ keyframeBadMultiple1ID->setPropertyValue(CSSPropertyOpacity, AnimatableDouble::create(10.0).get());
+ EXPECT_FALSE(isCandidateForCompositor(*keyframeBadMultiple1ID.get()));
+ EXPECT_LT(HashFunctions::hash(CSSPropertyColor), HashFunctions::hash(CSSPropertyOpacity));
+
+ RefPtr<Keyframe> keyframeBadMultiple2ID = createDefaultKeyframe(CSSPropertyWebkitTransform, AnimationEffect::CompositeReplace);
+ keyframeBadMultiple2ID->setPropertyValue(CSSPropertyWidth, AnimatableDouble::create(10.0).get());
+ EXPECT_FALSE(isCandidateForCompositor(*keyframeBadMultiple2ID.get()));
+ EXPECT_GT(HashFunctions::hash(CSSPropertyWebkitTransform), HashFunctions::hash(CSSPropertyWidth));
}
TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorKeyframeEffectGoodSingleFrame)
@@ -287,60 +307,161 @@ TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorKeyframeEf
EXPECT_FALSE(isCandidateForCompositor(*KeyframeAnimationEffect::create(framesMixedOps).get()));
}
-TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorTimingStartDelay)
+TEST_F(CoreAnimationCompositorAnimationsTest, ConvertTimingForCompositorStartDelay)
{
- m_timing.startDelay = 2.0;
- EXPECT_TRUE(isCandidateForCompositor(m_timing, m_keyframeVector2));
+ m_timing.iterationDuration = 20.0;
- m_timing.iterationCount = 5.0;
m_timing.startDelay = 2.0;
- EXPECT_FALSE(isCandidateForCompositor(m_timing, m_keyframeVector2));
+ EXPECT_FALSE(convertTimingForCompositor(m_timing, m_compositorTiming));
- m_timing.iterationCount = 5.0;
m_timing.startDelay = -2.0;
- EXPECT_TRUE(isCandidateForCompositor(m_timing, m_keyframeVector2));
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_DOUBLE_EQ(-2.0, m_compositorTiming.scaledTimeOffset);
}
-TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorTimingFillMode)
-{
- m_timing.fillMode = Timing::FillModeForwards;
- EXPECT_FALSE(isCandidateForCompositor(m_timing, m_keyframeVector2));
-}
-
-TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorTimingIterationStart)
+TEST_F(CoreAnimationCompositorAnimationsTest, ConvertTimingForCompositorIterationStart)
{
m_timing.iterationStart = 2.2;
- EXPECT_FALSE(isCandidateForCompositor(m_timing, m_keyframeVector2));
+ EXPECT_FALSE(convertTimingForCompositor(m_timing, m_compositorTiming));
}
-TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorTimingIterationCount)
+TEST_F(CoreAnimationCompositorAnimationsTest, ConvertTimingForCompositorIterationCount)
{
m_timing.iterationCount = 5.0;
- EXPECT_TRUE(isCandidateForCompositor(m_timing, m_keyframeVector2));
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_EQ(5, m_compositorTiming.adjustedIterationCount);
m_timing.iterationCount = 5.5;
- EXPECT_FALSE(isCandidateForCompositor(m_timing, m_keyframeVector2));
-
- m_timing.iterationCount = -1.0;
- EXPECT_FALSE(isCandidateForCompositor(m_timing, m_keyframeVector2));
+ EXPECT_FALSE(convertTimingForCompositor(m_timing, m_compositorTiming));
m_timing.iterationCount = std::numeric_limits<double>::infinity();
- EXPECT_FALSE(isCandidateForCompositor(m_timing, m_keyframeVector2));
+ EXPECT_FALSE(convertTimingForCompositor(m_timing, m_compositorTiming));
- m_timing.iterationCount = -std::numeric_limits<double>::infinity();
- EXPECT_FALSE(isCandidateForCompositor(m_timing, m_keyframeVector2));
+#ifndef NDEBUG
+ m_timing.iterationCount = -1;
+ EXPECT_DEATH(convertTimingForCompositor(m_timing, m_compositorTiming), "");
+#endif
}
-TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorTimingIterationDuration)
+TEST_F(CoreAnimationCompositorAnimationsTest, ConvertTimingForCompositorIterationsAndStartDelay)
{
- m_timing.hasIterationDuration = false;
- EXPECT_FALSE(isCandidateForCompositor(m_timing, m_keyframeVector2));
+ m_timing.iterationCount = 4.0;
+ m_timing.iterationDuration = 5.0;
+
+ m_timing.startDelay = -6.0;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_DOUBLE_EQ(-1.0, m_compositorTiming.scaledTimeOffset);
+ EXPECT_DOUBLE_EQ(3.0, m_compositorTiming.adjustedIterationCount);
+ EXPECT_FALSE(m_compositorTiming.reverse);
+
+ m_timing.iterationCount = 1.0;
+ m_timing.iterationDuration = 5.0;
+ m_timing.startDelay = -6.0;
+ EXPECT_FALSE(convertTimingForCompositor(m_timing, m_compositorTiming));
+
+ m_timing.iterationCount = 5.0;
+ m_timing.iterationDuration = 1.0;
+ m_timing.startDelay = -6.0;
+ EXPECT_FALSE(convertTimingForCompositor(m_timing, m_compositorTiming));
+}
+
+TEST_F(CoreAnimationCompositorAnimationsTest, ConvertTimingForCompositorPlaybackRate)
+{
+ m_timing.playbackRate = 2.0;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+
+ m_timing.playbackRate = 0.0;
+ EXPECT_FALSE(convertTimingForCompositor(m_timing, m_compositorTiming));
+
+ m_timing.playbackRate = -2.0;
+ EXPECT_FALSE(convertTimingForCompositor(m_timing, m_compositorTiming));
+}
+
+TEST_F(CoreAnimationCompositorAnimationsTest, ConvertTimingForCompositorPlaybackRateAdjustsDuration)
+{
+ m_timing.iterationDuration = 10.0;
+ m_timing.playbackRate = 2.0;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_DOUBLE_EQ(5.0, m_compositorTiming.scaledDuration);
}
-TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorTimingPlaybackRate)
+TEST_F(CoreAnimationCompositorAnimationsTest, ConvertTimingForCompositorPlaybackRateAdjustsOffset)
{
+ m_timing.iterationDuration = 12.0;
m_timing.playbackRate = 2.0;
+ m_timing.startDelay = -5.0;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_DOUBLE_EQ(6.0, m_compositorTiming.scaledDuration);
+ EXPECT_DOUBLE_EQ(-2.5, m_compositorTiming.scaledTimeOffset);
+}
+
+TEST_F(CoreAnimationCompositorAnimationsTest, ConvertTimingForCompositorDirection)
+{
+ m_timing.direction = Timing::PlaybackDirectionAlternate;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_TRUE(m_compositorTiming.alternate);
+ EXPECT_FALSE(m_compositorTiming.reverse);
+
+ m_timing.direction = Timing::PlaybackDirectionAlternateReverse;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_TRUE(m_compositorTiming.alternate);
+ EXPECT_TRUE(m_compositorTiming.reverse);
+
+ m_timing.direction = Timing::PlaybackDirectionReverse;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_FALSE(m_compositorTiming.alternate);
+ EXPECT_TRUE(m_compositorTiming.reverse);
+}
+
+TEST_F(CoreAnimationCompositorAnimationsTest, ConvertTimingForCompositorDirectionIterationsAndStartDelay)
+{
+ m_timing.direction = Timing::PlaybackDirectionAlternate;
+ m_timing.iterationCount = 4.0;
+ m_timing.iterationDuration = 5.0;
+ m_timing.startDelay = -6.0;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_DOUBLE_EQ(-1.0, m_compositorTiming.scaledTimeOffset);
+ EXPECT_EQ(3, m_compositorTiming.adjustedIterationCount);
+ EXPECT_TRUE(m_compositorTiming.alternate);
+ EXPECT_TRUE(m_compositorTiming.reverse);
+
+ m_timing.direction = Timing::PlaybackDirectionAlternate;
+ m_timing.iterationCount = 4.0;
+ m_timing.iterationDuration = 5.0;
+ m_timing.startDelay = -11.0;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_DOUBLE_EQ(-1.0, m_compositorTiming.scaledTimeOffset);
+ EXPECT_EQ(2, m_compositorTiming.adjustedIterationCount);
+ EXPECT_TRUE(m_compositorTiming.alternate);
+ EXPECT_FALSE(m_compositorTiming.reverse);
+
+ m_timing.direction = Timing::PlaybackDirectionAlternateReverse;
+ m_timing.iterationCount = 4.0;
+ m_timing.iterationDuration = 5.0;
+ m_timing.startDelay = -6.0;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_DOUBLE_EQ(-1.0, m_compositorTiming.scaledTimeOffset);
+ EXPECT_EQ(3, m_compositorTiming.adjustedIterationCount);
+ EXPECT_TRUE(m_compositorTiming.alternate);
+ EXPECT_FALSE(m_compositorTiming.reverse);
+
+ m_timing.direction = Timing::PlaybackDirectionAlternateReverse;
+ m_timing.iterationCount = 4.0;
+ m_timing.iterationDuration = 5.0;
+ m_timing.startDelay = -11.0;
+ EXPECT_TRUE(convertTimingForCompositor(m_timing, m_compositorTiming));
+ EXPECT_DOUBLE_EQ(-1.0, m_compositorTiming.scaledTimeOffset);
+ EXPECT_EQ(2, m_compositorTiming.adjustedIterationCount);
+ EXPECT_TRUE(m_compositorTiming.alternate);
+ EXPECT_TRUE(m_compositorTiming.reverse);
+}
+
+TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorTiming)
+{
EXPECT_TRUE(isCandidateForCompositor(m_timing, m_keyframeVector2));
+
+ m_timing.startDelay = 2.0;
+ EXPECT_FALSE(isCandidateForCompositor(m_timing, m_keyframeVector2));
}
TEST_F(CoreAnimationCompositorAnimationsTest, isCandidateForCompositorTimingTimingFunctionPassThru)
@@ -603,6 +724,7 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createSimpleOpacityAnimation)
.WillOnce(Return(mockAnimationPtr));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setIterations(1));
+ usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setTimeOffset(0.0));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setAlternatesDirection(false));
EXPECT_CALL(*mockAnimationPtr, delete_())
@@ -620,7 +742,7 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createSimpleOpacityAnimation)
result[0].clear();
}
-TEST_F(CoreAnimationCompositorAnimationsTest, createSimpleOpacityAnimationDurationPlaybackOffset)
+TEST_F(CoreAnimationCompositorAnimationsTest, createSimpleOpacityAnimationDurationPlayback)
{
// Animation to convert
RefPtr<KeyframeAnimationEffect> effect = createKeyframeAnimationEffect(
@@ -629,7 +751,6 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createSimpleOpacityAnimationDurati
m_timing.iterationDuration = 10.0;
m_timing.playbackRate = 2.0;
- m_timing.startDelay = 200.0;
// --
WebCompositorSupportMock mockCompositor;
@@ -640,8 +761,8 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createSimpleOpacityAnimationDurati
EXPECT_CALL(mockCompositor, createFloatAnimationCurve())
.WillOnce(Return(mockCurvePtr));
- usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(100.0, 2.0), blink::WebAnimationCurve::TimingFunctionTypeLinear));
- usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(105.0, 5.0)));
+ usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(0.0, 2.0), blink::WebAnimationCurve::TimingFunctionTypeLinear));
+ usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(5.0, 5.0)));
// Create animation
blink::WebAnimationMock* mockAnimationPtr = new blink::WebAnimationMock(blink::WebAnimation::TargetPropertyOpacity);
@@ -651,6 +772,7 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createSimpleOpacityAnimationDurati
.WillOnce(Return(mockAnimationPtr));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setIterations(1));
+ usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setTimeOffset(0.0));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setAlternatesDirection(false));
EXPECT_CALL(*mockAnimationPtr, delete_())
@@ -703,6 +825,7 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createMultipleKeyframeOpacityAnima
.WillOnce(Return(mockAnimationPtr));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setIterations(5));
+ usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setTimeOffset(0.0));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setAlternatesDirection(true));
EXPECT_CALL(*mockAnimationPtr, delete_())
@@ -728,8 +851,8 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createSimpleOpacityAnimationNegati
createReplaceOpKeyframe(CSSPropertyOpacity, AnimatableDouble::create(5.0).get(), 1.0));
m_timing.iterationCount = 5.0;
- m_timing.iterationDuration = 2.0;
- m_timing.startDelay = -3;
+ m_timing.iterationDuration = 1.75;
+ m_timing.startDelay = -3.25;
// --
WebCompositorSupportMock mockCompositor;
@@ -741,7 +864,7 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createSimpleOpacityAnimationNegati
.WillOnce(Return(mockCurvePtr));
usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(0.0, 2.0), blink::WebAnimationCurve::TimingFunctionTypeLinear));
- usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(2.0, 5.0)));
+ usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(1.75, 5.0)));
// Create animation
blink::WebAnimationMock* mockAnimationPtr = new blink::WebAnimationMock(blink::WebAnimation::TargetPropertyOpacity);
@@ -750,8 +873,8 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createSimpleOpacityAnimationNegati
usesMockCurve += EXPECT_CALL(mockCompositor, createAnimation(Ref(*mockCurvePtr), blink::WebAnimation::TargetPropertyOpacity, _))
.WillOnce(Return(mockAnimationPtr));
- usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setTimeOffset(-1.0));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setIterations(4));
+ usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setTimeOffset(-1.5));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setAlternatesDirection(false));
EXPECT_CALL(*mockAnimationPtr, delete_())
@@ -810,6 +933,7 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createMultipleKeyframeOpacityAnima
.WillOnce(Return(mockAnimationPtr));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setIterations(10));
+ usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setTimeOffset(0.0));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setAlternatesDirection(true));
EXPECT_CALL(*mockAnimationPtr, delete_())
@@ -869,6 +993,7 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createReversedOpacityAnimation)
.WillOnce(Return(mockAnimationPtr));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setIterations(10));
+ usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setTimeOffset(0.0));
usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setAlternatesDirection(true));
EXPECT_CALL(*mockAnimationPtr, delete_())
@@ -886,17 +1011,17 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createReversedOpacityAnimation)
result[0].clear();
}
-TEST_F(CoreAnimationCompositorAnimationsTest, createReversedOpacityAnimationDurationPlaybackOffset)
+TEST_F(CoreAnimationCompositorAnimationsTest, createReversedOpacityAnimationNegativeStartDelay)
{
// Animation to convert
RefPtr<KeyframeAnimationEffect> effect = createKeyframeAnimationEffect(
createReplaceOpKeyframe(CSSPropertyOpacity, AnimatableDouble::create(2.0).get(), 0),
createReplaceOpKeyframe(CSSPropertyOpacity, AnimatableDouble::create(5.0).get(), 1.0));
- m_timing.iterationDuration = 10.0;
- m_timing.playbackRate = 2.0;
- m_timing.startDelay = 200.0;
- m_timing.direction = Timing::PlaybackDirectionReverse;
+ m_timing.iterationCount = 5.0;
+ m_timing.iterationDuration = 2.0;
+ m_timing.startDelay = -3;
+ m_timing.direction = Timing::PlaybackDirectionAlternateReverse;
// --
WebCompositorSupportMock mockCompositor;
@@ -907,8 +1032,8 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createReversedOpacityAnimationDura
EXPECT_CALL(mockCompositor, createFloatAnimationCurve())
.WillOnce(Return(mockCurvePtr));
- usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(100.0, 5.0), blink::WebAnimationCurve::TimingFunctionTypeLinear));
- usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(105.0, 2.0)));
+ usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(0.0, 2.0), blink::WebAnimationCurve::TimingFunctionTypeLinear));
+ usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(blink::WebFloatKeyframe(2.0, 5.0)));
// Create animation
blink::WebAnimationMock* mockAnimationPtr = new blink::WebAnimationMock(blink::WebAnimation::TargetPropertyOpacity);
@@ -917,8 +1042,9 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createReversedOpacityAnimationDura
usesMockCurve += EXPECT_CALL(mockCompositor, createAnimation(Ref(*mockCurvePtr), blink::WebAnimation::TargetPropertyOpacity, _))
.WillOnce(Return(mockAnimationPtr));
- usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setIterations(1));
- usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setAlternatesDirection(false));
+ usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setIterations(4));
+ usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setTimeOffset(-1.0));
+ usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setAlternatesDirection(true));
EXPECT_CALL(*mockAnimationPtr, delete_())
.Times(1)
@@ -935,4 +1061,5 @@ TEST_F(CoreAnimationCompositorAnimationsTest, createReversedOpacityAnimationDura
result[0].clear();
}
+
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698