| <!DOCTYPE html> |
| <html> |
| <head> |
| <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")); |
| |
| // Remove the element after seeking started |
| 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" autoplay onplaying="drag()" controls></audio><br><br> |
| <div id="console"></div> |
| </body> |
| </html> |