Layout Test media/modern-media-controls/scrubber-support/scrubber-support-click.html...
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Oct 2017 18:51:46 +0000 (18:51 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Oct 2017 18:51:46 +0000 (18:51 +0000)
https://bugs.webkit.org/show_bug.cgi?id=177930

Patch by Antoine Quint <graouts@apple.com> on 2017-10-05
Reviewed by Dean Jackson.

In cases where this test failed, it actually worked as expected but the "timeupdate" event would be fired
twice, most likely because it was registered twice. We now use an asynchronous expectation to run the test
which should only register the event listener once and make the test more reliable.

* media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt:
* media/modern-media-controls/scrubber-support/scrubber-support-click.html:

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

LayoutTests/ChangeLog
LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt
LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-click.html

index ecafbaf..c1aa864 100644 (file)
@@ -1,3 +1,17 @@
+2017-10-05  Antoine Quint  <graouts@apple.com>
+
+        Layout Test media/modern-media-controls/scrubber-support/scrubber-support-click.html is flaky
+        https://bugs.webkit.org/show_bug.cgi?id=177930
+
+        Reviewed by Dean Jackson.
+
+        In cases where this test failed, it actually worked as expected but the "timeupdate" event would be fired
+        twice, most likely because it was registered twice. We now use an asynchronous expectation to run the test
+        which should only register the event listener once and make the test more reliable.
+
+        * media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt:
+        * media/modern-media-controls/scrubber-support/scrubber-support-click.html:
+
 2017-10-05  Andy Estes  <aestes@apple.com>
 
         [Payment Request] Add a payment method that supports Apple Pay
index 365d994..6453714 100644 (file)
@@ -3,6 +3,7 @@ Testing the ScrubberSupport behavior when clicking the scrubber.
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
+PASS scrubber.getBoundingClientRect().width became different from 0
 PASS media.currentTime is within 0.2 of 3.1872
 PASS successfullyParsed is true
 
index 59dc791..1ab620b 100644 (file)
@@ -24,29 +24,22 @@ description("Testing the <code>ScrubberSupport</code> behavior when clicking the
 const container = document.querySelector("div#host");
 const media = document.querySelector("video");
 const mediaController = createControls(container, media, null);
+const scrubber = mediaController.controls.timeControl.scrubber.children[1].element;
 
 mediaController.controls.showsStartButton = false;
 
-scheduler.frameDidFire = function() {
-    if (media.paused)
-        return;
-
-    const scrubber = mediaController.controls.timeControl.scrubber.children[1].element;
-    if (scrubber.getBoundingClientRect().width === 0)
-        return;
-
+media.addEventListener("play", () => {
     media.pause();
-
-    media.addEventListener("timeupdate", () => {
-        shouldBeCloseTo("media.currentTime", 3.1872, 0.2);
-        container.remove();
-        media.remove();
-        finishJSTest();
+    shouldBecomeDifferent("scrubber.getBoundingClientRect().width", "0", () => {
+        media.addEventListener("timeupdate", () => {
+            shouldBeCloseTo("media.currentTime", 3.1872, 0.2);
+            container.remove();
+            media.remove();
+            finishJSTest();
+        });
+        pressOnElement(scrubber);
     });
-    
-    scheduler.frameDidFire = null;
-    pressOnElement(scrubber);
-};
+});
 
 </script>
 <script src="../../../resources/js-test-post.js"></script>