summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/editing/deleting/delete-character-003.html
blob: ae32c1e6e33e0d88c2bdd00c7001946454ab9c98 (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
<div id="container">
<div id="sample" contenteditable="true"></div>
</div>
<script src="../../fast/js/resources/js-test-pre.js"></script>
<script>
function $(id) { return document.getElementById(id); }
var sample = $('sample');
var selection = window.getSelection();
function testIt(sourceHTML, expectedHTML, expectedNode, expectedOffset)
{
    var sourceText = sourceHTML.replace(/<br>/g, '\n');
    var caretPos = sourceText.indexOf('|');
    sample.innerHTML = sourceHTML.replace('|', '');
    sample.focus();
    var range = document.createRange();
    if (caretPos == sample.childNodes.length) {
        range.selectNodeContents(sample);
        range.collapse(false);
    } else {
        range.setStartBefore(sample.childNodes[caretPos]);
    }
    selection.removeAllRanges();
    selection.addRange(range);
    document.execCommand('Delete', false);

    debug(sourceHTML.replace(/</g, '&lt;'));
    shouldBeEqualToString('sample.innerHTML', expectedHTML);
    shouldBeEqualToString('selection.type', 'Caret');
    shouldBe('selection.focusNode', expectedNode);
    shouldBe('selection.focusOffset', expectedOffset.toString());
    debug('');
}

testIt('a|<br>', '<br>', 'sample', 0);
testIt('a<br>|<br>', 'a<br>', 'sample.firstChild', 1);
testIt('a<br><br>|<br>', 'a<br><br>', 'sample', 2);

testIt('a|<br><br>', '<br><br>', 'sample', 0);
testIt('a<br>|<br><br>', 'a<br><br>', 'sample.firstChild', 1);
testIt('a<br><br>|<br><br>', 'a<br><br><br>', 'sample', 2);

testIt('a<br>|b', 'ab', 'sample.firstChild', 1);
testIt('a<br><br>|b', 'a<br>b', 'sample.lastChild', 0);
testIt('a<br><br><br>|b', 'a<br><br>b', 'sample.lastChild', 0);

testIt('a<br>b|', 'a<br><br>', 'sample', 2);
testIt('a<br><br>b|', 'a<br><br><br>', 'sample', 3);
testIt('a<br><br><br>b|', 'a<br><br><br><br>', 'sample', 4);

if (window.testRunner)
    $('container').outerHTML = '';
</script>