Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / animation / TimedItemTest.cpp
index 8742f48..3a6fec4 100644 (file)
@@ -78,13 +78,12 @@ public:
     virtual bool updateChildrenAndEffects() const OVERRIDE { return false; }
     void willDetach() { }
     TestTimedItemEventDelegate* eventDelegate() { return m_eventDelegate; }
-    virtual double calculateTimeToEffectChange(double localTime, double timeToNextIteration) const OVERRIDE
+    virtual double calculateTimeToEffectChange(bool forwards, double localTime, double timeToNextIteration) const OVERRIDE
     {
         m_localTime = localTime;
         m_timeToNextIteration = timeToNextIteration;
         return -1;
     }
-
     double takeLocalTime()
     {
         const double result = m_localTime;
@@ -114,7 +113,6 @@ private:
 TEST(AnimationTimedItemTest, Sanity)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 2;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
 
@@ -165,11 +163,24 @@ TEST(AnimationTimedItemTest, Sanity)
     EXPECT_EQ(1, timedItem->timeFraction());
 }
 
+TEST(AnimationTimedItemTest, FillAuto)
+{
+    Timing timing;
+    timing.iterationDuration = 1;
+    RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
+
+    timedItem->updateInheritedTime(-1);
+    EXPECT_EQ(0, timedItem->timeFraction());
+
+    timedItem->updateInheritedTime(2);
+    EXPECT_EQ(1, timedItem->timeFraction());
+}
+
 TEST(AnimationTimedItemTest, FillForwards)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
+    timing.fillMode = Timing::FillModeForwards;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
 
     timedItem->updateInheritedTime(-1);
@@ -182,7 +193,6 @@ TEST(AnimationTimedItemTest, FillForwards)
 TEST(AnimationTimedItemTest, FillBackwards)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
     timing.fillMode = Timing::FillModeBackwards;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -197,7 +207,6 @@ TEST(AnimationTimedItemTest, FillBackwards)
 TEST(AnimationTimedItemTest, FillBoth)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
     timing.fillMode = Timing::FillModeBoth;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -212,8 +221,8 @@ TEST(AnimationTimedItemTest, FillBoth)
 TEST(AnimationTimedItemTest, StartDelay)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
+    timing.fillMode = Timing::FillModeForwards;
     timing.startDelay = 0.5;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
 
@@ -230,8 +239,8 @@ TEST(AnimationTimedItemTest, StartDelay)
 TEST(AnimationTimedItemTest, ZeroIteration)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
+    timing.fillMode = Timing::FillModeForwards;
     timing.iterationCount = 0;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
 
@@ -249,8 +258,8 @@ TEST(AnimationTimedItemTest, ZeroIteration)
 TEST(AnimationTimedItemTest, InfiniteIteration)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
+    timing.fillMode = Timing::FillModeForwards;
     timing.iterationCount = std::numeric_limits<double>::infinity();
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
 
@@ -269,7 +278,6 @@ TEST(AnimationTimedItemTest, Iteration)
 {
     Timing timing;
     timing.iterationCount = 2;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 2;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
 
@@ -299,7 +307,6 @@ TEST(AnimationTimedItemTest, IterationStart)
     Timing timing;
     timing.iterationStart = 1.2;
     timing.iterationCount = 2.2;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
     timing.fillMode = Timing::FillModeBoth;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -321,7 +328,6 @@ TEST(AnimationTimedItemTest, IterationAlternate)
 {
     Timing timing;
     timing.iterationCount = 10;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
     timing.direction = Timing::PlaybackDirectionAlternate;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -343,7 +349,6 @@ TEST(AnimationTimedItemTest, IterationAlternateReverse)
 {
     Timing timing;
     timing.iterationCount = 10;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
     timing.direction = Timing::PlaybackDirectionAlternateReverse;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -394,6 +399,7 @@ TEST(AnimationTimedItemTest, ZeroDurationSanity)
 TEST(AnimationTimedItemTest, ZeroDurationFillForwards)
 {
     Timing timing;
+    timing.fillMode = Timing::FillModeForwards;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
 
     timedItem->updateInheritedTime(-1);
@@ -441,6 +447,7 @@ TEST(AnimationTimedItemTest, ZeroDurationFillBoth)
 TEST(AnimationTimedItemTest, ZeroDurationStartDelay)
 {
     Timing timing;
+    timing.fillMode = Timing::FillModeForwards;
     timing.startDelay = 0.5;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
 
@@ -477,6 +484,7 @@ TEST(AnimationTimedItemTest, ZeroDurationIterationStartAndCount)
 TEST(AnimationTimedItemTest, ZeroDurationInfiniteIteration)
 {
     Timing timing;
+    timing.fillMode = Timing::FillModeForwards;
     timing.iterationCount = std::numeric_limits<double>::infinity();
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
 
@@ -494,6 +502,7 @@ TEST(AnimationTimedItemTest, ZeroDurationInfiniteIteration)
 TEST(AnimationTimedItemTest, ZeroDurationIteration)
 {
     Timing timing;
+    timing.fillMode = Timing::FillModeForwards;
     timing.iterationCount = 2;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
 
@@ -534,6 +543,7 @@ TEST(AnimationTimedItemTest, ZeroDurationIterationStart)
 TEST(AnimationTimedItemTest, ZeroDurationIterationAlternate)
 {
     Timing timing;
+    timing.fillMode = Timing::FillModeForwards;
     timing.iterationCount = 2;
     timing.direction = Timing::PlaybackDirectionAlternate;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -554,6 +564,7 @@ TEST(AnimationTimedItemTest, ZeroDurationIterationAlternate)
 TEST(AnimationTimedItemTest, ZeroDurationIterationAlternateReverse)
 {
     Timing timing;
+    timing.fillMode = Timing::FillModeForwards;
     timing.iterationCount = 2;
     timing.direction = Timing::PlaybackDirectionAlternateReverse;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -574,7 +585,6 @@ TEST(AnimationTimedItemTest, ZeroDurationIterationAlternateReverse)
 TEST(AnimationTimedItemTest, InfiniteDurationSanity)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = std::numeric_limits<double>::infinity();
     timing.iterationCount = 1;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -606,7 +616,6 @@ TEST(AnimationTimedItemTest, InfiniteDurationSanity)
 TEST(AnimationTimedItemTest, InfiniteDurationZeroIterations)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = std::numeric_limits<double>::infinity();
     timing.iterationCount = 0;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -637,7 +646,6 @@ TEST(AnimationTimedItemTest, InfiniteDurationZeroIterations)
 TEST(AnimationTimedItemTest, InfiniteDurationInfiniteIterations)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = std::numeric_limits<double>::infinity();
     timing.iterationCount = std::numeric_limits<double>::infinity();
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -668,7 +676,6 @@ TEST(AnimationTimedItemTest, InfiniteDurationInfiniteIterations)
 TEST(AnimationTimedItemTest, InfiniteDurationZeroPlaybackRate)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = std::numeric_limits<double>::infinity();
     timing.playbackRate = 0;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -696,11 +703,22 @@ TEST(AnimationTimedItemTest, InfiniteDurationZeroPlaybackRate)
     EXPECT_EQ(0, timedItem->timeFraction());
 }
 
+TEST(AnimationTimedItemTest, EndTime)
+{
+    Timing timing;
+    timing.startDelay = 1;
+    timing.endDelay = 2;
+    timing.iterationDuration = 4;
+    timing.iterationCount = 2;
+    RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
+    EXPECT_EQ(11, timedItem->endTime());
+}
+
 TEST(AnimationTimedItemTest, Events)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
+    timing.fillMode = Timing::FillModeForwards;
     timing.iterationCount = 2;
     timing.startDelay = 1;
     RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing);
@@ -744,8 +762,8 @@ TEST(AnimationTimedItemTest, Events)
 TEST(AnimationTimedItemTest, TimeToEffectChange)
 {
     Timing timing;
-    timing.hasIterationDuration = true;
     timing.iterationDuration = 1;
+    timing.fillMode = Timing::FillModeForwards;
     timing.iterationStart = 0.2;
     timing.iterationCount = 2.5;
     timing.startDelay = 1;