blob: 9dfd1f283328e07a675e1561bc7210a26429bc32 [file] [log] [blame]
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<input id="input1" type="text"></input>
<input id="input2" type="text"></input>
<input id="input3" type="text"></input>
<script>
jsTestIsAsync = true;
description("Checks that the relatedTarget attribute for FocusEvent objects is being set correctly when focusin/focusout events are dispatched. <b>Press tab four times</b> to dispatch a focusin and focusout event for each of the inputs below.");
var input1 = document.getElementById('input1');
var input2 = document.getElementById('input2');
var input3 = document.getElementById('input3');
input1.addEventListener("focusin", function(event) { shouldBeNull('event.relatedTarget'); });
input1.addEventListener("focusout", function(event) { shouldBe('event.relatedTarget', 'input2'); });
input1.addEventListener("focus", function(event) { shouldBeNull('event.relatedTarget'); });
input1.addEventListener("blur", function(event) { shouldBe('event.relatedTarget', 'input2'); });
input2.addEventListener("focusin", function(event) { shouldBe('event.relatedTarget', 'input1'); });
input2.addEventListener("focusout", function(event) { shouldBe('event.relatedTarget', 'input3'); });
input2.addEventListener("focus", function(event) { shouldBe('event.relatedTarget', 'input1'); });
input2.addEventListener("blur", function(event) { shouldBe('event.relatedTarget', 'input3'); finishJSTest(); });
input1.focus();
for (var i = 0; i < 2; i++) {
eventSender.keyDown('\t');
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>