blob: 080722487220c6b4b03b7322c2cd5c9bfca142a5 [file] [log] [blame]
<DOCTYPE html>
<title>Test media controls video keyboard navigation with preventDefault()</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../media-controls.js"></script>
<script>
test(_ => {
assert_true('eventSender' in window);
}, 'eventSender required');
async_test(function(t) {
var video = document.createElement('video');
video.src = "../content/test.ogv";
video.controls = true;
assert_equals(video.volume, 1);
assert_equals(video.currentTime, 0);
video.addEventListener('keydown', e => { e.preventDefault() });
video.addEventListener('keypress', e => { e.preventDefault() });
video.addEventListener('keyup', e => { e.preventDefault() });
video.oncanplaythrough = t.step_func_done(function() {
// Focus the video.
video.focus();
// 'Enter' does not play the video.
eventSender.keyDown("Enter");
assert_true(video.paused);
// 'Down' does not reduce volume.
eventSender.keyDown("ArrowDown");
assert_equals(video.volume, 1);
// 'Space' also does not pauses/plays the video.
eventSender.keyDown(" ");
assert_true(video.paused);
var cur = video.currentTime;
// 'Right' does not scrub the timeline forward.
eventSender.keyDown("ArrowRight");
assert_equals(video.currentTime, cur);
// 'End' does not set the timeline to end.
eventSender.keyDown("End");
assert_equals(video.currentTime, cur);
});
document.body.appendChild(video);
});
</script>