layout/forms/test/test_bug542914.html

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:f7641c6981cf
1 <!DOCTYPE HTML>
2 <html>
3 <!--
4 https://bugzilla.mozilla.org/show_bug.cgi?id=542914
5 -->
6 <head>
7 <title>Test for Bug 542914</title>
8 <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
9 <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
11 </head>
12 <body>
13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=542914">Mozilla Bug 542914</a>
14 <p id="display">
15 <input type="text" id="a" value="test">
16 <input type="text" id="b">
17 <input type="text" id="c">
18 </p>
19 <div id="content" style="display: none">
20
21 </div>
22 <pre id="test">
23 <script type="application/javascript">
24
25 /** Test for Bug 542914 **/
26 SimpleTest.waitForExplicitFinish();
27 function runTests(callback, type) {
28 var a = $("a");
29
30 // Test that the initial value of the control is available to script
31 // without initilization of the editor
32 is(a.value, "test", "The value is available before initialization");
33 // Initialize the editor
34 a.focus();
35 // Test that the value does not change after initialization
36 is(a.value, "test", "The value does not change after initializtion");
37
38 var b = $("b");
39
40 // Test that the initial value is empty before initialization.
41 is(b.value, "", "The value is empty before initialization");
42 // Make sure that the value can be changed before initialization
43 b.value ="some value";
44 is(b.value, "some value", "The value can be changed before initialization");
45 // Initialize the editor
46 b.focus();
47 // Make sure that the value does not change after initialization
48 is(b.value, "some value", "The value does not change after initialization");
49 // Make sure that the value does not change if the element is hidden
50 b.style.display = "none";
51 document.body.offsetHeight;
52 is(b.value, "some value", "The value does not change while hidden");
53 b.style.display = "";
54 document.body.offsetHeight;
55 b.focus();
56 is(b.value, "some value", "The value does not change after being shown");
57
58 var c = $("c");
59
60 // Make sure that the control accepts input events without explicit initialization
61 is(c.value, "", "Control is empty initially");
62 c.focus();
63 sendChar("a");
64 is(c.value, "a", "Control accepts input without explicit initialization");
65 // Make sure that the control retains its caret position
66 c.focus();
67 c.blur();
68 c.focus();
69 sendChar("b");
70 is(c.value, "ab", "Control retains caret position after being re-focused");
71
72 var d = document.createElement("input");
73 d.setAttribute("type", type);
74 $("display").appendChild(d);
75 document.body.offsetHeight;
76
77 // Make sure dynamically injected inputs work as expected
78 is(d.value, "", "Dynamic control's initial value should be empty");
79 d.value = "new";
80 d.focus();
81 is(d.value, "new", "Dynamic control's value can be set before initialization");
82 sendChar("x");
83 is(d.value, "xnew", "Dynamic control accepts keyboard input without explicit initialization");
84 $("display").removeChild(d);
85 is(d.value, "xnew", "Dynamic control retains value after being removed from the document");
86
87 callback();
88 }
89
90 var gPreviousType = "text";
91 function setTypes(aType) {
92 var content = document.getElementById("display");
93 content.innerHTML = content.innerHTML.replace(gPreviousType, aType);
94 gPreviousType = aType;
95 }
96
97 addLoadEvent(function() {
98 ok(true, "Running tests on <input type=text>");
99 runTests(function() {
100 ok(true, "Running tests on <input type=password>");
101 setTypes("password");
102 runTests(function() {
103 ok(true, "Running tests on <input type=tel>");
104 setTypes("tel");
105 runTests(function() {
106 SimpleTest.finish();
107 }, "tel");
108 }, "password");
109 }, "text");
110 });
111
112 </script>
113 </pre>
114 </body>
115 </html>

mercurial