blob: 14ba92fee9820074580d06b82ca0d34c953beed0 [file] [log] [blame]
<!DOCTYPE html>
<html>
<title>Click on volume bar on a MediaDocument does not pause.</title>
<head>
<script src="media-file.js"></script>
<script src="video-test.js"></script>
<script src="media-controls.js"></script>
<script type="text/javascript">
var mediaElement;
var skipOnFirstEmptyLoad = 0;
function calculateElementCoordinates(id)
{
var elementCoordinates;
try {
elementCoordinates = mediaControlsButtonCoordinates(mediaElement, id);
} catch (exception) {
consoleWrite("ERROR: unable to get controls coordinates.");
failTest();
}
var frameBoundingRect = document.querySelector("iframe").getBoundingClientRect();
elementCoordinates[0] += frameBoundingRect.left;
elementCoordinates[1] += frameBoundingRect.top;
return elementCoordinates;
}
function clickVolumeSlider()
{
if (!window.eventSender) {
consoleWrite("ERROR: no event sender.");
failTest();
}
var muteButtonCoordinates;
var volumeSliderCoordinates;
muteButtonCoordinates = calculateElementCoordinates("mute-button");
eventSender.mouseMoveTo(muteButtonCoordinates[0], muteButtonCoordinates[1]);
// Forcing relayout calculations to say that you are
// triggering the volume slider to show up for
// controls that work that way.
document.body.offsetTop;
volumeSliderCoordinates = calculateElementCoordinates("volume-slider");
eventSender.mouseMoveTo(volumeSliderCoordinates[0], volumeSliderCoordinates[1]);
eventSender.mouseDown();
eventSender.mouseUp();
}
function finishTest()
{
testExpected("mediaElement.volume", 1, "!=");
testExpected("mediaElement.paused", false);
endTest();
}
function frameLoaded()
{
if (++skipOnFirstEmptyLoad == 1)
return;
var standaloneMediaDocument = document.getElementById("videoframe").contentDocument;
mediaElement = standaloneMediaDocument.querySelector("video");
waitForEventAndFail("error");
waitForEvent('playing', playing);
mediaElement.pause();
mediaElement.play();
}
function playing()
{
testExpected("mediaElement.volume", 1);
testExpected("mediaElement.paused", false);
waitForEvent('volumechange', finishTest);
clickVolumeSlider();
}
</script>
</head>
<body>
<p>Click on volume bar on a MediaDocument does not pause.</p>
<iframe id="videoframe" width=380 height=330 onload="frameLoaded()"></iframe>
<script type="text/javascript">
document.getElementById("videoframe").src = findMediaFile("video", "content/test");
</script>
</body>
</html>