зеркало из https://github.com/mozilla/gecko-dev.git
94 строки
3.1 KiB
HTML
94 строки
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>
|
|
|