Bug 542914 - Add some tests for text input fields to make sure their basic behavior and appearance does not regress; r=roc

--HG--
extra : rebase_source : 9d642f48af7ff927ad5e73d0e22d763fbcc9d5a7
This commit is contained in:
Ehsan Akhgari 2010-01-29 13:22:15 -05:00
Родитель e83a950e05
Коммит aecf8aaf5d
18 изменённых файлов: 212 добавлений и 0 удалений

Просмотреть файл

@ -56,6 +56,7 @@ _TEST_FILES = test_bug287446.html \
test_bug477531.html \
test_bug477700.html \
test_bug478219.xhtml \
test_bug542914.html \
bug477700_subframe.html \
$(NULL)

Просмотреть файл

@ -0,0 +1,92 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=542914
-->
<head>
<title>Test for Bug 542914</title>
<script type="application/javascript" src="/MochiKit/packed.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/EventUtils.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=542914">Mozilla Bug 542914</a>
<p id="display">
<input type="text" id="a" value="test">
<input type="text" id="b">
<input type="text" id="c">
</p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script type="application/javascript">
/** Test for Bug 542914 **/
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
var a = $("a");
// Test that the initial value of the control is available to script
// without initilization of the editor
is(a.value, "test", "The value is available before initialization");
// Initialize the editor
a.focus();
// Test that the value does not change after initialization
is(a.value, "test", "The value does not change after initializtion");
var b = $("b");
// Test that the initial value is empty before initialization.
is(b.value, "", "The value is empty before initialization");
// Make sure that the value can be changed before initialization
b.value ="some value";
is(b.value, "some value", "The value can be changed before initialization");
// Initialize the editor
b.focus();
// Make sure that the value does not change after initialization
is(b.value, "some value", "The value does not change after initialization");
// Make sure that the value does not change if the element is hidden
b.style.display = "none";
document.body.offsetHeight;
is(b.value, "some value", "The value does not change while hidden");
b.style.display = "";
document.body.offsetHeight;
b.focus();
is(b.value, "some value", "The value does not change after being shown");
var c = $("c");
// Make sure that the control accepts input events without explicit initialization
is(c.value, "", "Control is empty initially");
sendChar("a", c);
is(c.value, "a", "Control accepts input without explicit initialization");
// Make sure that the control retains its caret position
c.focus();
c.blur();
c.focus();
sendChar("b", c);
is(c.value, "ab", "Control retains caret position after being re-focused");
var d = document.createElement("input");
d.setAttribute("type", "text");
$("display").appendChild(d);
document.body.offsetHeight;
// Make sure dynamically injected inputs work as expected
is(d.value, "", "Dynamic control's initial value should be empty");
d.value = "new";
is(d.value, "new", "Dynamic control's value can be set before initialization");
sendChar("x", d);
is(d.value, "newx", "Dynamic control accepts keyboard input without explicit initialization");
$("display").removeChild(d);
is(d.value, "newx", "Dynamic control retains value after being removed from the document");
SimpleTest.finish();
});
</script>
</pre>
</body>
</html>

Просмотреть файл

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<body>
<input type="text">
<script>
document.getElementsByTagName("input")[0].value = "abcdef";
</script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<input type="text" value="abcdef">
</body>
</html>

Просмотреть файл

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<input type="password">
</body>
</html>

Просмотреть файл

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<body>
<input type="password" value="abcdef">
<script>
document.getElementsByTagName("input")[0].value = "";
</script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<input type="text">
</body>
</html>

Просмотреть файл

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<input type="text" value="aaa&#10;bbb">
</body>
</html>

Просмотреть файл

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<input type="text" value="&#10;aaa bbb">
</body>
</html>

Просмотреть файл

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<input type="text" value="aaa bbb&#10;">
</body>
</html>

Просмотреть файл

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<input type="text" value="aaa bbb">
</body>
</html>

Просмотреть файл

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<input type="password" value="123456">
</body>
</html>

Просмотреть файл

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<input type="text" value="abcdef">
</body>
</html>

Просмотреть файл

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<body>
<input type="password">
<script>
document.getElementsByTagName("input")[0].value = "abcdef";
</script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,19 @@
<!DOCTYPE html>
<!--
Make sure that focusing a password text element does not
cause a non-breaking space character to show up.
-->
<html class="reftest-wait">
<body onload="loaded()">
<input type="password">
<script>
function loaded() {
var i = document.getElementsByTagName("input")[0];
i.focus();
i.value += "abcdef";
i.blur();
document.documentElement.className = "";
}
</script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<input type="password" value="abcdef">
</body>
</html>

Просмотреть файл

@ -0,0 +1,10 @@
== newline-1.html newline-ref.html
== newline-2.html newline-ref.html
== newline-3.html newline-ref.html
== dynamic-1.html dynamic-ref.html
== passwd-1.html passwd-ref.html
!= passwd-2.html passwd-ref.html
== passwd-3.html passwd-ref.html
== passwd-4.html passwd-ref.html
== emptypasswd-1.html emptypasswd-ref.html
== emptypasswd-2.html emptypasswd-ref.html

Просмотреть файл

@ -71,6 +71,9 @@ include ../../content/test/reftest/reftest.list
# counters/
include counters/reftest.list
# editor/
include editor/reftest.list
# generated-content/
include generated-content/reftest.list