summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled
blob: 5ed53fc914a392c56cef7f13c3669d3b0705a476 (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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<html>
<head>
<style>
.editing { 
    margin: 10; padding: 0; 
}
</style>
<script src=../editing.js language="JavaScript" type="text/JavaScript" ></script>

<script>

function editingTest() {
    typeCharacterCommand('1');
    typeCharacterCommand('2');
    boldCommand();
    typeCharacterCommand('3');
    italicCommand();
    typeCharacterCommand('4');
    typeCharacterCommand('5');
    typeCharacterCommand('6');
    italicCommand();
    boldCommand();
    insertParagraphCommand();
    typeCharacterCommand('l');
    typeCharacterCommand('i');
    typeCharacterCommand('n');
    typeCharacterCommand('e');
    typeCharacterCommand(' ');
    typeCharacterCommand('t');
    typeCharacterCommand('w');
    typeCharacterCommand('o');
    insertLineBreakCommand();
    insertLineBreakCommand();
    typeCharacterCommand('a');
    typeCharacterCommand('n');
    typeCharacterCommand('d');
    typeCharacterCommand(' ');
    fontSizeCommand("6");
    underlineCommand();
    typeCharacterCommand('t');
    typeCharacterCommand('h');
    typeCharacterCommand('r');
    typeCharacterCommand('e');
    typeCharacterCommand('e');
    typeCharacterCommand(' ');
    typeCharacterCommand(' ');
    typeCharacterCommand(' ');
    underlineCommand();
    insertLineBreakCommand();
}

</script>

<title>Attributed String Test</title> 
</head>
<body contenteditable id="root">
<div id="wrapper">
<div class="editing" id="test"></div>
</div>

<script>
runEditingTest();
</script>

<script type="text/javascript">

    var console_messages = document.createElement("ol");
    
    function log(message)
    {
        var item = document.createElement("li");
        item.appendChild(document.createTextNode(String(message).replace(/0x[0-9a-fA-F]{8}/g, "0xXXXXXXXX")));
        console_messages.appendChild(item);
    }
    
    if (window.testRunner) {
        
        try {
        
            testRunner.dumpAsText();
        
            log("Actual HTML:");
            log("<pre>" + document.getElementById("wrapper").innerHTML + "</pre>");
            window.getSelection().collapse(document.body, 0);

            log("(0, 0): " + textInputController.attributedSubstringFromRange(0, 0));
            log("(0, 0) length: " + textInputController.attributedSubstringFromRange(0, 0).length());
            log("(0, 2): " + textInputController.attributedSubstringFromRange(0, 2));
            log("(0, 2) length: " + textInputController.attributedSubstringFromRange(0, 2).length());
            log("(1, 2): " + textInputController.attributedSubstringFromRange(1, 2));
            log("(1, 2) length: " + textInputController.attributedSubstringFromRange(1, 2).length());
            log("(0, 3): " + textInputController.attributedSubstringFromRange(0, 3));
            log("(0, 3) length: " + textInputController.attributedSubstringFromRange(0, 3).length());
            log("(0, 6): " + textInputController.attributedSubstringFromRange(0, 6));
            log("(0, 6) length: " + textInputController.attributedSubstringFromRange(0, 6).length());
            log("(0, 7): " + textInputController.attributedSubstringFromRange(0, 7));
            log("(0, 7) length: " + textInputController.attributedSubstringFromRange(0, 7).length()); // should be 7 characters!
            log("(0, 31): " + textInputController.attributedSubstringFromRange(0, 31));
            log("(0, 31) length: " + textInputController.attributedSubstringFromRange(0, 31).length()); // actual length IS 31
            log("(0, 100): " + textInputController.attributedSubstringFromRange(0, 100));
            log("(0, 100) length: " + textInputController.attributedSubstringFromRange(0, 100).length()); // should be 31 characters!
            log("(1, 100): " + textInputController.attributedSubstringFromRange(1, 100));
            log("(1, 100) length: " + textInputController.attributedSubstringFromRange(1, 100).length()); // should be 30 characters!
            log("(2, 3): " + textInputController.attributedSubstringFromRange(2, 3));
            log("(2, 3) length: " + textInputController.attributedSubstringFromRange(2, 3).length());
            log("(5, 1): " + textInputController.attributedSubstringFromRange(5, 1));
            log("(5, 1) length: " + textInputController.attributedSubstringFromRange(5, 1).length());
            log("(5, 2): " + textInputController.attributedSubstringFromRange(5, 2));
            log("(5, 2) length: " + textInputController.attributedSubstringFromRange(5, 2).length());
            log("(5, 5): " + textInputController.attributedSubstringFromRange(5, 5));
            log("(5, 5) length: " + textInputController.attributedSubstringFromRange(5, 5).length());
            log("(15, 14): " + textInputController.attributedSubstringFromRange(15, 14));
            log("(15, 14) length: " + textInputController.attributedSubstringFromRange(15, 14).length()); // should be 14 characters!
            log("(100, 0): " + textInputController.attributedSubstringFromRange(100, 0)); // should be undefined
            log("(100, 100): " + textInputController.attributedSubstringFromRange(100, 100)); // should be undefined
            
        } catch (ex) {
            log("Exception: " + ex.description);
        }
        
        var console = document.createElement("p");
        console.appendChild(console_messages);
        document.body.appendChild(console);
        
    } else {
        document.write("(cannot run interactively)");
    }
</script>
</body>
</html>