| <!DOCTYPE html> |
| <html> |
| <body> |
| <div id="test" contenteditable><b style="font-style: italic;">world</b></div> |
| <pre id="console"> |
| </pre> |
| <script> |
| |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var test = document.getElementById('test'); |
| window.getSelection().selectAllChildren(test); |
| |
| var console = document.getElementById('console'); |
| var initialValue = test.innerHTML; |
| var failed = false; |
| console.appendChild(document.createTextNode('initial:' + test.innerHTML + '\n')); |
| document.execCommand('bold', false, null); |
| console.appendChild(document.createTextNode('after removing bold:' + test.innerHTML + '\n')); |
| document.execCommand('italic', false, null); |
| console.appendChild(document.createTextNode('after removing italic:' + test.innerHTML + '\n')); |
| var finalValue = test.innerHTML; |
| |
| document.execCommand('undo', false, null); |
| document.execCommand('undo', false, null); |
| console.appendChild(document.createTextNode('after undo:' + test.innerHTML + '\n')); |
| if (test.innerHTML != initialValue) { |
| console.appendChild(document.createTextNode('but expected ' + initialValue + '\n')); |
| failed = true; |
| } |
| document.execCommand('redo', false, null); |
| document.execCommand('redo', false, null); |
| console.appendChild(document.createTextNode('after redo:' + test.innerHTML + '\n')); |
| if (test.innerHTML != finalValue) { |
| console.appendChild(document.createTextNode('but expected ' + finalValue + '\n')); |
| failed = true; |
| } |
| |
| test.innerHTML = ''; |
| |
| console.appendChild(document.createTextNode(failed ? 'FAIL\n' : 'PASS\n')); |
| |
| </script> |
| </body> |
| </html> |