blob: 05327455f9fbff8ce358fe509f95cdd7246eb189 [file] [log] [blame]
<!DOCTYPE html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script src="../forms/resources/common.js"></script>
</head>
<script>
if (!window.eventSender)
document.body.textContent = 'This test requires window.eventSender.';
function moveFocus(direction) {
eventSender.keyDown('\t', direction == 'forward' ? [] : ['shiftKey']);
}
function focusEnd() {
document.getElementById("end").focus();
}
function removeEnd() {
document.getElementById("body").removeChild(document.getElementById("end"));
}
function insertEnd() {
var input = document.createElement("input");
input.setAttribute('id', 'end');
insertAfter(input, document.getElementById("next"));
}
function insertAfter(newNode, referenceNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
function runTest() {
debug("After removing a focused element at the end of tree, accessing focus navigation starting point shouldn't lead to crash.");
shouldBe("insertEnd(); focusEnd(); removeEnd(); moveFocus('forward'); document.activeElement.id", "'next'");
shouldBe("insertEnd(); focusEnd(); removeEnd(); moveFocus('backward'); document.activeElement.id", "'prev'");
}
</script>
<body id="body" onload="runTest();">
<div id="log"></div>
<div id="container"></div>
<input id="prev"><input id="next"></body>