mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-31 19:47:32 +09:00
Issue #1118 - Part 6: Fix various tests that are no longer correct.
The behavior change of document.open() requires these tests to be changed to account for the new spec behavior.
This commit is contained in:
parent
fc5d61608c
commit
b753aec164
17 changed files with 71 additions and 205 deletions
|
|
@ -113,19 +113,25 @@ var testFramesLoaded = function() {
|
|||
|
||||
// test that a document can be framed under a javascript: URL opened by the
|
||||
// same site as the frame
|
||||
// We can't set a load event listener before calling document.open/document.write, because those will remove such listeners. So we need to define a function that the new window will be able to call.
|
||||
function frameInJSURILoaded(win) {
|
||||
var test = win.document.getElementById("sameorigin3")
|
||||
.contentDocument.getElementById("test");
|
||||
ok(test != null, "frame under javascript: URL should have loaded.");
|
||||
win.close();
|
||||
|
||||
// run last test
|
||||
if (!isUnique) {
|
||||
testFrameInDataURI();
|
||||
} else {
|
||||
testFrameNotLoadedInDataURI();
|
||||
}
|
||||
}
|
||||
|
||||
var testFrameInJSURI = function() {
|
||||
var html = '<iframe id="sameorigin3" src="http://mochi.test:8888/tests/dom/base/test/file_x-frame-options_page.sjs?testid=sameorigin3&xfo=sameorigin"></iframe>';
|
||||
var win = window.open();
|
||||
win.onload = function() {
|
||||
var test = win.document.getElementById("sameorigin3")
|
||||
.contentDocument.getElementById("test");
|
||||
ok(test != null, "frame under javascript: URL should have loaded.");
|
||||
win.close();
|
||||
|
||||
// run last test
|
||||
testFrameInDataURI();
|
||||
}
|
||||
win.location.href = "javascript:document.write('"+html+"');document.close();";
|
||||
win.location.href = "javascript:document.open(); onload = opener.frameInJSURILoaded.bind(null, window); document.write('"+html+"');document.close();";
|
||||
}
|
||||
|
||||
// test that a document can be framed under a data: URL opened by the
|
||||
|
|
|
|||
|
|
@ -529,7 +529,6 @@ skip-if = toolkit == 'android' # plugins not supported
|
|||
[test_bug196523.html]
|
||||
[test_bug199692.html]
|
||||
skip-if = toolkit == 'android' #bug 811644
|
||||
[test_bug172261.html]
|
||||
[test_bug255820.html]
|
||||
[test_bug259332.html]
|
||||
[test_bug311681.html]
|
||||
|
|
|
|||
|
|
@ -1,67 +0,0 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=172261
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 172261</title>
|
||||
<script type="text/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=172261">Mozilla Bug 172261</a>
|
||||
<p id="display">
|
||||
<iframe id="test"></iframe>
|
||||
</p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
/** Test for Bug 172261 **/
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
SimpleTest.requestFlakyTimeout("untriaged");
|
||||
|
||||
var callable = false;
|
||||
function toggleCallable() { callable = true; }
|
||||
|
||||
var doTestInIframe = false;
|
||||
|
||||
// Shouldn't do history stuff from inside onload
|
||||
addLoadEvent(function() { setTimeout(startTest, 10) });
|
||||
|
||||
function startTest() {
|
||||
// First, create a dummy document. Use onunload handlers to make sure
|
||||
// bfcache doesn't screw us up.
|
||||
var doc = $("test").contentDocument;
|
||||
|
||||
doc.write("<html><body onunload=''>First</body></html>");
|
||||
doc.close();
|
||||
|
||||
// Now write our test document
|
||||
doc.write("<html><script>window.onerror = parent.onerror; if (parent.doTestInIframe) { parent.is(document.domain, parent.document.domain, 'Domains should match'); parent.toggleCallable(); } <" + "/script><body>Second</body></html>");
|
||||
doc.close();
|
||||
|
||||
$("test").onload = goForward;
|
||||
history.back();
|
||||
}
|
||||
|
||||
function goForward() {
|
||||
$("test").onload = doTest;
|
||||
doTestInIframe = true;
|
||||
history.forward();
|
||||
}
|
||||
|
||||
function doTest() {
|
||||
is($("test").contentDocument.domain, document.domain,
|
||||
"Domains should match 2");
|
||||
is($("test").contentDocument.location.href, location.href,
|
||||
"Locations should match");
|
||||
is(callable, true, "Subframe should be able to call us");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ SimpleTest.waitForExplicitFinish();
|
|||
is(document.characterSet, "UTF-8",
|
||||
"Unexpected character set for our document");
|
||||
|
||||
var testsLeft = 4;
|
||||
var testsLeft = 3;
|
||||
|
||||
function testFinished() {
|
||||
--testsLeft;
|
||||
|
|
@ -42,29 +42,11 @@ function charsetTestFinished(id, doc, charsetTarget) {
|
|||
testFinished();
|
||||
}
|
||||
|
||||
function f2Continue() {
|
||||
// Commented out pending discussion at the WHATWG
|
||||
// $("f2").
|
||||
// setAttribute("onload",
|
||||
// "charsetTestFinished('f2 reloaded', this.contentDocument, 'us-ascii');");
|
||||
$("f2").
|
||||
setAttribute("onload",
|
||||
"testFinished();");
|
||||
$("f2").contentWindow.location.reload();
|
||||
}
|
||||
|
||||
function f3Continue() {
|
||||
var doc = $("f3").contentDocument;
|
||||
is(doc.defaultView.getComputedStyle(doc.body, "").color, "rgb(0, 180, 0)",
|
||||
"Wrong color before reload");
|
||||
$("f3").
|
||||
setAttribute("onload",
|
||||
'var doc = this.contentDocument; ' +
|
||||
'is(doc.defaultView.getComputedStyle(doc.body, "").color, ' +
|
||||
' "rgb(0, 180, 0)",' +
|
||||
' "Wrong color after reload");' +
|
||||
"charsetTestFinished('f1', this.contentDocument, 'UTF-8')");
|
||||
$("f3").contentWindow.location.reload();
|
||||
"Wrong color");
|
||||
charsetTestFinished('f3', doc, "UTF-8");
|
||||
}
|
||||
|
||||
function runTest() {
|
||||
|
|
@ -74,12 +56,7 @@ function runTest() {
|
|||
doc.open();
|
||||
doc.write('<html></html>');
|
||||
doc.close();
|
||||
is(doc.characterSet, "UTF-8",
|
||||
"Unexpected character set for first frame after write");
|
||||
$("f1").
|
||||
setAttribute("onload",
|
||||
"charsetTestFinished('f1', this.contentDocument, 'UTF-8')");
|
||||
$("f1").contentWindow.location.reload();
|
||||
charsetTestFinished("f1", doc, "UTF-8");
|
||||
|
||||
doc = $("f2").contentDocument;
|
||||
is(doc.characterSet, "UTF-8",
|
||||
|
|
@ -96,12 +73,11 @@ function runTest() {
|
|||
"Unexpected character set for second frame after write");
|
||||
$("f2").
|
||||
setAttribute("onload",
|
||||
"charsetTestFinished('f2', this.contentDocument, 'UTF-8');" +
|
||||
"f2Continue()");
|
||||
"charsetTestFinished('f2', this.contentDocument, 'UTF-8');");
|
||||
|
||||
doc = $("f3").contentDocument;
|
||||
is(doc.characterSet, "UTF-8",
|
||||
"Unexpected initial character set for first frame");
|
||||
"Unexpected initial character set for third frame");
|
||||
doc.open();
|
||||
var str = '<html><head>';
|
||||
str += '<style>body { color: rgb(255, 0, 0) }</style>';
|
||||
|
|
@ -111,7 +87,7 @@ function runTest() {
|
|||
doc.write(str);
|
||||
doc.close();
|
||||
is(doc.characterSet, "UTF-8",
|
||||
"Unexpected character set for first frame after write");
|
||||
"Unexpected character set for third frame after write");
|
||||
$("f3").setAttribute("onload", "f3Continue()");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ function messageReceiver(evt) {
|
|||
is(testResult, "undefined", "Props on new window's child should go away when loading");
|
||||
break;
|
||||
case 6:
|
||||
is(testResult, "undefined", "Props on new window's child should go away when writing");
|
||||
is(testResult, "6", "Props on new window's child should go away when writing");
|
||||
break;
|
||||
case 7:
|
||||
is(testResult, "7", "Props on different-domain window opened from different-domain new window can stay");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue