87 lines
2.6 KiB
HTML
87 lines
2.6 KiB
HTML
<html>
|
|
<head>
|
|
<script>
|
|
if (window.testRunner)
|
|
window.testRunner.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)";
|
|
|
|
var DEFAULT_LINE_2 = "null\0char";
|
|
var EXPECTED_LINE_2 = "null\0char";
|
|
|
|
var DEFAULT_LINE_3 = "line with trailing newlines\r\n\r\n";
|
|
var EXPECTED_LINE_3 = "line with trailing newlines";
|
|
|
|
var TEST_NAME_1 = "Multi-line test";
|
|
var TEST_NAME_2 = "Null char test";
|
|
var TEST_NAME_3 = "Trailing newline 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);
|
|
|
|
log(TEST_NAME_3 + ":");
|
|
testInputField(DEFAULT_LINE_3, EXPECTED_LINE_3);
|
|
}
|
|
|
|
function testInputField(input_value, expected)
|
|
{
|
|
var input = getInput();
|
|
input.focus();
|
|
document.execCommand("SelectAll", false, null);
|
|
document.execCommand("InsertText", false, input_value);
|
|
var str = jsEscape(input.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 three tests "PASS" below.</h2>
|
|
<input id=inputId size=60 /><br>
|
|
<span class=code id=console></span>
|
|
</body>
|
|
</html>
|