12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <!DOCTYPE HTML>
- <html>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=535043
- -->
- <head>
- <title>Test for Bug 535043</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/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=535043">Mozilla Bug 535043</a>
- <p id="display"></p>
- <div id="content">
- <textarea></textarea>
- <textarea maxlength="-1"></textarea>
- <textarea maxlength="0"></textarea>
- <textarea maxlength="2"></textarea>
- </div>
- <pre id="test">
- <script type="text/javascript">
- /** Test for Bug 535043 **/
- function checkTextArea(textArea) {
- textArea.value = '';
- textArea.focus();
- for (var j = 0; j < 3; j++) {
- synthesizeKey('x', {});
- }
- var htmlMaxLength = textArea.getAttribute('maxlength');
- var domMaxLength = textArea.maxLength;
- if (htmlMaxLength == null) {
- is(domMaxLength, -1,
- 'maxlength is unset but maxLength DOM attribute is not -1');
- } else if (htmlMaxLength < 0) {
- // Per the HTML5 spec, out-of-range values are supposed to translate to -1,
- // not 0, but they don't?
- is(domMaxLength, -1,
- 'maxlength is out of range but maxLength DOM attribute is not -1');
- } else {
- is(domMaxLength, parseInt(htmlMaxLength),
- 'maxlength in DOM does not match provided value');
- }
- if (textArea.maxLength == -1) {
- is(textArea.value.length, 3,
- 'textarea with maxLength -1 should have no length limit');
- } else {
- is(textArea.value.length, textArea.maxLength, 'textarea has maxLength ' +
- textArea.maxLength + ' but length ' + textArea.value.length );
- }
- }
- SimpleTest.waitForFocus(function() {
- var textAreas = document.getElementsByTagName('textarea');
- for (var i = 0; i < textAreas.length; i++) {
- checkTextArea(textAreas[i]);
- }
- textArea = textAreas[0];
- testNums = [-42, -1, 0, 2];
- for (var i = 0; i < testNums.length; i++) {
- textArea.removeAttribute('maxlength');
- var caught = false;
- try {
- textArea.maxLength = testNums[i];
- } catch (e) {
- caught = true;
- }
- if (testNums[i] < 0) {
- ok(caught, 'Setting negative maxLength should throw exception');
- } else {
- ok(!caught, 'Setting nonnegative maxLength should not throw exception');
- }
- checkTextArea(textArea);
- textArea.setAttribute('maxlength', testNums[i]);
- checkTextArea(textArea);
- }
- SimpleTest.finish();
- });
- SimpleTest.waitForExplicitFinish();
- </script>
- </pre>
- </body>
- </html>
|