blob: 21dce4468e1ec23d0e9b564bd7e8a9e680083a69 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<video controls></video>
<p>This tests that a mouse events on the controls will not be seen by the video element.</p>
<p>Also tests keyboard input.</p>
<script src=media-file.js></script>
<script src=video-test.js></script>
<script src=media-controls.js></script>
<script>
waitForEventAndFail("click");
waitForEventAndFail("dblclick");
waitForEventAndFail("mousedown");
waitForEventAndFail("mouseup");
waitForEventAndFail("keydown");
waitForEventAndEnd("loadeddata", function()
{
if (window.eventSender) {
// click the play button
var coords = mediaControlsButtonCoordinates(video, "play-button");
eventSender.mouseMoveTo(coords[0], coords[1]);
eventSender.mouseDown();
eventSender.mouseUp();
eventSender.keyDown('A');
// Click the current time display, which should not respond to events, but
// should still capture them
coords = mediaControlsButtonCoordinates(video, "current-time-display");
eventSender.mouseMoveTo(coords[0], coords[1]);
eventSender.mouseDown();
eventSender.mouseUp();
eventSender.keyDown('A');
// Click the timeline - this tests that multilevel shadow DOM elements work
coords = mediaControlsButtonCoordinates(video, "timeline");
eventSender.mouseMoveTo(coords[0], coords[1]);
eventSender.mouseDown();
eventSender.mouseUp();
eventSender.keyDown('A');
// If we're not dragging, then we should get a mousemove.
waitForEventOnce("mousemove");
eventSender.mouseMoveTo(coords[0]+10, coords[1]+10);
// Expect another as we move back to the slider.
waitForEventOnce("mousemove");
eventSender.mouseMoveTo(coords[0], coords[1]);
// The above positioned the slider under the mouse. Click
// to begin a drag.
eventSender.mouseDown();
waitForEventAndFail("mousemove")
// Check that the timeline also captures mousemove if the
// slider is being dragged.
eventSender.mouseMoveTo(coords[0]+10, coords[1]+10)
}
});
video.src = findMediaFile("video", "content/test");
</script>
</body>
</html>