summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/editing/execCommand/indent-pre-paragraphs.html
blob: c9228e5406eec66fdaa81675a213aae158f0ff2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/dump-as-markup.js"></script>
<div id="test0" contenteditable>
<pre>hello</pre>
</div>

<div id="test1" contenteditable>
<pre>
hello

world

webkit
</pre>
</div>

<div id="test2" contenteditable>
<pre>
hello
world
webkit
</pre>
</div>

<div id="test3" contenteditable>
<pre>
hello

world
</pre>
</div>

<div id="test4" contenteditable>
<pre>
hello

world
</pre>
</div>

<div id="test5" contenteditable>
<pre>
hello

world
</pre>
</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().collapse(container, 0);
        for (var i = 0; i < line - 1; i++)
            window.getSelection().modify('move', 'forward', 'line');
        window.getSelection().modify('extend', 'forward', '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>