Diff
Modified: trunk/LayoutTests/ChangeLog (217889 => 217890)
--- trunk/LayoutTests/ChangeLog 2017-06-07 17:13:34 UTC (rev 217889)
+++ trunk/LayoutTests/ChangeLog 2017-06-07 17:36:51 UTC (rev 217890)
@@ -1,3 +1,34 @@
+2017-06-07 Antoine Quint <[email protected]>
+
+ Rebaseline and enable media/modern-media-controls/button
+ https://bugs.webkit.org/show_bug.cgi?id=173058
+ <rdar://problem/32615846>
+
+ Reviewed by Eric Carlson.
+
+ The IconButton class was removed and merged into its superclass Button, so we merge those tests
+ in a single directory. A couple tests no longer applied as we do not have a focused state for
+ buttons anymore, nor do we deal with changes in layout traits since there is no such thing as
+ a compact mode anymore.
+
+ * media/modern-media-controls/button/button-active-state-expected.txt: Added.
+ * media/modern-media-controls/button/button-active-state.html: Renamed from LayoutTests/media/modern-media-controls/icon-button/icon-button-active-state.html.
+ * media/modern-media-controls/button/button-icon-name-expected.txt: Added.
+ * media/modern-media-controls/button/button-icon-name.html: Added.
+ * media/modern-media-controls/button/button-on-expected.txt: Added.
+ * media/modern-media-controls/button/button-on.html: Renamed from LayoutTests/media/modern-media-controls/icon-button/icon-button-on.html.
+ * media/modern-media-controls/button/button.html:
+ * media/modern-media-controls/icon-button/icon-button-active-state-expected.txt: Removed.
+ * media/modern-media-controls/icon-button/icon-button-change-layout-traits-expected.txt: Removed.
+ * media/modern-media-controls/icon-button/icon-button-change-layout-traits.html: Removed.
+ * media/modern-media-controls/icon-button/icon-button-expected.txt: Removed.
+ * media/modern-media-controls/icon-button/icon-button-focus-state-expected.txt: Removed.
+ * media/modern-media-controls/icon-button/icon-button-focus-state.html: Removed.
+ * media/modern-media-controls/icon-button/icon-button-on-expected.txt: Removed.
+ * media/modern-media-controls/icon-button/icon-button.html: Removed.
+ * platform/ios-simulator/TestExpectations:
+ * platform/mac/TestExpectations:
+
2017-06-07 Ryan Haddad <[email protected]>
Remove TestExpectation for fast/backgrounds/background-repeat-x-y-parse.html.
Added: trunk/LayoutTests/media/modern-media-controls/button/button-active-state-expected.txt (0 => 217890)
--- trunk/LayoutTests/media/modern-media-controls/button/button-active-state-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/button/button-active-state-expected.txt 2017-06-07 17:36:51 UTC (rev 217890)
@@ -0,0 +1,11 @@
+Testing an Button has a scale transform when pressed.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS window.getComputedStyle(button.image.element).transform is "matrix(0.89, 0, 0, 0.89, 0, 0)"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
+
Copied: trunk/LayoutTests/media/modern-media-controls/button/button-active-state.html (from rev 217889, trunk/LayoutTests/media/modern-media-controls/icon-button/icon-button-active-state.html) (0 => 217890)
--- trunk/LayoutTests/media/modern-media-controls/button/button-active-state.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/button/button-active-state.html 2017-06-07 17:36:51 UTC (rev 217890)
@@ -0,0 +1,55 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<body>
+<script type="text/_javascript_">
+
+description("Testing an <code>Button</code> has a scale transform when pressed.");
+
+window.jsTestIsAsync = true;
+
+const button = new Button({ layoutDelegate: { layoutTraits: LayoutTraits.macOS } });
+button.iconName = Icons.Pause;
+document.body.appendChild(button.element);
+
+let x, y;
+
+button.image.element.addEventListener("transitionend", event => {
+ shouldBeEqualToString("window.getComputedStyle(button.image.element).transform", "matrix(0.89, 0, 0, 0.89, 0, 0)");
+ if ("createTouch" in document) {
+ testRunner.runUIScript(`
+ uiController.liftUpAtPoint(${x}, ${y}, 1, function() {
+ uiController.uiScriptComplete("Done");
+ })`, finishJSTest);
+ } else {
+ eventSender.mouseUp();
+ finishJSTest();
+ }
+});
+
+scheduler.frameDidFire = function()
+{
+ const bounds = button.element.getBoundingClientRect();
+ if (bounds.height === 0)
+ return;
+
+ scheduler.frameDidFire = null;
+
+ if ("testRunner" in window) {
+ x = bounds.left + 1;
+ y = bounds.top + 1;
+ if ("createTouch" in document) {
+ testRunner.runUIScript(`
+ uiController.touchDownAtPoint(${x}, ${y}, 1, function() {
+ uiController.uiScriptComplete("Done");
+ })`);
+ } else {
+ eventSender.mouseMoveTo(x, y);
+ eventSender.mouseDown();
+ }
+ } else
+ debug("This test is designed to run in DRT.");
+}
+
+</script>
+<script src=""
+</body>
Added: trunk/LayoutTests/media/modern-media-controls/button/button-icon-name-expected.txt (0 => 217890)
--- trunk/LayoutTests/media/modern-media-controls/button/button-icon-name-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/button/button-icon-name-expected.txt 2017-06-07 17:36:51 UTC (rev 217890)
@@ -0,0 +1,32 @@
+Testing the Button class iconName property.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+
+There should be no iconName by default
+PASS button.iconName is ""
+
+Setting an iconName with invalid layout traits should throw
+PASS function () { button.iconName = Icons.Pause } threw exception Could not identify icon's platform from layout traits..
+PASS button.iconName is ""
+
+Setting macOS inline layout traits and setting play icon
+PASS button.image.element.style.webkitMaskImage.includes("macOS/Pause.svg") is true
+PASS button.element.style.width is "11px"
+PASS button.element.style.height is "13px"
+PASS button.image.element.style.width is "11px"
+PASS button.image.element.style.height is "13px"
+PASS button.element.getAttribute('aria-label') is "Pause"
+
+Setting start icon
+PASS button.image.element.style.webkitMaskImage.includes("macOS/Rewind.svg") is true
+PASS button.element.style.width is "24px"
+PASS button.element.style.height is "16px"
+PASS button.image.element.style.width is "24px"
+PASS button.image.element.style.height is "16px"
+PASS button.element.getAttribute('aria-label') is "Rewind"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/media/modern-media-controls/button/button-icon-name.html (0 => 217890)
--- trunk/LayoutTests/media/modern-media-controls/button/button-icon-name.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/button/button-icon-name.html 2017-06-07 17:36:51 UTC (rev 217890)
@@ -0,0 +1,59 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<body>
+<script type="text/_javascript_">
+
+window.jsTestIsAsync = true;
+
+description("Testing the <code>Button</code> class <code>iconName</code> property.");
+
+const layoutDelegate = {};
+
+const button = new Button({ layoutDelegate });
+
+debug("");
+debug("There should be no iconName by default");
+shouldBeEqualToString("button.iconName", "");
+
+debug("");
+debug("Setting an iconName with invalid layout traits should throw");
+shouldThrow(function() { button.iconName = Icons.Pause });
+shouldBeEqualToString("button.iconName", "");
+
+debug("");
+debug("Setting macOS inline layout traits and setting play icon");
+layoutDelegate.layoutTraits = LayoutTraits.macOS;
+button.iconName = Icons.Pause;
+
+let numberOfFrames = 0;
+
+scheduler.frameDidFire = function()
+{
+ numberOfFrames++;
+
+ if (numberOfFrames === 1) {
+ shouldBeTrue('button.image.element.style.webkitMaskImage.includes("macOS/Pause.svg")');
+ shouldBeEqualToString("button.element.style.width", "11px");
+ shouldBeEqualToString("button.element.style.height", "13px");
+ shouldBeEqualToString("button.image.element.style.width", "11px");
+ shouldBeEqualToString("button.image.element.style.height", "13px");
+ shouldBeEqualToString("button.element.getAttribute('aria-label')", `${Icons.Pause.label}`);
+ debug("");
+ debug("Setting start icon");
+ button.iconName = Icons.Rewind;
+ } else if (numberOfFrames === 2) {
+ shouldBeTrue('button.image.element.style.webkitMaskImage.includes("macOS/Rewind.svg")');
+ shouldBeEqualToString("button.element.style.width", "24px");
+ shouldBeEqualToString("button.element.style.height", "16px");
+ shouldBeEqualToString("button.image.element.style.width", "24px");
+ shouldBeEqualToString("button.image.element.style.height", "16px");
+ shouldBeEqualToString("button.element.getAttribute('aria-label')", `${Icons.Rewind.label}`);
+
+ finishMediaControlsTest();
+ }
+};
+
+</script>
+<script src=""
+</body>
Added: trunk/LayoutTests/media/modern-media-controls/button/button-on-expected.txt (0 => 217890)
--- trunk/LayoutTests/media/modern-media-controls/button/button-on-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/button/button-on-expected.txt 2017-06-07 17:36:51 UTC (rev 217890)
@@ -0,0 +1,11 @@
+Testing an Button has a white background-color when set to `on`.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS window.getComputedStyle(button.image.element).backgroundColor is "rgb(255, 255, 255)"
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: trunk/LayoutTests/media/modern-media-controls/button/button-on.html (from rev 217889, trunk/LayoutTests/media/modern-media-controls/icon-button/icon-button-on.html) (0 => 217890)
--- trunk/LayoutTests/media/modern-media-controls/button/button-on.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/button/button-on.html 2017-06-07 17:36:51 UTC (rev 217890)
@@ -0,0 +1,27 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<body>
+<script type="text/_javascript_">
+
+description("Testing an <code>Button</code> has a white background-color when set to `on`.");
+
+window.jsTestIsAsync = true;
+
+const button = new Button({ layoutDelegate: { layoutTraits: LayoutTraits.macOS } });
+button.iconName = Icons.Pause;
+button.on = true;
+document.body.appendChild(button.element);
+
+scheduler.frameDidFire = function()
+{
+ shouldBeEqualToString("window.getComputedStyle(button.image.element).backgroundColor", "rgb(255, 255, 255)");
+
+ button.element.remove();
+ debug("");
+ finishMediaControlsTest();
+}
+
+</script>
+<script src=""
+</body>
Modified: trunk/LayoutTests/media/modern-media-controls/button/button.html (217889 => 217890)
--- trunk/LayoutTests/media/modern-media-controls/button/button.html 2017-06-07 17:13:34 UTC (rev 217889)
+++ trunk/LayoutTests/media/modern-media-controls/button/button.html 2017-06-07 17:36:51 UTC (rev 217890)
@@ -51,6 +51,7 @@
shouldBeEqualToString("style.borderWidth", "0px");
shouldBeEqualToString("style.webkitAppearance", "none");
+ button.element.remove();
finishJSTest();
});
});
Modified: trunk/LayoutTests/platform/ios-simulator/TestExpectations (217889 => 217890)
--- trunk/LayoutTests/platform/ios-simulator/TestExpectations 2017-06-07 17:13:34 UTC (rev 217889)
+++ trunk/LayoutTests/platform/ios-simulator/TestExpectations 2017-06-07 17:36:51 UTC (rev 217890)
@@ -59,11 +59,16 @@
media/modern-media-controls/airplay-placard [ Pass ]
media/modern-media-controls/audio [ Pass ]
media/modern-media-controls/background-tint [ Pass ]
+media/modern-media-controls/button [ Pass ]
# AirPlay cannot be tested on iOS
webkit.org/b/166062 media/modern-media-controls/airplay-support [ Skip ]
webkit.org/b/166062 media/modern-media-controls/audio/audio-controls-buttons.html [ Skip ]
+# These tests use touch events and don't work in OpenSource
+media/modern-media-controls/button/button.html [ Skip ]
+media/modern-media-controls/button/button-active-state.html [ Skip ]
+
webkit.org/b/172965 media/track/track-cue-overlap-snap-to-lines-not-set.html [ Failure ]
webkit.org/b/156718 storage/websql/alter-to-info-table.html [ Failure ]
Modified: trunk/LayoutTests/platform/mac/TestExpectations (217889 => 217890)
--- trunk/LayoutTests/platform/mac/TestExpectations 2017-06-07 17:13:34 UTC (rev 217889)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2017-06-07 17:36:51 UTC (rev 217890)
@@ -1554,6 +1554,7 @@
media/modern-media-controls/airplay-support [ Pass ]
media/modern-media-controls/audio [ Pass ]
media/modern-media-controls/background-tint [ Pass ]
+media/modern-media-controls/button [ Pass ]
media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button.html [ Pass ]
media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html [ Pass ]
media/modern-media-controls/volume-up-support [ Pass ]