| <!DOCTYPE html> |
| <html> |
| <body> |
| <script src="../../resources/dump-as-markup.js"></script> |
| <div id="test0" contenteditable> |
| <pre> |
| <ul><li>hello</li></ul></pre> |
| </div> |
| |
| <div id="test1" contenteditable> |
| <pre><ul><li>hello |
| world</li> |
| </ul></pre> |
| </div> |
| |
| <div id="test2" contenteditable> |
| <ul><li><pre> |
| hello |
| world |
| webkit |
| </pre></li></ul> |
| </div> |
| |
| <div id="test3" contenteditable> |
| <ul><li><pre> |
| hello |
| world |
| webkit |
| </pre></li></ul> |
| </div> |
| |
| <div id="test4" contenteditable> |
| <ul><li><pre> |
| hello |
| world |
| webkit |
| </pre></li></ul> |
| </div> |
| |
| <div id="test5" contenteditable> |
| <ul><li><pre> |
| hello |
| world |
| webkit |
| </pre></li></ul> |
| </div> |
| |
| <script> |
| |
| function testIndentation(containerId, selector) { |
| var container = document.getElementById(containerId); |
| selector(container); |
| Markup.dump(container, 'Indenting'); |
| document.execCommand('indent', false, null); |
| Markup.dump(container, 'yields'); |
| } |
| |
| function selectAll(container) { |
| window.getSelection().selectAllChildren(container); |
| } |
| |
| function selectorForLineN(line) { |
| return function (container) { |
| window.getSelection().setPosition(container, 0); |
| for (var i = 0; i < line - 1; i++) |
| window.getSelection().modify('move', 'forward', 'line'); |
| window.getSelection().modify('extend', 'forward', 'line'); |
| // Avoid including \n at the end of line. |
| window.getSelection().modify('extend', 'backward', 'character'); |
| } |
| } |
| |
| testIndentation('test0', selectAll); |
| testIndentation('test1', selectAll); |
| testIndentation('test2', selectAll); |
| testIndentation('test3', selectorForLineN(1)); |
| testIndentation('test4', selectorForLineN(2)); |
| testIndentation('test5', selectorForLineN(3)); |
| |
| </script> |
| </body> |
| </html> |