зеркало из https://github.com/mozilla/gecko-dev.git
79 строки
2.0 KiB
HTML
79 строки
2.0 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=114649
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 114649</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
</head>
|
|
<body onload="run()">
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=114649">Mozilla Bug 114649</a>
|
|
<iframe id="display" style="width: 500px; height: 500px;"></iframe>
|
|
<pre id="test">
|
|
<script type="application/javascript">
|
|
|
|
/** Test for Bug 114649 **/
|
|
|
|
var gIFrame;
|
|
var gCurrentWidth = 500;
|
|
var gGotEventsAt = [];
|
|
var gInterval;
|
|
var gFinished = false;
|
|
|
|
function run() {
|
|
SimpleTest.waitForExplicitFinish();
|
|
SimpleTest.requestFlakyTimeout("Simulating dragging to resize a window");
|
|
|
|
gIFrame = document.getElementById("display");
|
|
|
|
var subdoc = gIFrame.contentDocument;
|
|
subdoc.open();
|
|
subdoc.write("<body onresize='window.parent.handle_resize_event()'>");
|
|
subdoc.close();
|
|
|
|
setTimeout(do_a_resize, 50);
|
|
}
|
|
|
|
function do_a_resize()
|
|
{
|
|
// decrease the width by 10 until we hit 400, then stop
|
|
gCurrentWidth -= 10;
|
|
gIFrame.style.width = gCurrentWidth + "px";
|
|
|
|
if (gCurrentWidth > 400) {
|
|
setTimeout(do_a_resize, 50);
|
|
}
|
|
}
|
|
|
|
function handle_resize_event()
|
|
{
|
|
gGotEventsAt.push(gCurrentWidth);
|
|
|
|
if (gCurrentWidth == 400) {
|
|
check_resize_events();
|
|
}
|
|
}
|
|
|
|
function check_resize_events()
|
|
{
|
|
if (gFinished) {
|
|
// We can get here when the browser can't process the resizes and
|
|
// dispatch resize events as fast as we're doing the resizing. We can
|
|
// then end up with multiple resize events queued up after we set our
|
|
// final size. This return makes sure that in that case we avoid
|
|
// calling SimpleTest.finish() more than once.
|
|
return;
|
|
}
|
|
gFinished = true;
|
|
ok(gGotEventsAt.length >= 2, "We should get more than one event");
|
|
isnot(gGotEventsAt[0], 400, "The first event shouldn't be for the final size");
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|