blob: dc41425968a3fe0446d50b8e1a4135996858a9b9 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/dump-as-markup.js"></script>
<div id="test0" contenteditable>
<div>hello</div><div>world</div><div>WebKit</div>
</div>
<div id="test1" contenteditable>
<p>hello</p><p>world</p>
</div>
<div id="test2" contenteditable>
<div>hello<pre>world</pre></div>
</div>
<div id="test3" contenteditable>
<h1>hello</h1><div><h2>world</h2><h3>WebKit</h3></div>
</div>
<div id="test4" contenteditable>
<div>hello<p>world</p>webkit</div>
</div>
<div id="test5" contenteditable>
<pre>hello
world
webkit
</pre>
</div>
<div id="test6" contenteditable>
<pre>hello
world
webkit
</pre>
</div>
<div id="test7" contenteditable>
hello<p>world</p><p>webkit</p>
</pre>
</div>
<div id="test8" contenteditable>
<div>hello</div><div>world</div><div>webkit</div>
</div>
<div id="test9" contenteditable>
<ul><li>hello</li><li>world</li></ul>
</div>
<script>
Markup.description('This tests ensures formatBlock do not make multiple elements when formatting multiple paragraphs.')
function testIndentation(containerId, selector, value) {
var container = document.getElementById(containerId);
selector(container);
Markup.dump(container, 'Formatting');
document.execCommand('FormatBlock', false, value);
Markup.dump(container, 'by ' + value + ' yields');
}
function selectAll(container) {
window.getSelection().selectAllChildren(container);
}
function selectorForLines(first, last) {
return function (container) {
window.getSelection().setPosition(container, 0);
for (var i = 0; i < first - 1; i++)
window.getSelection().modify('move', 'forward', 'line');
for (var i = 0; i < Math.abs(last - first, 0) + 1; i++)
window.getSelection().modify('extend', 'forward', 'line');
window.getSelection().modify('extend', 'backward', 'character');
}
}
testIndentation('test0', selectAll, 'p');
testIndentation('test1', selectAll, 'blockquote');
testIndentation('test2', selectAll, 'p');
testIndentation('test3', selectAll, 'pre');
testIndentation('test4', selectorForLines(2, 3), 'h1');
testIndentation('test5', selectorForLines(1, 2), 'blockquote');
testIndentation('test6', selectorForLines(2, 3), 'blockquote');
testIndentation('test7', selectorForLines(1, 2), 'pre');
testIndentation('test8', selectorForLines(2, 3), 'pre');
testIndentation('test9', selectAll, 'blockquote');
</script>
</body>
</html>