| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script src="../../resources/js-test.js"></script> | 3 <script src="../../resources/js-test.js"></script> |
| 4 </head> | 4 </head> |
| 5 <body> | 5 <body> |
| 6 <p>This tests for problems where we'd lose the selection in a textarea when maki
ng style and value changes.</p> | 6 <p>This tests for problems where we'd lose the selection in a textarea when maki
ng style and value changes.</p> |
| 7 <div id="console"></div> | 7 <div id="console"></div> |
| 8 <p><textarea id="ta">abc123 | 8 <form id="form"><textarea id="ta">abc123 |
| 9 </textarea></p> | 9 </textarea></form> |
| 10 <script type="text/javascript"> | 10 <script type="text/javascript"> |
| 11 var ta = document.getElementById('ta'); | 11 var ta = document.getElementById('ta'); |
| 12 debug("- default value"); |
| 13 shouldBe('ta.selectionStart', '0'); |
| 14 shouldBe('ta.selectionEnd', '0'); |
| 15 debug("- set selectionStart/End"); |
| 12 ta.selectionStart = 3; | 16 ta.selectionStart = 3; |
| 13 ta.selectionEnd = 4; | 17 ta.selectionEnd = 4; |
| 14 shouldBe('ta.selectionStart', '3'); | 18 shouldBe('ta.selectionStart', '3'); |
| 15 shouldBe('ta.selectionEnd', '4'); | 19 shouldBe('ta.selectionEnd', '4'); |
| 16 debug("- add background style"); | 20 debug("- add background style"); |
| 17 ta.setAttribute("style", "background-color: yellow"); | 21 ta.setAttribute("style", "background-color: yellow"); |
| 18 shouldBe('ta.selectionStart', '3'); | 22 shouldBe('ta.selectionStart', '3'); |
| 19 shouldBe('ta.selectionEnd', '4'); | 23 shouldBe('ta.selectionEnd', '4'); |
| 20 debug("- set value to same value"); | 24 debug("- set value to same value"); |
| 21 ta.value = "abc123\n"; | 25 ta.value = "abc123\n"; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 32 shouldBe('ta.selectionStart', '3'); | 36 shouldBe('ta.selectionStart', '3'); |
| 33 shouldBe('ta.selectionEnd', '4'); | 37 shouldBe('ta.selectionEnd', '4'); |
| 34 debug("- add background style"); | 38 debug("- add background style"); |
| 35 ta.setAttribute("style", "background-color: yellow"); | 39 ta.setAttribute("style", "background-color: yellow"); |
| 36 shouldBe('ta.selectionStart', '3'); | 40 shouldBe('ta.selectionStart', '3'); |
| 37 shouldBe('ta.selectionEnd', '4'); | 41 shouldBe('ta.selectionEnd', '4'); |
| 38 debug("- set value to same value"); | 42 debug("- set value to same value"); |
| 39 ta.value = "abc123"; | 43 ta.value = "abc123"; |
| 40 shouldBe('ta.selectionStart', '3'); | 44 shouldBe('ta.selectionStart', '3'); |
| 41 shouldBe('ta.selectionEnd', '4'); | 45 shouldBe('ta.selectionEnd', '4'); |
| 46 |
| 47 debug("- reset form"); |
| 48 form.reset(); |
| 49 shouldBe('ta.selectionStart', '7'); |
| 50 shouldBe('ta.selectionEnd', '7'); |
| 51 |
| 52 debug("- set new defaultValue"); |
| 53 ta.defaultValue = 'abc123456'; |
| 54 shouldBe('ta.selectionStart', '9'); |
| 55 shouldBe('ta.selectionEnd', '9'); |
| 56 |
| 57 debug("- set same defaultValue"); |
| 58 ta.setSelectionRange(2, 3); |
| 59 ta.defaultValue = 'abc123456'; |
| 60 shouldBe('ta.selectionStart', '9'); |
| 61 shouldBe('ta.selectionEnd', '9'); |
| 62 |
| 63 debug("- append a text node"); |
| 64 ta.appendChild(document.createTextNode('foo')); |
| 65 shouldBe('ta.selectionStart', '12'); |
| 66 shouldBe('ta.selectionEnd', '12'); |
| 67 |
| 68 debug("- append a empty text node"); |
| 69 ta.setSelectionRange(2, 3); |
| 70 ta.appendChild(document.createTextNode('')); |
| 71 shouldBe('ta.selectionStart', '12'); |
| 72 shouldBe('ta.selectionEnd', '12'); |
| 42 </script> | 73 </script> |
| 43 </body> | 74 </body> |
| 44 </html> | 75 </html> |
| OLD | NEW |