Changeset 211136 in webkit


Ignore:
Timestamp:
Jan 24, 2017 10:30:23 PM (7 years ago)
Author:
graouts@webkit.org
Message:

LayoutTest media/modern-media-controls/airplay-support/airplay-support.html is failing
https://bugs.webkit.org/show_bug.cgi?id=164323

Reviewed by Jon Lee.

Make media/modern-media-controls/airplay-support/airplay-support.html more robust by following
the same pattern used in media/airplay-target-availability.html which proved to be robust.

  • media/modern-media-controls/airplay-support/airplay-support.html:
  • platform/mac/TestExpectations:
Location:
trunk/LayoutTests
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r211133 r211136  
     12017-01-24  Antoine Quint  <graouts@apple.com>
     2
     3        LayoutTest media/modern-media-controls/airplay-support/airplay-support.html is failing
     4        https://bugs.webkit.org/show_bug.cgi?id=164323
     5
     6        Reviewed by Jon Lee.
     7
     8        Make media/modern-media-controls/airplay-support/airplay-support.html more robust by following
     9        the same pattern used in media/airplay-target-availability.html which proved to be robust.
     10
     11        * media/modern-media-controls/airplay-support/airplay-support.html:
     12        * platform/mac/TestExpectations:
     13
    1142017-01-24  Joseph Pecoraro  <pecoraro@apple.com>
    215
  • trunk/LayoutTests/media/modern-media-controls/airplay-support/airplay-support.html

    r208254 r211136  
    1010description("Testing the <code>AirPlaySupport</code> behavior.");
    1111
    12 iconService.directoryPath = "../../../../Source/WebCore/Modules/modern-media-controls/images";
    13 
    1412const container = document.querySelector("div#host");
    1513const media = document.querySelector("video");
    1614const mediaController = createControls(container, media, null);
    1715
    18 window.internals.setMockMediaPlaybackTargetPickerEnabled(false);
     16(function makeAirPlayAvailable()
     17{
     18    debug("Making AirPlay routes available.");
     19    media.addEventListener("webkitplaybacktargetavailabilitychanged", playbackTargetAvailabilityChangedOnce, true);
     20    window.internals.setMockMediaPlaybackTargetPickerEnabled(true);
     21})();
    1922
    20 media.addEventListener("play", () => {
    21     media.addEventListener("webkitplaybacktargetavailabilitychanged", playbackTargetAvailabilityChanged);
     23function playbackTargetAvailabilityChangedOnce(event)
     24{
     25    media.removeEventListener('webkitplaybacktargetavailabilitychanged', playbackTargetAvailabilityChangedOnce, true);
     26    media.addEventListener('webkitplaybacktargetavailabilitychanged', playbackTargetAvailabilityChangedAgain, true);
     27
     28    window.internals.setMockMediaPlaybackTargetPickerState('Sleepy TV', 'DeviceAvailable');
     29}
     30   
     31function playbackTargetAvailabilityChangedAgain(event)
     32{
     33    // setMockMediaPlaybackTargetPickerState happens asynchronously in WK2 and a
     34    // "webkitplaybacktargetavailabilitychanged" is always sent when an event listener
     35    // is added, so we may get a "not available" event first.
     36    if (event.availability == 'not-available')
     37        return;
     38
     39    media.removeEventListener('webkitplaybacktargetavailabilitychanged', playbackTargetAvailabilityChangedAgain, true);
     40
     41    shouldBeTrue("mediaController.controls.airplayButton.enabled");
     42    shouldBeFalse("mediaController.controls.airplayButton.on");
     43
     44    window.setTimeout(enterAirPlay, 100);
     45}
     46
     47function enterAirPlay()
     48{
     49    debug("");
     50    debug("Entering AirPlay playback mode.");
     51
    2252    media.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", currentPlaybackTargetIsWirelessChanged);
    23 
    24     debug("Making AirPlay routes available.");
    25     window.internals.setMockMediaPlaybackTargetPickerEnabled(true);
    26 });
    27 
    28 let playbackTargetBecameAvailable = false;
    29 function playbackTargetAvailabilityChanged(event)
    30 {
    31     if (event.availability == "available" && !playbackTargetBecameAvailable) {
    32         playbackTargetBecameAvailable = true;
    33         shouldBeTrue("mediaController.controls.airplayButton.enabled");
    34         shouldBeFalse("mediaController.controls.airplayButton.on");
    35 
    36         debug("");
    37         debug("Entering AirPlay playback mode.");
    38         window.internals.setMockMediaPlaybackTargetPickerState("Sleepy TV", "DeviceAvailable");
    39         media.webkitShowPlaybackTargetPicker();
    40     }
     53    media.webkitShowPlaybackTargetPicker();
    4154}
    4255
     
    5568}
    5669
    57 setTimeout(finishJSTest, 3000);
    58 
    5970</script>
    6071<script src="../../../resources/js-test-post.js"></script>
  • trunk/LayoutTests/platform/mac/TestExpectations

    r211132 r211136  
    14791479media/modern-media-controls/scrubber-support/ipad/scrubber-support-drag.html [ Skip ]
    14801480
    1481 # These sometimes work but more often than not don't
    1482 webkit.org/b/164323 media/modern-media-controls/airplay-support/airplay-support.html [ Pass Failure ]
    1483 
    14841481# This one always times out on the bots, cannot reproduce locally.
    14851482webkit.org/b/165234 media/modern-media-controls/audio/audio-controls-buttons.html [ Pass Timeout ]
Note: See TracChangeset for help on using the changeset viewer.