diff options
Diffstat (limited to 'toolkit/components/satchel/test/test_form_submission_cap.html')
-rw-r--r-- | toolkit/components/satchel/test/test_form_submission_cap.html | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/toolkit/components/satchel/test/test_form_submission_cap.html b/toolkit/components/satchel/test/test_form_submission_cap.html new file mode 100644 index 000000000..96112f1c1 --- /dev/null +++ b/toolkit/components/satchel/test/test_form_submission_cap.html @@ -0,0 +1,85 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>Satchel Test for Form Submisstion Field Cap</title> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="text/javascript" src="satchel_common.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +<p id="display"></p> +<div id="content" style="display: none"> + + <form id="form1" onsubmit="return checkSubmit(1)"> + <button type="submit">Submit</button> + </form> + +</div> +<pre id="test"> +<script class="testbody" type="text/javascript"> + +/* Test for bug 492701. + Save only the first MAX_FIELDS_SAVED changed fields in a form. + Generate numInputFields = MAX_FIELDS_SAVED + 1 fields, change all values, + and test that only MAX_FIELDS_SAVED are actually saved and that + field # numInputFields was not saved. +*/ + +var numSubmittedForms = 0; +var numInputFields = 101; + +function checkInitialState() { + countEntries(null, null, + function (num) { + ok(!num, "checking for initially empty storage"); + startTest(); + }); +} + +function startTest() { + var form = document.getElementById("form1"); + for (i = 1; i <= numInputFields; i++) { + var newField = document.createElement("input"); + newField.setAttribute("type", "text"); + newField.setAttribute("name", "test" + i); + form.appendChild(newField); + } + + // Fill in values for the various fields. We could just set the <input>'s + // value attribute, but we don't save default form values (and we want to + // ensure unsaved values are because of autocomplete=off or whatever). + for (i = 1; i <= numInputFields; i++) { + $_(1, "test" + i).value = i; + } + + // submit the first form. + var button = getFormSubmitButton(1); + button.click(); +} + + +// Called by each form's onsubmit handler. +function checkSubmit(formNum) { + ok(true, "form " + formNum + " submitted"); + numSubmittedForms++; + + // check that the first (numInputFields - 1) CHANGED fields are saved + for (i = 1; i < numInputFields; i++) { // check all but last + checkForSave("test" + i, i, "checking saved value " + i); + } + + // End the test. + is(numSubmittedForms, 1, "Ensuring all forms were submitted."); + SimpleTest.finish(); + return false; // return false to cancel current form submission +} + + +window.onload = checkInitialState; + +SimpleTest.waitForExplicitFinish(); + +</script> +</pre> +</body> +</html> |