This is split from the previous changeset since if we include dom/ the file size is too large for phabricator to handle. This is an autogenerated commit to handle scripts loading mochitest harness files, in the simple case where the script src is on the same line as the tag. This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170 using the `--part 2` argument. Differential Revision: https://phabricator.services.mozilla.com/D27457
94 lines
3.1 KiB
HTML
94 lines
3.1 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=345339
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 345339</title>
|
|
<script 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=345339">Mozilla Bug 345339</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none">
|
|
</div>
|
|
<iframe id="testframe"
|
|
src="http://mochi.test:8888/tests/dom/base/test/345339_iframe.html">
|
|
</iframe>
|
|
<pre id="test">
|
|
<script class="testbody" type="text/javascript">
|
|
/** Test for Bug 345339 **/
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
const testData = "Test data\n";
|
|
let file = new File([testData],
|
|
"345339_test.file",
|
|
{ type: "text/plain" });
|
|
|
|
function afterLoad() {
|
|
var iframeDoc = $("testframe").contentDocument;
|
|
|
|
/* change all the form controls */
|
|
iframeDoc.getElementById("select").selectedIndex = 1;
|
|
iframeDoc.getElementById("radio2").checked = true;
|
|
iframeDoc.getElementById("password").value = "123456";
|
|
iframeDoc.getElementById("hidden").value = "gecko";
|
|
|
|
// Toggle the one field to a password type then text type like password
|
|
// visibility toggles on the web do.
|
|
iframeDoc.getElementById("passwordToggle").type = "password";
|
|
iframeDoc.getElementById("passwordToggle").value = "abcdef";
|
|
iframeDoc.getElementById("passwordToggle").type = "";
|
|
|
|
SpecialPowers.wrap(iframeDoc).getElementById("file").mozSetFileArray([file]);
|
|
|
|
/* Reload the page */
|
|
$("testframe").setAttribute("onload", "afterReload()");
|
|
iframeDoc.location.reload();
|
|
}
|
|
|
|
addLoadEvent(afterLoad);
|
|
|
|
function afterReload() {
|
|
var iframeDoc = $("testframe").contentDocument;
|
|
|
|
is(iframeDoc.getElementById("select").selectedIndex, 1,
|
|
"select element selected index preserved");
|
|
is(iframeDoc.getElementById("radio1").checked, false,
|
|
"radio button #1 value preserved");
|
|
is(iframeDoc.getElementById("radio2").checked, true,
|
|
"radio button #2 value preserved");
|
|
isnot(iframeDoc.getElementById("password").value, "123456",
|
|
"password field value forgotten");
|
|
is(iframeDoc.getElementById("hidden").value, "gecko",
|
|
"hidden field value preserved");
|
|
is(iframeDoc.getElementById("passwordToggle").value, "",
|
|
"former password field value not saved");
|
|
|
|
// The new file object isn't ===, but it's extensionally equal:
|
|
let newFile = iframeDoc.getElementById("file").files[0];
|
|
for (let prop of ["name", "lastModified", "size", "type"]) {
|
|
is(newFile[prop], file[prop],
|
|
"file field " + prop + " property preserved");
|
|
}
|
|
let reader = new FileReader();
|
|
reader.onloadend = function() {
|
|
SimpleTest.finish();
|
|
};
|
|
reader.onload = function() {
|
|
is(reader.result, testData,
|
|
"file field contents preserved")
|
|
};
|
|
reader.onerror = function() {
|
|
is(reader.error, null,
|
|
"FileReader error");
|
|
};
|
|
reader.readAsText(newFile);
|
|
}
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|
|
|