Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- Manifest: dom/html/test/mochitest.toml
<!DOCTYPE HTML>
<html>
<!--
-->
<head>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script src="/tests/SimpleTest/EventUtils.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<style>
input { padding: 0; margin: 0; border: none; }
</style>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=388794">Mozilla Bug 388794</a>
<p id="display">
<form action="dummy_page.html" target="test1" method="GET">
<input id="test1image" type="image" name="testImage">
</form>
<form action="dummy_page.html" target="test2" method="GET">
<input id="test2image" type="image">
</form>
<form action="dummy_page.html" target="test3" method="GET">
<input id="test3image" type="image" src="nnc_lockup.gif" name="testImage">
</form>
<form action="dummy_page.html" target="test4" method="GET">
<input id="test4image" type="image" src="nnc_lockup.gif">
</form>
<form action="dummy_page.html" target="test5" method="GET">
<input id="test5image" type="image" src="nnc_lockup.gif" name="testImage">
</form>
<form action="dummy_page.html" target="test6" method="GET">
<input id="test6image" type="image" src="nnc_lockup.gif">
</form>
<iframe name="test1" id="test1"></iframe>
<iframe name="test2" id="test2"></iframe>
<iframe name="test3" id="test3"></iframe>
<iframe name="test4" id="test4"></iframe>
<iframe name="test5" id="test5"></iframe>
<iframe name="test6" id="test6"></iframe>
</p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script type="application/javascript">
SimpleTest.waitForExplicitFinish();
var pendingLoads = 0;
/* Use regex due to rounding error in Fennec with C++APZ enabled */
var hrefs = {
test1: /\?testImage\.x=0&testImage\.y=0/,
test2: /\?x=0&y=0/,
test3: /\?testImage\.x=0&testImage\.y=0/,
test4: /\?x=0&y=0/,
test5: /\?testImage\.x=[4-6]&testImage\.y=[4-6]/,
test6: /\?x=[4-6]&y=[4-6]/,
};
function submitForm(idNum) {
$("test"+idNum).setAttribute("onload", "frameLoaded(this)");
$("test" + idNum + "image").focus();
sendKey("return");
}
function submitFormMouse(idNum) {
$("test"+idNum).setAttribute("onload", "frameLoaded(this)");
// Use 4.99 instead of 5 to guard against the possibility that the
// image's 'top' is exactly N + 0.5 pixels from the root. In that case
// we'd round up the widget mouse coordinate to N + 6, which relative
// to the image would be 5.5, which would get rounded up to 6 when
// submitting the form. Instead we round the widget mouse coordinate to
// N + 5, which relative to the image would be 4.5 which gets rounded up
// to 5.
synthesizeMouse($("test" + idNum + "image"), 4.99, 4.99, {});
}
addLoadEvent(function() {
// Need the timeout so painting has a chance to be unsuppressed.
setTimeout(function() {
submitForm(++pendingLoads);
submitForm(++pendingLoads);
submitForm(++pendingLoads);
submitForm(++pendingLoads);
submitFormMouse(++pendingLoads);
submitFormMouse(++pendingLoads);
}, 0);
});
function frameLoaded(frame) {
ok(
hrefs[frame.name].test(frame.contentWindow.location.href),
"Unexpected href for frame " + frame.name + " - " +
"expected to match: " + hrefs[frame.name].toString() + " got: " + frame.contentWindow.location.href
);
if (--pendingLoads == 0) {
SimpleTest.finish();
}
}
</script>
</pre>
</body>
</html>