[Web Animations] Fix animations/stop-animation-on-suspend.html
authorgraouts@webkit.org <graouts@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Feb 2020 17:11:13 +0000 (17:11 +0000)
committergraouts@webkit.org <graouts@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Feb 2020 17:11:13 +0000 (17:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=184580
<rdar://problem/39406014>

Reviewed by Simon Fraser.

The expectations of this test were incorrect. The test animates a transform from 0 to 400px across 400ms with a linear timing function. The test suspends
animations from 100ms to 300ms with timers, and polls animations at 200ms and 400ms. At 200ms, it expects a value of 100px, which is correct since the animation
is suspended and so the value at 100ms (when it was suspended) is expected.

However, the test expected the value at 400ms to be 200px, which leads me to think this test assumes that animations, when resumed, account for the time suspended
and subtracts it from the page time. This is incorrect: when animations resume, they resume at the current time, no matter how long they were suspended. So the expected
value should be 400px.

* animations/stop-animation-on-suspend-expected.txt:
* animations/stop-animation-on-suspend.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256177 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/animations/stop-animation-on-suspend-expected.txt
LayoutTests/animations/stop-animation-on-suspend.html

index a018b05..d675443 100644 (file)
@@ -1,3 +1,22 @@
+2020-02-10  Antoine Quint  <graouts@webkit.org>
+
+        [Web Animations] Fix animations/stop-animation-on-suspend.html
+        https://bugs.webkit.org/show_bug.cgi?id=184580
+        <rdar://problem/39406014>
+
+        Reviewed by Simon Fraser.
+
+        The expectations of this test were incorrect. The test animates a transform from 0 to 400px across 400ms with a linear timing function. The test suspends
+        animations from 100ms to 300ms with timers, and polls animations at 200ms and 400ms. At 200ms, it expects a value of 100px, which is correct since the animation
+        is suspended and so the value at 100ms (when it was suspended) is expected.
+
+        However, the test expected the value at 400ms to be 200px, which leads me to think this test assumes that animations, when resumed, account for the time suspended
+        and subtracts it from the page time. This is incorrect: when animations resume, they resume at the current time, no matter how long they were suspended. So the expected
+        value should be 400px.
+
+        * animations/stop-animation-on-suspend-expected.txt:
+        * animations/stop-animation-on-suspend.html:
+
 2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>
 
         [ macOS iOS wk2 ] storage/indexeddb/intversion-long-queue.html is a flaky failure.
index 7700c89..af551e8 100644 (file)
@@ -1,6 +1,6 @@
 
 PASS - "webkitTransform" property for "box" element at 0.2s saw something close to: 1,0,0,1,100,0
 PASS - "webkitTransform" property for "iframe.subframe-box" element at 0.2s saw something close to: 1,0,0,1,100,0
-PASS - "webkitTransform" property for "box" element at 0.4s saw something close to: 1,0,0,1,200,0
-PASS - "webkitTransform" property for "iframe.subframe-box" element at 0.4s saw something close to: 1,0,0,1,200,0
+PASS - "webkitTransform" property for "box" element at 0.4s saw something close to: 1,0,0,1,400,0
+PASS - "webkitTransform" property for "iframe.subframe-box" element at 0.4s saw something close to: 1,0,0,1,400,0
 
index f787384..adbf089 100644 (file)
   <script type="text/javascript" charset="utf-8">
   
     const expectedValues = [
+      // Animations are paused from 100ms to 300ms by timers. We poll at 200ms and expect the same value as at 100ms since we're polling
+      // while paused at 100ms. Then, we poll again at 400ms and expect value as if the animation hadn't been suspended since it has resumed
+      // by then.
       // [animation-name, time, element-id, property, expected-value, tolerance]
       ["move", 0.2, "box", "webkitTransform", [1,0,0,1, 100, 0], 30],
       ["move", 0.2, "iframe.subframe-box", "webkitTransform", [1,0,0,1, 100, 0], 30],
-      ["move", 0.4, "box", "webkitTransform", [1,0,0,1, 200, 0], 30],
-      ["move", 0.4, "iframe.subframe-box", "webkitTransform", [1,0,0,1, 200, 0], 30],
+      ["move", 0.4, "box", "webkitTransform", [1,0,0,1, 400, 0], 30],
+      ["move", 0.4, "iframe.subframe-box", "webkitTransform", [1,0,0,1, 400, 0], 30],
     ];
     
     function suspend()