Title: [203057] trunk
Revision
203057
Author
eric.carl...@apple.com
Date
2016-07-11 07:37:32 -0700 (Mon, 11 Jul 2016)

Log Message

Add a test for media control dropoff
https://bugs.webkit.org/show_bug.cgi?id=151287
<rdar://problem/23544666>

Reviewed by Antoine Quint.

Source/WebCore:

Test: media/controls/inline-elements-dropoff-order.html

* Modules/mediacontrols/mediaControlsApple.js: Expose more state to testing.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setAllowsAirPlayForMediaPlayback): Renamed from setWirelessPlaybackDisabled.
(WebCore::InternalSettings::setWirelessPlaybackDisabled): Deleted.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

LayoutTests:

* media/controls/inline-elements-dropoff-order-expected.txt: Added.
* media/controls/inline-elements-dropoff-order.html: Added.
* platform/mac-yosemite/media/controls: Added.
* platform/mac-yosemite/media/controls/inline-elements-dropoff-order-expected.txt: Added.
* platform/mac-elcapitan/media/controls: Added.
* platform/mac-elcapitan/media/controls/inline-elements-dropoff-order-expected.txt: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (203056 => 203057)


--- trunk/LayoutTests/ChangeLog	2016-07-11 14:35:54 UTC (rev 203056)
+++ trunk/LayoutTests/ChangeLog	2016-07-11 14:37:32 UTC (rev 203057)
@@ -1,3 +1,18 @@
+2016-07-11  Eric Carlson  <eric.carl...@apple.com>
+
+        Add a test for media control dropoff
+        https://bugs.webkit.org/show_bug.cgi?id=151287
+        <rdar://problem/23544666>
+
+        Reviewed by Antoine Quint.
+
+        * media/controls/inline-elements-dropoff-order-expected.txt: Added.
+        * media/controls/inline-elements-dropoff-order.html: Added.
+        * platform/mac-yosemite/media/controls: Added.
+        * platform/mac-yosemite/media/controls/inline-elements-dropoff-order-expected.txt: Added.
+        * platform/mac-elcapitan/media/controls: Added.
+        * platform/mac-elcapitan/media/controls/inline-elements-dropoff-order-expected.txt: Added.
+
 2016-07-11  Frederic Wang  <fw...@igalia.com>
 
         Update expectations for some MathML pixel tests on Windows.

Added: trunk/LayoutTests/media/controls/inline-elements-dropoff-order-expected.txt (0 => 203057)


--- trunk/LayoutTests/media/controls/inline-elements-dropoff-order-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/media/controls/inline-elements-dropoff-order-expected.txt	2016-07-11 14:37:32 UTC (rev 203057)
@@ -0,0 +1,359 @@
+Test control element visibility at different element widths.
+
+This test only runs in DRT!
+
+
+EVENT: error
+PASS: We are using the Apple idiom
+
+*** Test the controls layout without video ***
+
+* Width 60px:
+PASS: Play Button is visible
+PASS: Status Display is visible
+PASS: Rewind Button is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 90px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Status Display is visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 200px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Status Display is visible
+PASS: Mute Box is visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+
+*** Test the controls layout with video ***
+
+EVENT: canplaythrough
+* Width 60px:
+PASS: Play Button is visible
+PASS: Rewind Button is not visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 90px:
+PASS: Play Button is visible
+PASS: Fullscreen Button is visible
+PASS: Rewind Button is not visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 120px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 150px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 200px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Picture-in-picture Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 400px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Timeline is visible
+PASS: Current Time is visible
+PASS: Thumbnail Track is visible
+PASS: Time Remaining is visible
+PASS: Mute Box is visible
+PASS: Picture-in-picture Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Caption Button is not visible
+
+
+*** Test the controls layout with video and a caption track ***
+
+* Width 60px:
+PASS: Play Button is visible
+PASS: Rewind Button is not visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 90px:
+PASS: Play Button is visible
+PASS: Fullscreen Button is visible
+PASS: Rewind Button is not visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 120px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 150px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 180px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Caption Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 200px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Caption Button is visible
+PASS: Picture-in-picture Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 400px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Current Time is visible
+PASS: Timeline is visible
+PASS: Thumbnail Track is visible
+PASS: Time Remaining is visible
+PASS: Mute Box is visible
+PASS: Caption Button is visible
+PASS: Picture-in-picture Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+
+
+*** Test the controls layout with video, a caption track, and AppleTV ***
+
+* Width 60px:
+PASS: Play Button is visible
+PASS: Rewind Button is not visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 90px:
+PASS: Play Button is visible
+PASS: Fullscreen Button is visible
+PASS: Rewind Button is not visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 120px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 150px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 180px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Caption Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 200px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Caption Button is visible
+PASS: Picture-in-picture Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 350px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: AppleTV Device Picker is visible
+PASS: Caption Button is visible
+PASS: Picture-in-picture Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 400px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Current Time is visible
+PASS: Timeline is visible
+PASS: Thumbnail Track is visible
+PASS: Time Remaining is visible
+PASS: Mute Box is visible
+PASS: AppleTV Device Picker is visible
+PASS: Caption Button is visible
+PASS: Picture-in-picture Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+
+
+Testing finished.
+

Added: trunk/LayoutTests/media/controls/inline-elements-dropoff-order.html (0 => 203057)


--- trunk/LayoutTests/media/controls/inline-elements-dropoff-order.html	                        (rev 0)
+++ trunk/LayoutTests/media/controls/inline-elements-dropoff-order.html	2016-07-11 14:37:32 UTC (rev 203057)
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <script src=""
+        <script src=""
+        <script>
+
+            const allButtons = [
+                "Play Button", "Rewind Button", "Status Display", "Mute Box", "AppleTV Device Picker", 
+                "Picture-in-picture Button", "Caption Button", "Fullscreen Button", "Timeline", 
+                "Current Time", "Thumbnail Track", "Time Remaining"
+            ];
+            const tester = new ControlsTest("non-existent-media-file", "error")
+                .whenReady(setup)
+                .start();
+
+            function setup()
+            {
+                internals.settings.setAllowsPictureInPictureMediaPlayback(true);
+                internals.settings.setAllowsAirPlayForMediaPlayback(false);
+
+                tester.test("We are using the Apple idiom")
+                    .value(tester.currentState.idiom)
+                    .isEqualTo("apple");
+                tester.startNewSection("*** Test the controls layout without video ***");
+                runTestsWithoutVideo();
+            }
+
+            function testControls(data, nextTest)
+            {
+                if (!data.length) {
+                    if (typeof nextTest === "function")
+                        nextTest();
+                    else
+                        tester.end();
+                    return;
+                }
+                
+                const test = data.shift();
+                
+                if (typeof tester.media.webkitSupportsPresentationMode !== "function" || !tester.media.webkitSupportsPresentationMode('picture-in-picture'))
+                    test.visible = test.visible.filter(name => name.indexOf("Picture-in-picture Button") === -1);
+                if (!internals.setMockMediaPlaybackTargetPickerState)
+                    test.visible = test.visible.filter(name => name.indexOf("AppleTV Device Picker") === -1);
+
+                tester.media.style.width = test.width + "px";
+                window.setTimeout( () => {
+                    tester.logMessage(`* Width ${tester.media.style.width}:`);
+
+                    const isVisible = (state, name) => { 
+                        if (state === null || typeof state.className !== "string")
+                            return false;
+                        return state.className.indexOf("dropped") === -1 && state.className.indexOf("hidden") === -1;
+                    }
+
+                    test.visible.forEach(name => {
+                        const state = tester.stateForControlsElement(name, true);
+                        tester.test(`${name} is visible`)
+                            .value(isVisible(state))
+                            .isTrue();
+                    });
+
+                    allButtons.filter(name => test.visible.indexOf(name) === -1).forEach(name => {
+                        const state = tester.stateForControlsElement(name, true);
+                        tester.test(`${name} is not visible`)
+                            .value(isVisible(state))
+                            .isFalse();
+                    });
+
+                    tester.logBlankLine();
+                    testControls(data, nextTest);
+                }, 100);
+            }
+
+            function runTestsWithoutVideo()
+            {
+                const setupNextTest = () => {
+                    tester.resetEventTrigger("canplaythrough")
+                        .whenReady(runTestsWithVideo)
+                        .media.src = "" "../content/test");
+                    tester.startNewSection("*** Test the controls layout with video ***");
+                };
+
+                const data = [
+                    { width: 60, visible : ["Play Button", "Status Display"] },
+                    { width: 90, visible : ["Play Button", "Rewind Button", "Status Display"] },
+                    { width: 200, visible : ["Play Button", "Rewind Button", "Status Display", "Mute Box"] },
+                ];
+                testControls(data, setupNextTest);
+            }
+
+            function runTestsWithVideo()
+            {
+                const setupNextTest = () => {
+                    tester.startNewSection("*** Test the controls layout with video and a caption track ***")
+                    const track = document.createElement("track");
+                    track.kind = "captions";
+                    track.src = "" --> 00:00:01.000\nCaption 1\n")}`;
+                    tester.media.appendChild(track);
+                    
+                    runTestsWithTextTrack();
+                };
+
+                const data = [
+                    { width: 60,  visible : ["Play Button"] },
+                    { width: 90,  visible : ["Play Button", "Fullscreen Button"] },
+                    { width: 120, visible : ["Play Button", "Rewind Button", "Fullscreen Button"] },
+                    { width: 150, visible : ["Play Button", "Rewind Button", "Mute Box", "Fullscreen Button"] },
+                    { width: 200, visible : ["Play Button", "Rewind Button", "Mute Box", "Picture-in-picture Button", "Fullscreen Button"] },
+                    { width: 400, visible : ["Play Button", "Rewind Button", "Timeline", "Current Time", "Thumbnail Track", "Time Remaining", "Mute Box", "Picture-in-picture Button", "Fullscreen Button"] },
+                ];
+
+                testControls(data, setupNextTest);
+            }
+
+            function runTestsWithTextTrack()
+            {
+                const setupNextTest = () => {
+                    tester.startNewSection("*** Test the controls layout with video, a caption track, and AppleTV ***");
+                    internals.settings.setAllowsAirPlayForMediaPlayback(true);
+                    internals.setMockMediaPlaybackTargetPickerState("Sleepy TV", "DeviceAvailable");
+                    runTestsWithVideoAndAppleTV();
+                };
+
+                const data = [
+                    { width: 60,  visible : ["Play Button"] },
+                    { width: 90,  visible : ["Play Button", "Fullscreen Button"] },
+                    { width: 120, visible : ["Play Button", "Rewind Button", "Fullscreen Button"] },
+                    { width: 150, visible : ["Play Button", "Rewind Button", "Mute Box", "Fullscreen Button"] },
+                    { width: 180, visible : ["Play Button", "Rewind Button", "Mute Box", "Caption Button", "Fullscreen Button"] },
+                    { width: 200, visible : ["Play Button", "Rewind Button", "Mute Box", "Caption Button", "Picture-in-picture Button", "Fullscreen Button"] },
+                    { width: 400, visible : ["Play Button", "Rewind Button", "Current Time", "Timeline", "Thumbnail Track", "Time Remaining", "Mute Box", "Caption Button", "Picture-in-picture Button", "Fullscreen Button"] },
+                ];
+                
+                testControls(data, internals.setMockMediaPlaybackTargetPickerState ? setupNextTest : null);
+            }
+
+            function runTestsWithVideoAndAppleTV()
+            {
+                const data = [
+                    { width: 60,  visible : ["Play Button"] },
+                    { width: 90,  visible : ["Play Button", "Fullscreen Button"] },
+                    { width: 120, visible : ["Play Button", "Rewind Button", "Fullscreen Button"] },
+                    { width: 150, visible : ["Play Button", "Rewind Button", "Mute Box", "Fullscreen Button"] },
+                    { width: 180, visible : ["Play Button", "Rewind Button", "Mute Box", "Caption Button", "Fullscreen Button"] },
+                    { width: 200, visible : ["Play Button", "Rewind Button", "Mute Box", "Caption Button", "Picture-in-picture Button", "Fullscreen Button"] },
+                    { width: 350, visible : ["Play Button", "Rewind Button", "Mute Box", "AppleTV Device Picker", "Caption Button", "Picture-in-picture Button", "Fullscreen Button"] },
+                    { width: 400, visible : ["Play Button", "Rewind Button", "Current Time", "Timeline", "Thumbnail Track", "Time Remaining", "Mute Box", "AppleTV Device Picker", "Caption Button", "Picture-in-picture Button", "Fullscreen Button"] },
+                ];
+
+                testControls(data);
+            }
+
+
+        </script>
+    </head>
+    <body>
+        <p>Test control element visibility at different element widths.</p>
+        <p>This test only runs in DRT!</p>
+        <video controls></video>
+    </body>
+</html>

Added: trunk/LayoutTests/platform/mac-yosemite/media/controls/inline-elements-dropoff-order-expected.txt (0 => 203057)


--- trunk/LayoutTests/platform/mac-yosemite/media/controls/inline-elements-dropoff-order-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac-yosemite/media/controls/inline-elements-dropoff-order-expected.txt	2016-07-11 14:37:32 UTC (rev 203057)
@@ -0,0 +1,244 @@
+Test control element visibility at different element widths.
+
+This test only runs in DRT!
+
+
+EVENT: error
+PASS: We are using the Apple idiom
+
+*** Test the controls layout without video ***
+
+* Width 60px:
+PASS: Play Button is visible
+PASS: Status Display is visible
+PASS: Rewind Button is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 90px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Status Display is visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 200px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Status Display is visible
+PASS: Mute Box is visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+
+*** Test the controls layout with video ***
+
+EVENT: canplaythrough
+* Width 60px:
+PASS: Play Button is visible
+PASS: Rewind Button is not visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 90px:
+PASS: Play Button is visible
+PASS: Fullscreen Button is visible
+PASS: Rewind Button is not visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 120px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 150px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 200px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 400px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Timeline is visible
+PASS: Current Time is visible
+PASS: Thumbnail Track is visible
+PASS: Time Remaining is visible
+PASS: Mute Box is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+
+
+*** Test the controls layout with video and a caption track ***
+
+* Width 60px:
+PASS: Play Button is visible
+PASS: Rewind Button is not visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Fullscreen Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 90px:
+PASS: Play Button is visible
+PASS: Fullscreen Button is visible
+PASS: Rewind Button is not visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 120px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: Mute Box is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 150px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Caption Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 180px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Caption Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 200px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Mute Box is visible
+PASS: Caption Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+PASS: Timeline is not visible
+PASS: Current Time is not visible
+PASS: Thumbnail Track is not visible
+PASS: Time Remaining is not visible
+
+* Width 400px:
+PASS: Play Button is visible
+PASS: Rewind Button is visible
+PASS: Current Time is visible
+PASS: Timeline is visible
+PASS: Thumbnail Track is visible
+PASS: Time Remaining is visible
+PASS: Mute Box is visible
+PASS: Caption Button is visible
+PASS: Fullscreen Button is visible
+PASS: Status Display is not visible
+PASS: AppleTV Device Picker is not visible
+PASS: Picture-in-picture Button is not visible
+
+
+Testing finished.
+

Modified: trunk/Source/WebCore/ChangeLog (203056 => 203057)


--- trunk/Source/WebCore/ChangeLog	2016-07-11 14:35:54 UTC (rev 203056)
+++ trunk/Source/WebCore/ChangeLog	2016-07-11 14:37:32 UTC (rev 203057)
@@ -1,3 +1,21 @@
+2016-07-11  Eric Carlson  <eric.carl...@apple.com>
+
+        Add a test for media control dropoff
+        https://bugs.webkit.org/show_bug.cgi?id=151287
+        <rdar://problem/23544666>
+
+        Reviewed by Antoine Quint.
+
+        Test: media/controls/inline-elements-dropoff-order.html
+
+        * Modules/mediacontrols/mediaControlsApple.js: Expose more state to testing.
+        * testing/InternalSettings.cpp:
+        (WebCore::InternalSettings::setAllowsAirPlayForMediaPlayback): Renamed from setWirelessPlaybackDisabled.
+        (WebCore::InternalSettings::setWirelessPlaybackDisabled): Deleted.
+        * testing/InternalSettings.h:
+        * testing/InternalSettings.idl:
+
+
 2016-07-11  Philippe Normand  <pnorm...@igalia.com>
 
         [GStreamer][GL] crash within triggerRepaint

Modified: trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js (203056 => 203057)


--- trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js	2016-07-11 14:35:54 UTC (rev 203056)
+++ trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js	2016-07-11 14:37:32 UTC (rev 203057)
@@ -2288,33 +2288,37 @@
             {
                 name: "Show Controls",
                 object: this.showControlsButton,
-                extraProperties: ["hidden"]
+                extraProperties: ["hidden"],
             },
             {
                 name: "Status Display",
                 object: this.controls.statusDisplay,
                 styleValues: ["display"],
-                extraProperties: ["textContent"]
+                extraProperties: ["textContent"],
             },
             {
                 name: "Play Button",
-                object: this.controls.playButton
+                object: this.controls.playButton,
+                extraProperties: ["hidden"],
             },
             {
                 name: "Rewind Button",
-                object: this.controls.rewindButton
+                object: this.controls.rewindButton,
+                extraProperties: ["hidden"],
             },
             {
                 name: "Timeline Box",
-                object: this.controls.timelineBox
+                object: this.controls.timelineBox,
             },
             {
                 name: "Mute Box",
-                object: this.controls.muteBox
+                object: this.controls.muteBox,
+                extraProperties: ["hidden"],
             },
             {
                 name: "Fullscreen Button",
-                object: this.controls.fullscreenButton
+                object: this.controls.fullscreenButton,
+                extraProperties: ["hidden"],
             },
             {
                 name: "AppleTV Device Picker",
@@ -2325,11 +2329,36 @@
             {
                 name: "Picture-in-picture Button",
                 object: this.controls.pictureInPictureButton,
-                extraProperties: ["parentElement"],
+                extraProperties: ["parentElement", "hidden"],
             },
             {
+                name: "Caption Button",
+                object: this.controls.captionButton,
+                extraProperties: ["hidden"],
+            },
+            {
+                name: "Timeline",
+                object: this.controls.timeline,
+                extraProperties: ["hidden"],
+            },
+            {
+                name: "Current Time",
+                object: this.controls.currentTime,
+                extraProperties: ["hidden"],
+            },
+            {
+                name: "Thumbnail Track",
+                object: this.controls.thumbnailTrack,
+                extraProperties: ["hidden"],
+            },
+            {
+                name: "Time Remaining",
+                object: this.controls.remainingTime,
+                extraProperties: ["hidden"],
+            },
+            {
                 name: "Track Menu",
-                object: this.captionMenu
+                object: this.captionMenu,
             },
             {
                 name: "Inline playback placeholder",

Modified: trunk/Source/WebCore/testing/InternalSettings.cpp (203056 => 203057)


--- trunk/Source/WebCore/testing/InternalSettings.cpp	2016-07-11 14:35:54 UTC (rev 203056)
+++ trunk/Source/WebCore/testing/InternalSettings.cpp	2016-07-11 14:37:32 UTC (rev 203057)
@@ -227,7 +227,7 @@
     , m_backup(page->settings())
 {
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)
-    page->settings().setAllowsAirPlayForMediaPlayback(false);
+    setAllowsAirPlayForMediaPlayback(false);
 #endif
 }
 
@@ -238,7 +238,7 @@
     page()->setCanStartMedia(true);
     page()->settings().setForcePendingWebGLPolicy(false);
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)
-    page()->settings().setAllowsAirPlayForMediaPlayback(false);
+    setAllowsAirPlayForMediaPlayback(false);
 #endif
 
     m_backup.restoreTo(*settings());
@@ -381,12 +381,12 @@
     m_page->setCanStartMedia(enabled);
 }
 
-void InternalSettings::setWirelessPlaybackDisabled(bool available)
+void InternalSettings::setAllowsAirPlayForMediaPlayback(bool allows)
 {
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)
-    m_page->settings().setAllowsAirPlayForMediaPlayback(available);
+    m_page->settings().setAllowsAirPlayForMediaPlayback(allows);
 #else
-    UNUSED_PARAM(available);
+    UNUSED_PARAM(allows);
 #endif
 }
 

Modified: trunk/Source/WebCore/testing/InternalSettings.h (203056 => 203057)


--- trunk/Source/WebCore/testing/InternalSettings.h	2016-07-11 14:35:54 UTC (rev 203056)
+++ trunk/Source/WebCore/testing/InternalSettings.h	2016-07-11 14:37:32 UTC (rev 203057)
@@ -138,7 +138,7 @@
     void setTextAutosizingFontScaleFactor(float fontScaleFactor, ExceptionCode&);
     void setMediaTypeOverride(const String& mediaType, ExceptionCode&);
     void setCanStartMedia(bool, ExceptionCode&);
-    void setWirelessPlaybackDisabled(bool);
+    void setAllowsAirPlayForMediaPlayback(bool);
     void setEditingBehavior(const String&, ExceptionCode&);
     void setPreferMIMETypeForImages(bool, ExceptionCode&);
     void setShouldDisplayTrackKind(const String& kind, bool enabled, ExceptionCode&);

Modified: trunk/Source/WebCore/testing/InternalSettings.idl (203056 => 203057)


--- trunk/Source/WebCore/testing/InternalSettings.idl	2016-07-11 14:35:54 UTC (rev 203056)
+++ trunk/Source/WebCore/testing/InternalSettings.idl	2016-07-11 14:37:32 UTC (rev 203057)
@@ -53,7 +53,7 @@
     [RaisesException] void setDefaultVideoPosterURL(DOMString poster);
     [RaisesException] void setTimeWithoutMouseMovementBeforeHidingControls(unrestricted double time);
     [RaisesException] void setMediaTypeOverride(DOMString mediaTypeOverride);
-    void setWirelessPlaybackDisabled(boolean available);
+    void setAllowsAirPlayForMediaPlayback(boolean available);
 
     [RaisesException] void setForcePendingWebGLPolicy(boolean forced);
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to