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

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
« no previous file with comments | « Source/core/animation/TimedItem.cpp ('k') | Source/core/animation/css/CSSAnimations.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/animation/TimedItemTest.cpp
diff --git a/Source/core/animation/TimedItemTest.cpp b/Source/core/animation/TimedItemTest.cpp
index 22c10a49b81c30e63fe4b4185ccb8e049485c350..9a8c6300ac4b10822bf7ac72319ba8aea8c7b2c8 100644
--- a/Source/core/animation/TimedItemTest.cpp
+++ b/Source/core/animation/TimedItemTest.cpp
@@ -37,30 +37,28 @@ using namespace WebCore;
namespace {
-class TestTimedItemEventDelegate : public TimedItemEventDelegate {
+class TestTimedItemEventDelegate : public TimedItem::EventDelegate {
public:
- void onEventCondition(bool wasInPlay, bool isInPlay, double previousIteration, double currentIteration) OVERRIDE
+ void onEventCondition(bool isFirstSample, TimedItem::Phase previousPhase, TimedItem::Phase phase, double previousIteration, double currentIteration) OVERRIDE
{
m_eventTriggered = true;
- m_playStateChanged = wasInPlay != isInPlay;
- m_iterationChanged = isInPlay && previousIteration != currentIteration;
- if (isInPlay)
- ASSERT(!isNull(currentIteration));
+ m_phaseChanged = previousPhase != phase;
+ m_iterationChanged = previousIteration != currentIteration;
}
void reset()
{
m_eventTriggered = false;
- m_playStateChanged = false;
+ m_phaseChanged = false;
m_iterationChanged = false;
}
bool eventTriggered() { return m_eventTriggered; }
- bool playStateChanged() { return m_playStateChanged; }
+ bool phaseChanged() { return m_phaseChanged; }
bool iterationChanged() { return m_iterationChanged; }
private:
bool m_eventTriggered;
- bool m_playStateChanged;
+ bool m_phaseChanged;
bool m_iterationChanged;
};
@@ -77,11 +75,8 @@ public:
TimedItem::updateInheritedTime(time);
}
- void updateChildrenAndEffects(bool wasActiveOrInEffect) const FINAL OVERRIDE {
- }
-
+ void updateChildrenAndEffects(bool wasActiveOrInEffect) const FINAL OVERRIDE { }
void willDetach() { }
-
TestTimedItemEventDelegate* eventDelegate() { return m_eventDelegate; }
private:
@@ -101,16 +96,11 @@ 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);
+ ASSERT_EQ(TimedItem::PhaseActive, timedItem->phase());
ASSERT_TRUE(timedItem->isInPlay());
ASSERT_TRUE(timedItem->isCurrent());
ASSERT_TRUE(timedItem->isInEffect());
@@ -121,6 +111,7 @@ TEST(TimedItem, Sanity)
timedItem->updateInheritedTime(1);
+ ASSERT_EQ(TimedItem::PhaseActive, timedItem->phase());
ASSERT_TRUE(timedItem->isInPlay());
ASSERT_TRUE(timedItem->isCurrent());
ASSERT_TRUE(timedItem->isInEffect());
@@ -131,6 +122,7 @@ TEST(TimedItem, Sanity)
timedItem->updateInheritedTime(2);
+ ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase());
ASSERT_FALSE(timedItem->isInPlay());
ASSERT_FALSE(timedItem->isCurrent());
ASSERT_TRUE(timedItem->isInEffect());
@@ -141,6 +133,7 @@ TEST(TimedItem, Sanity)
timedItem->updateInheritedTime(3);
+ ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase());
ASSERT_FALSE(timedItem->isInPlay());
ASSERT_FALSE(timedItem->isCurrent());
ASSERT_TRUE(timedItem->isInEffect());
@@ -332,16 +325,11 @@ 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);
+ ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase());
ASSERT_FALSE(timedItem->isInPlay());
ASSERT_FALSE(timedItem->isCurrent());
ASSERT_TRUE(timedItem->isInEffect());
@@ -352,6 +340,7 @@ TEST(TimedItem, ZeroDurationSanity)
timedItem->updateInheritedTime(1);
+ ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase());
ASSERT_FALSE(timedItem->isInPlay());
ASSERT_FALSE(timedItem->isCurrent());
ASSERT_TRUE(timedItem->isInEffect());
@@ -546,32 +535,42 @@ 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);
+ // First sample
+ timedItem->updateInheritedTime(0.0);
ASSERT_TRUE(timedItem->eventDelegate()->eventTriggered());
- EXPECT_TRUE(timedItem->eventDelegate()->playStateChanged());
- EXPECT_TRUE(timedItem->eventDelegate()->iterationChanged());
- timedItem->updateInheritedTime(0.6);
+ // Before start
+ timedItem->updateInheritedTime(0.5);
ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered());
+ // First iteration
timedItem->updateInheritedTime(1.5);
ASSERT_TRUE(timedItem->eventDelegate()->eventTriggered());
+ EXPECT_TRUE(timedItem->eventDelegate()->phaseChanged());
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()->phaseChanged());
+ 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()->phaseChanged());
EXPECT_FALSE(timedItem->eventDelegate()->iterationChanged());
- EXPECT_TRUE(timedItem->eventDelegate()->playStateChanged());
+
+ timedItem->updateInheritedTime(3.6);
+ ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered());
}
}
« no previous file with comments | « Source/core/animation/TimedItem.cpp ('k') | Source/core/animation/css/CSSAnimations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698