зеркало из https://github.com/mozilla/gecko-dev.git
Bug 113934 tests
This commit is contained in:
Родитель
b721f72a42
Коммит
4c0efcaf45
|
@ -44,6 +44,8 @@ include $(DEPTH)/config/autoconf.mk
|
|||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
_TEST_FILES = \
|
||||
test_bug113934.xul \
|
||||
bug113934_window.xul \
|
||||
test_bug364461.xul \
|
||||
bug364461_window.xul \
|
||||
test_bug396519.xul \
|
||||
|
|
|
@ -0,0 +1,103 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<window title="Mozilla Bug 113934" onload="doTheTest()"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<hbox>
|
||||
<vbox>
|
||||
<browser type="content" id="f1" width="300" height="200"/>
|
||||
<browser type="content" id="f2" width="300" height="200"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<browser type="content" id="f3" width="30" height="200"/>
|
||||
</vbox>
|
||||
<spacer flex="1"/>
|
||||
</hbox>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript"><![CDATA[
|
||||
var imports = [ "SimpleTest", "is", "isnot", "ok", "snapshotWindow",
|
||||
"compareSnapshots" ];
|
||||
for each (var import in imports) {
|
||||
window[import] = window.opener.wrappedJSObject[import];
|
||||
}
|
||||
|
||||
function $(id) {
|
||||
return document.getElementById(id);
|
||||
}
|
||||
|
||||
/** Test for Bug 113934 **/
|
||||
var doc1 =
|
||||
"data:text/html,<html><body onbeforeunload='document.documentElement.textContent = \"\"' onunload='document.documentElement.textContent = \"\"' onpagehide='document.documentElement.textContent = \"\"'>This is a test</body></html>";
|
||||
var doc2 = "data:text/html,<html><body>This is a second test</body></html>";
|
||||
|
||||
|
||||
$("f1").setAttribute("src", doc1);
|
||||
$("f2").setAttribute("src", doc2);
|
||||
$("f3").setAttribute("src", doc2);
|
||||
|
||||
function doTheTest() {
|
||||
var s1 = snapshotWindow($("f1").contentWindow);
|
||||
var s2 = snapshotWindow($("f2").contentWindow);
|
||||
var s3 = snapshotWindow($("f3").contentWindow);
|
||||
|
||||
ok(!compareSnapshots(s2, s3)[0],
|
||||
"Should look different due to different sizing");
|
||||
|
||||
function getDOM(id) {
|
||||
return $(id).contentDocument.documentElement.innerHTML;
|
||||
}
|
||||
|
||||
var dom1 = getDOM("f1");
|
||||
|
||||
var dom2 = getDOM("f2");
|
||||
$("f2").contentDocument.body.textContent = "Modified the text";
|
||||
var dom2star = getDOM("f2");
|
||||
isnot(dom2, dom2star, "We changed the DOM!");
|
||||
|
||||
$("f1").swapDocShells($("f2"));
|
||||
// now we have doms 2*, 1, 2 in the frames
|
||||
|
||||
is(getDOM("f1"), dom2star, "Shouldn't have changed the DOM on swap");
|
||||
is(getDOM("f2"), dom1, "Shouldn't have fired event handlers");
|
||||
|
||||
var strs = { "f1": "", "f3" : "" };
|
||||
function attachListener(node, type) {
|
||||
var listener = function(e) {
|
||||
if (strs[node.id]) strs[node.id] += " ";
|
||||
strs[node.id] += node.id + ".page" + type;
|
||||
}
|
||||
node.addEventListener("page" + type, listener, false);
|
||||
|
||||
listener.detach = function() {
|
||||
node.removeEventListener("page" + type, listener, false);
|
||||
}
|
||||
return listener;
|
||||
}
|
||||
|
||||
var l1 = attachListener($("f1"), "show");
|
||||
var l2 = attachListener($("f1"), "hide");
|
||||
var l3 = attachListener($("f3"), "show");
|
||||
var l4 = attachListener($("f3"), "hide");
|
||||
|
||||
$("f1").swapDocShells($("f3"));
|
||||
// now we have DOMs 2, 1, 2* in the frames
|
||||
|
||||
l1.detach();
|
||||
l2.detach();
|
||||
l3.detach();
|
||||
l4.detach();
|
||||
|
||||
var s1_new = snapshotWindow($("f1").contentWindow);
|
||||
var [same, first, second] = compareSnapshots(s1_new, s2);
|
||||
ok(same, "Should reflow on swap", "Expected " + second + " but got " + first);
|
||||
|
||||
is(strs["f1"], "f1.pagehide f1.pageshow");
|
||||
is(strs["f3"], "f3.pagehide f3.pageshow");
|
||||
|
||||
window.close();
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
]]></script>
|
||||
</window>
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=113934
|
||||
-->
|
||||
<window title="Mozilla Bug 113934"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/MochiKit/packed.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/WindowSnapshot.js"></script>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=113934"
|
||||
target="_blank">Mozilla Bug 396519</a>
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript"><![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
addLoadEvent(function() {
|
||||
window.open("bug113934_window.xul", "bug113934",
|
||||
"chrome,width=800,height=800");
|
||||
});
|
||||
|
||||
]]></script>
|
||||
</window>
|
Загрузка…
Ссылка в новой задаче