Index: Source/core/animation/AnimationTimelineTest.cpp |
diff --git a/Source/core/animation/AnimationTimelineTest.cpp b/Source/core/animation/AnimationTimelineTest.cpp |
index 79482a1f4cd40c60de9e18cccdb94b0e711fc746..7efe9f38b0d2b3b8c849d525d4c655cffc923834 100644 |
--- a/Source/core/animation/AnimationTimelineTest.cpp |
+++ b/Source/core/animation/AnimationTimelineTest.cpp |
@@ -45,7 +45,7 @@ |
namespace blink { |
-class MockPlatformTiming : public AnimationTimeline::PlatformTiming { |
+class MockPlatformTiming final : public AnimationTimeline::PlatformTiming { |
public: |
MOCK_METHOD1(wakeAfter, void(double)); |
@@ -80,6 +80,9 @@ public: |
DEFINE_INLINE_TRACE() |
{ |
+ // Null access to get a stack trace. |
+ int* foo = nullptr; |
+ *foo = 1; |
peria
2015/05/11 10:27:54
This change is made to share how an instance of Mo
|
AnimationTimeline::PlatformTiming::trace(visitor); |
} |
}; |
@@ -91,8 +94,7 @@ protected: |
document = Document::create(); |
document->animationClock().resetTimeForTesting(); |
element = Element::create(QualifiedName::null() , document.get()); |
- platformTiming = new MockPlatformTiming; |
- timeline = AnimationTimeline::create(document.get(), adoptPtrWillBeNoop(platformTiming)); |
+ timeline = AnimationTimeline::create(document.get(), new MockPlatformTiming); |
ASSERT_EQ(0, timeline->currentTimeInternal()); |
} |
@@ -101,9 +103,7 @@ protected: |
document.release(); |
element.release(); |
timeline.release(); |
-#if ENABLE(OILPAN) |
Heap::collectAllGarbage(); |
-#endif |
} |
void updateClockAndService(double time) |
@@ -114,11 +114,15 @@ protected: |
timeline->scheduleNextService(); |
} |
+ MockPlatformTiming* platformTiming() |
+ { |
+ return static_cast<MockPlatformTiming*>(timeline->timing()); |
+ } |
+ |
RefPtrWillBePersistent<Document> document; |
RefPtrWillBePersistent<Element> element; |
- RefPtrWillBePersistent<AnimationTimeline> timeline; |
+ Persistent<AnimationTimeline> timeline; |
Timing timing; |
- MockPlatformTiming* platformTiming; |
void wake() |
{ |
@@ -138,35 +142,35 @@ TEST_F(AnimationAnimationTimelineTest, HasStarted) |
TEST_F(AnimationAnimationTimelineTest, EmptyKeyframeAnimation) |
{ |
- RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(AnimatableValueKeyframeVector()); |
- RefPtrWillBeRawPtr<KeyframeEffect> keyframeEffect = KeyframeEffect::create(element.get(), effect, timing); |
+ AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectModel::create(AnimatableValueKeyframeVector()); |
+ KeyframeEffect* keyframeEffect = KeyframeEffect::create(element.get(), effect, timing); |
- timeline->play(keyframeEffect.get()); |
+ timeline->play(keyframeEffect); |
- platformTiming->expectNoMoreActions(); |
+ platformTiming()->expectNoMoreActions(); |
updateClockAndService(0); |
EXPECT_FLOAT_EQ(0, timeline->currentTimeInternal()); |
EXPECT_FALSE(keyframeEffect->isInEffect()); |
- platformTiming->expectNoMoreActions(); |
+ platformTiming()->expectNoMoreActions(); |
updateClockAndService(100); |
EXPECT_FLOAT_EQ(100, timeline->currentTimeInternal()); |
} |
TEST_F(AnimationAnimationTimelineTest, EmptyForwardsKeyframeAnimation) |
{ |
- RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableValueKeyframeEffectModel::create(AnimatableValueKeyframeVector()); |
+ AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectModel::create(AnimatableValueKeyframeVector()); |
timing.fillMode = Timing::FillModeForwards; |
- RefPtrWillBeRawPtr<KeyframeEffect> keyframeEffect = KeyframeEffect::create(element.get(), effect, timing); |
+ KeyframeEffect* keyframeEffect = KeyframeEffect::create(element.get(), effect, timing); |
- timeline->play(keyframeEffect.get()); |
+ timeline->play(keyframeEffect); |
- platformTiming->expectNoMoreActions(); |
+ platformTiming()->expectNoMoreActions(); |
updateClockAndService(0); |
EXPECT_FLOAT_EQ(0, timeline->currentTimeInternal()); |
EXPECT_TRUE(keyframeEffect->isInEffect()); |
- platformTiming->expectNoMoreActions(); |
+ platformTiming()->expectNoMoreActions(); |
updateClockAndService(100); |
EXPECT_FLOAT_EQ(100, timeline->currentTimeInternal()); |
} |
@@ -346,10 +350,10 @@ TEST_F(AnimationAnimationTimelineTest, PauseForTesting) |
{ |
float seekTime = 1; |
timing.fillMode = Timing::FillModeForwards; |
- RefPtrWillBeRawPtr<KeyframeEffect> anim1 = KeyframeEffect::create(element.get(), AnimatableValueKeyframeEffectModel::create(AnimatableValueKeyframeVector()), timing); |
- RefPtrWillBeRawPtr<KeyframeEffect> anim2 = KeyframeEffect::create(element.get(), AnimatableValueKeyframeEffectModel::create(AnimatableValueKeyframeVector()), timing); |
- Animation* animation1 = timeline->play(anim1.get()); |
- Animation* animation2 = timeline->play(anim2.get()); |
+ KeyframeEffect* anim1 = KeyframeEffect::create(element.get(), AnimatableValueKeyframeEffectModel::create(AnimatableValueKeyframeVector()), timing); |
+ KeyframeEffect* anim2 = KeyframeEffect::create(element.get(), AnimatableValueKeyframeEffectModel::create(AnimatableValueKeyframeVector()), timing); |
+ Animation* animation1 = timeline->play(anim1); |
+ Animation* animation2 = timeline->play(anim2); |
timeline->pauseAnimationsForTesting(seekTime); |
EXPECT_FLOAT_EQ(seekTime, animation1->currentTime() / 1000.0); |
@@ -361,21 +365,21 @@ TEST_F(AnimationAnimationTimelineTest, DelayBeforeAnimationStart) |
timing.iterationDuration = 2; |
timing.startDelay = 5; |
- RefPtrWillBeRawPtr<KeyframeEffect> keyframeEffect = KeyframeEffect::create(element.get(), nullptr, timing); |
+ KeyframeEffect* keyframeEffect = KeyframeEffect::create(element.get(), nullptr, timing); |
- timeline->play(keyframeEffect.get()); |
+ timeline->play(keyframeEffect); |
// TODO: Put the animation startTime in the future when we add the capability to change animation startTime |
- platformTiming->expectDelayedAction(timing.startDelay - minimumDelay()); |
+ platformTiming()->expectDelayedAction(timing.startDelay - minimumDelay()); |
updateClockAndService(0); |
- platformTiming->expectDelayedAction(timing.startDelay - minimumDelay() - 1.5); |
+ platformTiming()->expectDelayedAction(timing.startDelay - minimumDelay() - 1.5); |
updateClockAndService(1.5); |
- EXPECT_CALL(*platformTiming, serviceOnNextFrame()); |
+ EXPECT_CALL(*platformTiming(), serviceOnNextFrame()); |
wake(); |
- platformTiming->expectNextFrameAction(); |
+ platformTiming()->expectNextFrameAction(); |
updateClockAndService(4.98); |
} |
@@ -388,9 +392,9 @@ TEST_F(AnimationAnimationTimelineTest, PlayAfterDocumentDeref) |
element = nullptr; |
document = nullptr; |
- RefPtrWillBeRawPtr<KeyframeEffect> keyframeEffect = KeyframeEffect::create(0, nullptr, timing); |
+ KeyframeEffect* keyframeEffect = KeyframeEffect::create(0, nullptr, timing); |
// Test passes if this does not crash. |
- timeline->play(keyframeEffect.get()); |
+ timeline->play(keyframeEffect); |
} |
TEST_F(AnimationAnimationTimelineTest, UseAnimationAfterTimelineDeref) |