blob: 83cc794a3771ed2d310120b4a14e46749fac118d [file] [log] [blame]
<html>
<head>
<script>
if (window.layoutTestController)
window.layoutTestController.dumpAsText();
function getInput()
{
return document.getElementById('inputId');
}
var DEFAULT_LINE_1 = "line\t(1 of 2)\r\nline\t(2 of 2)";
var EXPECTED_LINE_1 = "line\t(1 of 2)line\t(2 of 2)";
// FIXME: Is this really expected behavior to truncate the string at a null byte?
// It doesn't match Firefox 4 and common sense.
var DEFAULT_LINE_2 = "null\0char";
var EXPECTED_LINE_2 = "null";
var TEST_NAME_1 = "Multi-line test";
var TEST_NAME_2 = "Null char test";
function testMultiline()
{
log(TEST_NAME_1 + ":");
testInputField(DEFAULT_LINE_1, EXPECTED_LINE_1);
log(TEST_NAME_2 + ":");
testInputField(DEFAULT_LINE_2, EXPECTED_LINE_2);
}
function testInputField(input_value, expected)
{
getInput().value = input_value;
var str = jsEscape(getInput().value);
if (str == jsEscape(expected))
log("PASS");
else
log("FAIL: " + str);
}
function log(str) {
var valueField = document.getElementById('console');
valueField.appendChild(document.createTextNode(str));
valueField.appendChild(document.createElement("br"));
}
function jsEscape(s)
{
// Partial
var replacements = [
["\r", "\\r"],
["\n", "\\n"],
["\t", "\\t"],
["\f", "\\f"],
["\t", "\\t"],
["\0", "\\0"]
];
for (var i = 0; i < replacements.length; ++i) {
var r = replacements[i];
s = s.replace(r[0], r[1]);
}
return s;
}
</script>
<style>
.pass { color: green; }
.fail { color: red; }
.code { font-family: monospace; }
</style>
</head>
<body onload="testMultiline()">
<h2>Test: This test verifies that text inputs will accept multiple lines of pasted text. You should see two tests "PASS" below.</h2>
<input id=inputId style="visibility: hidden;" size=60 /><br>
<span class=code id=console></span>
</body>
</html>