| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <input type="text" size="5" value="12345" maxlength="4" id="input1"> |
| <input type="text" size="5" maxlength="4" value="12345" id="input2"> |
| <input type="text" id="f" size="5" maxlength="4" value="123"> |
| <input type="text" id="e" size="5" maxlength="4" value="123"> |
| <input type="text" id="d" size="5" value="12345"> |
| <input type="text" id="c" size="5" value="12345"> |
| <input type="text" size="5" value="12x̲̅45" maxlength="4" id="input7"> |
| <input type="text" size="5" maxlength="4" value="12x̲̅45" id="input8"> |
| <input type="text" id="j" size="5" maxlength="4" value="123"> |
| <input type="text" id="i" size="5" maxlength="4" value="123"> |
| <input type="text" id="h" size="5" value="12x̲̅45"> |
| <input type="text" id="g" size="5" value="12x̲̅45"> |
| |
| <script> |
| function domValueOf(id) { |
| return document.getElementById(id).value; |
| } |
| function visibleValueOf(id) { |
| var el = document.getElementById(id); |
| el.focus(); |
| document.execCommand('SelectAll'); |
| return document.getSelection().toString(); |
| } |
| |
| var fancyX = "x" + String.fromCharCode(0x305) + String.fromCharCode(0x332); |
| |
| debug('maxlength and value that violates it, maxlength first'); |
| shouldBe('domValueOf("input1")', '"12345"'); |
| shouldBe('visibleValueOf("input1")', '"12345"'); |
| |
| debug('maxlength and value that violates it, maxlength first'); |
| shouldBe('domValueOf("input2")', '"12345"'); |
| shouldBe('visibleValueOf("input2")', '"12345"'); |
| |
| debug('set value attribute that violates maxlength'); |
| document.getElementById("f").setAttribute('value', '12345'); |
| shouldBe('domValueOf("f")', '"12345"'); |
| shouldBe('visibleValueOf("input2")', '"12345"'); |
| |
| debug('set value property that violates maxlength'); |
| document.getElementById("e").value = '12345'; |
| shouldBe('domValueOf("e")', '"12345"'); |
| shouldBe('visibleValueOf("e")', '"12345"'); |
| |
| debug('set maxlength attribute that is smaller than initial value'); |
| document.getElementById("d").setAttribute('maxlength', 4); |
| shouldBe('domValueOf("d")', '"12345"'); |
| shouldBe('visibleValueOf("d")', '"12345"'); |
| |
| debug('set maxLength property that is smaller than initial value'); |
| document.getElementById("c").maxLength = 4; |
| shouldBe('domValueOf("c")', '"12345"'); |
| shouldBe('visibleValueOf("c")', '"12345"'); |
| |
| debug('maxlength and value that violates it, maxlength first'); |
| shouldBe('domValueOf("input7")', '"12" + fancyX + "45"'); |
| shouldBe('visibleValueOf("input7")', '"12" + fancyX + "45"'); |
| |
| debug('maxlength and value that violates it, value first'); |
| shouldBe('domValueOf("input8")', '"12" + fancyX + "45"'); |
| shouldBe('visibleValueOf("input8")', '"12" + fancyX + "45"'); |
| |
| debug('set value attribute that violates maxlength'); |
| document.getElementById("j").setAttribute('value', '12' + fancyX + '45'); |
| shouldBe('domValueOf("j")', '"12" + fancyX + "45"'); |
| shouldBe('visibleValueOf("j")', '"12" + fancyX + "45"'); |
| |
| debug('set value property that violates maxlength'); |
| document.getElementById("i").value = '12' + fancyX + '45'; |
| shouldBe('domValueOf("i")', '"12" + fancyX + "45"'); |
| shouldBe('visibleValueOf("i")', '"12" + fancyX + "45"'); |
| |
| debug('set maxlength attribute that is smaller than initial value'); |
| document.getElementById("h").setAttribute('maxlength', 4); |
| shouldBe('domValueOf("h")', '"12" + fancyX + "45"'); |
| shouldBe('visibleValueOf("h")', '"12" + fancyX + "45"'); |
| |
| debug('set maxLength property that is smaller than initial value'); |
| document.getElementById("g").maxLength = 4; |
| shouldBe('domValueOf("g")', '"12" + fancyX + "45"'); |
| shouldBe('visibleValueOf("g")', '"12" + fancyX + "45"'); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |