| <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)"; | |
| // 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> |