blob: 287db04da98465663ef2b46d09564931e8c09d1c [file] [log] [blame]
<!DOCTYPE html><!-- webkit-test-runner [ enableModernMediaControls=false ] -->
<html>
<head>
<style>
audio { width: 400px; }
</style>
<script src=media-file.js></script>
<script src=video-test.js></script>
<script src=media-controls.js></script>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function log(msg)
{
var console = document.getElementById('console');
console.innerHTML = console.innerHTML + msg + "<br>";
}
function buttonClick()
{
if (document.getElementById('audio'))
log("<br>FAIL: audio element not deleted!!");
log("<br>clicking button");
// click the button
var button = document.getElementById('button');
if (window.eventSender) {
eventSender.mouseMoveTo(button.offsetLeft + 20, button.offsetTop + 7);
eventSender.mouseDown();
eventSender.mouseUp();
}
if (window.testRunner)
testRunner.notifyDone();
}
function deleteAudio()
{
var audio = document.getElementById('audio');
if (!audio)
return;
log("<br>deleting audio element");
audio.parentNode.removeChild(audio);
setTimeout(buttonClick, 10);
}
function drag()
{
if (!window.testRunner)
return;
testRunner.dumpAsText();
testRunner.waitUntilDone();
var audio = document.getElementById('audio');
var seekCoords;
try {
seekCoords = mediaControlsButtonCoordinates(audio, "timeline");
} catch (exception) {
failTest(exception.description);
return;
}
var x = seekCoords[0];
var y = seekCoords[1];
// Click in the slider to get the thumb under the mouse.
log("clicking in controller");
eventSender.mouseMoveTo(x, y);
eventSender.mouseDown();
eventSender.mouseUp();
// Click slider to scrub, leave the mouse down.
log("clicking on thumb");
eventSender.mouseDown();
eventSender.mouseMoveTo(x, y + 20);
}
function start()
{
setSrcByTagName("audio", findMediaFile("audio", "content/test"));
audio.addEventListener("canplaythrough", drag);
audio.addEventListener("seeking", deleteAudio);
}
</script>
</head>
<body onload="start()">
This tests that events don't continue to target a slider thumb if the media element is deleted while scrubbing.
<br>
<input type="button" id="button" value="Click Me!" onmouseup="log('button click!')">
<br>
<audio id="audio" controls></audio><br><br>
<div id="console"></div>
</body>
</html>