mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-08 04:27:37 +00:00
f06e741959
XPConnect generally throws when trying to create instances of non-DOM objects in content. Due to some bugs this has historically worked in certain cases, but we're fixing those now. So we need to fix the tests that do this sort of thing.
92 lines
2.7 KiB
HTML
92 lines
2.7 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=462789
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 462789</title>
|
|
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.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=462789">Mozilla Bug 462789</a>
|
|
<p id="display"><iframe id="bug462789_iframe" src="data:text/html,<html><head><style>*{color:black;}</style></head><body>xxx" style="display: none;"></iframe></p>
|
|
<div id="content" style="display: none">
|
|
|
|
</div>
|
|
<pre id="test">
|
|
<script type="application/javascript">
|
|
|
|
/** Test for Bug 462789 **/
|
|
|
|
function do_test() {
|
|
const ERROR_FAILURE = 0x80004005;
|
|
const DOCUMENT_NODE_TYPE = 9;
|
|
|
|
var utils = SpecialPowers.Cc["@mozilla.org/inspector/dom-utils;1"]
|
|
.getService(SpecialPowers.Ci.inIDOMUtils);
|
|
|
|
var iframe = document.getElementById("bug462789_iframe");
|
|
var docElement = iframe.contentDocument.documentElement;
|
|
var body = docElement.children[1];
|
|
var rule = iframe.contentDocument.styleSheets[0].cssRules[0];
|
|
var text = body.firstChild;
|
|
|
|
try {
|
|
var res = utils.getCSSStyleRules(docElement);
|
|
is(res, null, "getCSSStyleRules");
|
|
res = utils.getCSSStyleRules(body);
|
|
is(res, null, "getCSSStyleRules");
|
|
}
|
|
catch(e) { ok(false, "got an unexpected exception:" + e); }
|
|
|
|
try {
|
|
var res = utils.getRuleLine(rule);
|
|
is(res, 1, "getRuleLine");
|
|
}
|
|
catch(e) { ok(false, "got an unexpected exception:" + e); }
|
|
|
|
try {
|
|
var res = utils.isIgnorableWhitespace(text);
|
|
is(res, false, "isIgnorableWhitespace");
|
|
}
|
|
catch(e) { ok(false, "got an unexpected exception:" + e); }
|
|
|
|
try {
|
|
var res = utils.getParentForNode(docElement, true);
|
|
is(res.nodeType, DOCUMENT_NODE_TYPE, "getParentForNode(docElement, true)");
|
|
res = utils.getParentForNode(text, true);
|
|
is(res.tagName, "BODY", "getParentForNode(text, true)");
|
|
}
|
|
catch(e) { ok(false, "got an unexpected exception:" + e); }
|
|
|
|
try {
|
|
var res = utils.getBindingURLs(docElement);
|
|
ok(SpecialPowers.call_Instanceof(res, SpecialPowers.Ci["nsIArray"]), "getBindingURLs result type");
|
|
is(res.length, 0, "getBindingURLs array length");
|
|
}
|
|
catch(e) { ok(false, "got an unexpected exception:" + e); }
|
|
|
|
try {
|
|
utils.getContentState(docElement);
|
|
ok(true, "Should not throw");
|
|
}
|
|
catch(e) { ok(false, "Got an exception: " + e); }
|
|
|
|
try {
|
|
utils.setContentState(docElement, false);
|
|
ok(false, "expected an exception");
|
|
}
|
|
catch(e) { is(e.result, ERROR_FAILURE, "got the expected exception"); }
|
|
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
addLoadEvent(do_test);
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|