Bug 976673 part.1 Add tests r=enndeakin

This commit is contained in:
Masayuki Nakano 2014-06-18 15:12:59 +09:00
parent 03e30752f9
commit 37b7f48906
3 changed files with 129 additions and 0 deletions

View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test for Bug 976673</title>
</head>
<body>
<input id="input" onfocus="event.target.value = event.type;"
onblur="event.target.value = event.type;">
<script>
var input = document.getElementById("input");
window.addEventListener("message", function (aEvent) {
switch (aEvent.data) {
case "init":
input.blur();
input.value = "";
input.focus();
case "check":
aEvent.source.postMessage("input-value: " + input.value, "*");
break;
}
}, false);
</script>
</body>
</html>

View File

@ -1,6 +1,7 @@
[DEFAULT]
support-files =
audio.ogg
iframe_bug976673.html
iframe_messageChannel_cloning.html
iframe_messageChannel_chrome.html
iframe_messageChannel_pingpong.html
@ -14,6 +15,7 @@ support-files =
[test_audioNotification.html]
[test_bug793311.html]
[test_bug913761.html]
[test_bug976673.html]
[test_bug978522.html]
[test_bug979109.html]
[test_bug989665.html]

View File

@ -0,0 +1,102 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=976673
-->
<head>
<meta charset="utf-8">
<title>Test for Bug 976673</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=976673">Mozilla Bug 976673</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
<input id="input" onfocus="event.target.value = event.type;"
onblur="event.target.value = event.type;">
<button id="button">set focus</button>
<iframe id="iframe" src="http://example.org:80/tests/dom/base/test/iframe_bug976673.html"></iframe>
<script>
SimpleTest.waitForExplicitFinish();
window.addEventListener("mousedown", function (aEvent) { aEvent.preventDefault(); }, false);
function testSetFocus(aEventType, aCallback)
{
var description = "Setting focus from " + aEventType + " handler: ";
var iframe = document.getElementById("iframe");
iframe.contentWindow.focus();
window.addEventListener("message", function (aEvent) {
window.removeEventListener("message", arguments.callee, false);
is(aEvent.data, "input-value: focus",
description + "<input> in the iframe should get focus");
var input = document.getElementById("input");
input.value = "";
var button = document.getElementById("button");
var movingFocus = false;
button.addEventListener(aEventType,
function (aEvent) {
movingFocus = true;
input.focus();
aEvent.preventDefault();
button.removeEventListener(aEventType, arguments.callee, true);
}, true);
synthesizeMouseAtCenter(button, {});
window.addEventListener("message", function (aEvent) {
window.removeEventListener("message", arguments.callee, false);
if (movingFocus) {
is(aEvent.data, "input-value: blur",
description + "<input> in the iframe should get blur");
is(input.value, "focus",
description + "<input> in the parent should get focus");
} else {
is(aEvent.data, "input-value: focus",
description + "<input> in the iframe should keep having focus");
}
setTimeout(aCallback, 0);
}, false);
iframe.contentWindow.postMessage("check", "*");
}, false);
iframe.contentWindow.postMessage("init", "*");
}
function runTests()
{
testSetFocus("mousedown",
function () {
testSetFocus("mouseup",
function () {
testSetFocus("click",
function () {
testSetFocus("DoNothing", // testing wihout moving focus by script
function () {
SimpleTest.finish();
});
});
});
});
}
SimpleTest.waitForFocus(runTests);
</script>
</body>
</html>