diff options
Diffstat (limited to 'dom/html/test/test_bug388794.html')
-rw-r--r-- | dom/html/test/test_bug388794.html | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/dom/html/test/test_bug388794.html b/dom/html/test/test_bug388794.html new file mode 100644 index 0000000000..06388547d7 --- /dev/null +++ b/dom/html/test/test_bug388794.html @@ -0,0 +1,107 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=388794 +--> +<head> + <title>Test for Bug 388794</title> + <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"> + +/** Test for Bug 388794 **/ +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> |