Files
tubestation/dom/base/test/test_bug345339.html
Brian Grinstead e0242e7bbb Bug 1544322 - Part 2.2 - Remove the [type] attribute for one-liner <script> tags loading files in /tests/SimpleTest/ in dom/ r=bzbarsky
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
2019-04-16 03:53:28 +00:00

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>