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

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

Issue 23173007: Web Animations: Fix CSS events to handle animations with very short durations (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 7 years, 4 months 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/TimedItemTest.cpp
diff --git a/Source/core/animation/TimedItemTest.cpp b/Source/core/animation/TimedItemTest.cpp
index 22c10a49b81c30e63fe4b4185ccb8e049485c350..7de505734385b099b82b9f1dd233a01cb301d26d 100644
--- a/Source/core/animation/TimedItemTest.cpp
+++ b/Source/core/animation/TimedItemTest.cpp
@@ -39,10 +39,11 @@ namespace {
class TestTimedItemEventDelegate : public TimedItemEventDelegate {
public:
- void onEventCondition(bool wasInPlay, bool isInPlay, double previousIteration, double currentIteration) OVERRIDE
+ void onEventCondition(bool wasInPlay, bool isInPlay, bool wasCurrent, bool isCurrent, double previousIteration, double currentIteration) OVERRIDE
{
m_eventTriggered = true;
- m_playStateChanged = wasInPlay != isInPlay;
+ m_inPlayStateChanged = wasInPlay != isInPlay;
+ m_currentStateChanged = wasCurrent != isCurrent;
m_iterationChanged = isInPlay && previousIteration != currentIteration;
if (isInPlay)
ASSERT(!isNull(currentIteration));
@@ -51,16 +52,19 @@ public:
void reset()
{
m_eventTriggered = false;
- m_playStateChanged = false;
+ m_inPlayStateChanged = false;
+ m_currentStateChanged = false;
m_iterationChanged = false;
}
bool eventTriggered() { return m_eventTriggered; }
- bool playStateChanged() { return m_playStateChanged; }
+ bool inPlayStateChanged() { return m_inPlayStateChanged; }
+ bool currentStateChanged() { return m_currentStateChanged; }
bool iterationChanged() { return m_iterationChanged; }
private:
bool m_eventTriggered;
- bool m_playStateChanged;
+ bool m_inPlayStateChanged;
+ bool m_currentStateChanged;
bool m_iterationChanged;
};
@@ -101,13 +105,7 @@ TEST(TimedItem, Sanity)
timing.iterationDuration = 2;
RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
- ASSERT_FALSE(timedItem->isCurrent());
- ASSERT_FALSE(timedItem->isInEffect());
- ASSERT_FALSE(timedItem->isInPlay());
- ASSERT_TRUE(isNull(timedItem->currentIteration()));
ASSERT_EQ(0, timedItem->startTime());
- ASSERT_TRUE(isNull(timedItem->activeDuration()));
- ASSERT_TRUE(isNull(timedItem->timeFraction()));
timedItem->updateInheritedTime(0);
@@ -332,13 +330,7 @@ TEST(TimedItem, ZeroDurationSanity)
Timing timing;
RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
- ASSERT_FALSE(timedItem->isInPlay());
- ASSERT_FALSE(timedItem->isCurrent());
- ASSERT_FALSE(timedItem->isInEffect());
- ASSERT_TRUE(isNull(timedItem->currentIteration()));
ASSERT_EQ(0, timedItem->startTime());
- ASSERT_TRUE(isNull(timedItem->activeDuration()));
- ASSERT_TRUE(isNull(timedItem->timeFraction()));
timedItem->updateInheritedTime(0);
@@ -546,32 +538,44 @@ TEST(TimedItem, Events)
timing.hasIterationDuration = true;
timing.iterationDuration = 1;
timing.iterationCount = 2;
+ timing.startDelay = 1;
RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
- timedItem->updateInheritedTime(0.3);
- ASSERT_TRUE(timedItem->eventDelegate()->eventTriggered());
- EXPECT_TRUE(timedItem->eventDelegate()->playStateChanged());
- EXPECT_TRUE(timedItem->eventDelegate()->iterationChanged());
+ // Before start
+ timedItem->updateInheritedTime(0.0);
+ ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered());
- timedItem->updateInheritedTime(0.6);
+ timedItem->updateInheritedTime(0.5);
ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered());
+ // First iteration
timedItem->updateInheritedTime(1.5);
ASSERT_TRUE(timedItem->eventDelegate()->eventTriggered());
+ EXPECT_TRUE(timedItem->eventDelegate()->inPlayStateChanged());
+ EXPECT_FALSE(timedItem->eventDelegate()->currentStateChanged());
EXPECT_TRUE(timedItem->eventDelegate()->iterationChanged());
- EXPECT_FALSE(timedItem->eventDelegate()->playStateChanged());
+ timedItem->updateInheritedTime(1.6);
+ ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered());
+
+ // Second iteration
timedItem->updateInheritedTime(2.5);
ASSERT_TRUE(timedItem->eventDelegate()->eventTriggered());
- EXPECT_FALSE(timedItem->eventDelegate()->iterationChanged());
- EXPECT_TRUE(timedItem->eventDelegate()->playStateChanged());
+ EXPECT_FALSE(timedItem->eventDelegate()->inPlayStateChanged());
+ EXPECT_FALSE(timedItem->eventDelegate()->currentStateChanged());
+ EXPECT_TRUE(timedItem->eventDelegate()->iterationChanged());
- timedItem->updateInheritedTime(3);
+ timedItem->updateInheritedTime(2.6);
ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered());
- timedItem->updateInheritedTime(1.5);
+ // After end
+ timedItem->updateInheritedTime(3.5);
ASSERT_TRUE(timedItem->eventDelegate()->eventTriggered());
+ EXPECT_TRUE(timedItem->eventDelegate()->inPlayStateChanged());
+ EXPECT_TRUE(timedItem->eventDelegate()->currentStateChanged());
EXPECT_FALSE(timedItem->eventDelegate()->iterationChanged());
- EXPECT_TRUE(timedItem->eventDelegate()->playStateChanged());
+
+ timedItem->updateInheritedTime(3.6);
+ ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered());
}
}

Powered by Google App Engine
This is Rietveld 408576698