| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="media-file.js"></script> |
| <script src="video-test.js"></script> |
| <script> |
| async function playing() |
| { |
| if (window.testRunner) { |
| if (!window.eventSender) { |
| testRunner.dumpAsText(); |
| endTest(); |
| return; |
| } |
| } else { |
| endTest(); |
| return; |
| } |
| |
| findMediaElement(); |
| |
| var x, y, items; |
| x = video.offsetParent.offsetLeft + video.offsetLeft + video.offsetWidth / 2; |
| y = video.offsetParent.offsetTop + video.offsetTop + video.offsetHeight / 2; |
| eventSender.mouseMoveTo(x, y); |
| items = eventSender.contextClick(); |
| |
| for (var i = 0; i < items.length; i++) |
| { |
| if (items[i].title.match("Controls")) { |
| testExpected("video.controls", true, '=='); |
| consoleWrite("Toggling media controls"); |
| items[i].click(); |
| testExpected("video.controls", false, '=='); |
| consoleWrite(""); |
| } |
| |
| if (items[i].title.match("Pause")) { |
| testExpected("video.paused", false, '=='); |
| consoleWrite("Toggling play state"); |
| items[i].click(); |
| testExpected("video.paused", true, '=='); |
| consoleWrite(""); |
| } |
| |
| if (items[i].title.match("Loop")) { |
| testExpected("video.loop", false, '=='); |
| consoleWrite("Toggling loop state"); |
| items[i].click(); |
| testExpected("video.loop", true, '=='); |
| consoleWrite(""); |
| } |
| |
| if (items[i].title.match("Mute")) { |
| testExpected("video.muted", false, '=='); |
| consoleWrite("Toggling mute state"); |
| items[i].click(); |
| testExpected("video.muted", true, '=='); |
| consoleWrite(""); |
| } |
| |
| if (items[i].title.match("Fullscreen") && video.webkitSupportsFullscreen) { |
| testExpected("video.webkitDisplayingFullscreen", false, '=='); |
| consoleWrite("Toggling fullscreen state"); |
| items[i].click(); |
| await testExpectedEventually("internals.isChangingPresentationMode(video)", false, '==', 1000); |
| testExpected("video.webkitDisplayingFullscreen", true, '=='); |
| consoleWrite(""); |
| } |
| |
| // TODO: test copy link location and open in new window. |
| } |
| testRunner.dumpAsText(); |
| endTest(); |
| } |
| |
| async function start() |
| { |
| findMediaElement(); |
| waitForEvent('play', playing); |
| run("video.src = '" + findMediaFile("video", "content/test") + "'"); |
| } |
| </script> |
| </head> |
| <body onload="start()"> |
| <p>Test the various actions available in the HTML5 media element context-menu.</p> |
| <video id="video" autoplay controls></video> |
| </body> |
| </html> |
| |