| <!DOCTYPE html> |
| <html> |
| <body> |
| <p>This test ensures WebKit merges text decorations in the typing style and the focused element's style property.</p> |
| <div id="test" contenteditable>hello world</div> |
| <pre><script> |
| |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| function queryTextDecorations() { |
| var result = ''; |
| if (document.queryCommandState('underline')) |
| result += 'underline'; |
| if (document.queryCommandState('strikeThrough')) { |
| if (result.length) |
| result += ' '; |
| result += 'strikeThrough'; |
| } |
| return result; |
| } |
| |
| function runTest(command, inlineStyle) { |
| document.writeln('Test to set ' + command + ' by typing command and add ' + inlineStyle + ' as inline style:'); |
| var test = document.getElementById('test'); |
| test.style.textDecoration = null; |
| window.getSelection().setPosition(test, 0); |
| document.execCommand(command, false, null); |
| test.style.textDecoration = inlineStyle; |
| if (queryTextDecorations() != 'underline strikeThrough') |
| document.writeln('FAIL: got "' + queryTextDecorations() + '" but expected "underline strikeThrough"'); |
| else |
| document.writeln('PASS'); |
| document.writeln(); |
| } |
| |
| runTest('strikeThrough', 'underline'); |
| window.getSelection().setPosition(test, 1); |
| runTest('underline', 'line-through'); |
| |
| </script></pre> |
| </body> |
| </html> |