2010-08-13 Mihai Parparita <mihaip@chromium.org>
[WebKit-https.git] / LayoutTests / fast / forms / state-restore-to-non-edited-controls.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
5 <script src="../../fast/js/resources/js-test-pre.js"></script>
6 </head>
7 <body onload="runTest()">
8 <p>Test to NOT save state for non-edited controls</p>
9 <div id="console"></div>
10
11 <input id=emptyOnFirstVisit>
12 <div id=parent>
13 </div>
14
15 <script>
16
17 function makeForm(parent, buttonValue, hiddenValue, imageValue, resetValue, submitValue, textValue1, textValue2, textAreaValue) {
18     parent.innerHTML = '<form action="data:text/html,<script>history.back()&lt;/script>" id=form1>'
19         + '<input name=button id=button type=button value="' + buttonValue + '">'
20         + '<input name=hidden id=hidden type=hidden value="' + hiddenValue + '">'
21         + '<input name=image id=image type=image value="' + imageValue + '">'
22         + '<input name=reset id=reset type=reset value="' + resetValue + '">'
23         + '<input name=submit1 id=submit1 type=submit value="' + submitValue + '">'
24         + '<input name=text1 id=text1 type=text value="' + textValue1 + '">'
25         + '<input name=text2 id=text2 type=text value="' + textValue2 + '">'
26         + '<textarea name=textarea id=textarea>' + textAreaValue + '</textarea>'
27         + '</form>';
28 }
29
30 function runTest()
31 {
32     var parent = document.getElementById('parent');
33     var state = document.getElementById('emptyOnFirstVisit');
34     if (!state.value) {
35         // First visit.
36         if (window.layoutTestController)
37             layoutTestController.waitUntilDone();
38         state.value = 'visited';
39         makeForm(parent, '1', '1', '1', '1', '1', '1', '1', '1');
40     
41         document.getElementById('text1').value = 'edit';
42         // Submit form in a timeout to make sure that we create a new back/forward list item.            
43         setTimeout(function() {document.getElementById('form1').submit();}, 0);
44     } else {
45         // Second visit.
46         makeForm(parent, '2', '2', '2', '2', '2', '2', '2', '2');
47     
48         shouldBe('document.getElementById("button").value', '"2"');
49         shouldBe('document.getElementById("hidden").value', '"2"');
50         shouldBe('document.getElementById("image").value', '"2"');
51         shouldBe('document.getElementById("reset").value', '"2"');
52         shouldBe('document.getElementById("submit1").value', '"2"');
53         shouldBe('document.getElementById("text1").value', '"edit"');
54         shouldBe('document.getElementById("text2").value', '"2"');
55         shouldBe('document.getElementById("textarea").value', '"2"');
56     
57         parent.innerHTML = '';
58         if (window.layoutTestController)
59             layoutTestController.notifyDone();
60     }
61 }
62 </script>
63 </body>