Missing cursor/caret showing in search field on google.com
[WebKit-https.git] / LayoutTests / editing / selection / modify-by-lineboundary-in-inline-editable-contexts.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
4 <script src="../../resources/js-test-pre.js"></script>
5 <script src="resources/js-test-selection-shared.js"></script>
6 </head>
7 <body>
8 <p id="description"></p>
9 <div id="console"></div>
10 <script>
11 description("This test ensures that modifying the selection by line boundary granularity (like home/end do) functions properly in an inline editable context.<br>" +
12     "You can run this test manually by placing the caret in the middle of the both of the shaded editable spans below and ensuring home/end (command left/right" +
13     " on Mac) moves the caret to the boundaries of the shaded area.");
14
15 function testModifyByLine(root, direction, expectedOffset, description) {
16     root.focus();
17
18     var sel = window.getSelection();
19     var initialOffset = 2;
20     sel.setBaseAndExtent(root.firstChild, initialOffset, root.firstChild, initialOffset);
21     sel.modify("move", direction, "lineboundary");
22     
23     var testName = "Modify moving " + direction + " in " + description;
24     if (sel.baseOffset == expectedOffset)
25         testPassed(testName);
26     else if (sel.baseOffset == initialOffset)
27         testFailed(testName + " had no effect.");
28     else
29         testFailed(testName + " resulted in an unexpected offset of " + sel.baseOffset);
30 }
31
32 var container = document.createElement('div');
33 document.body.appendChild(container);
34 container.innerHTML = '<span contentEditable="true" style="background-color: lightgrey">adjacent editable</span><span contentEditable="true">spans</span>';
35
36 var name = "adjacent, editable spans";
37 testModifyByLine(container.firstChild, "forward", 17, name);
38 testModifyByLine(container.firstChild, "backward", 0, name);
39
40 if (window.testRunner)
41     container.innerHTML = '';
42
43 container = document.createElement('div')
44 document.body.appendChild(container);
45 container.innerHTML = 'This is a non-editable paragraph with <span contentEditable="true" style="background-color: lightgrey" id="root">an editable span</span> inside it.';
46
47 name = "editable span in non-editable content"
48 var root = document.getElementById('root');
49 testModifyByLine(root, "forward", 16, name);
50 testModifyByLine(root, "backward", 0, name);
51
52 if (window.testRunner)
53     container.innerHTML = '';
54
55 var successfullyParsed = true;
56 </script>
57 <script src="../../resources/js-test-post.js"></script>
58 </body>
59 </html>