Missing cursor/caret showing in search field on google.com
[WebKit-https.git] / LayoutTests / editing / selection / extend-forward-by-word-over-non-editable.html
1 <!DOCTYPE html>
2 <pre id="log"></pre>
3
4 <div id="ltrTextContainer" contenteditable>foo bar <span contenteditable=false>baz</span> qux quux</div>
5 <div id="rtlTextContainer" contenteditable dir="rtl">&#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4; &#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4;
6 <span contenteditable=false>&#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4;</span>
7 &#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4; &#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4;</div>
8
9 <div id="ltrMultiTextContainer" contenteditable>foo bar <span contenteditable=false>baz baz baz</span> qux quux</div>
10 <div id="rtlMultiTextContainer" contenteditable dir="rtl">&#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4; &#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4;
11 <span contenteditable=false>&#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4; &#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4; &#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4;</span>
12 &#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4; &#x05E9;&#x05D5;&#x05BC;&#x05E8;&#x05D4;</div>
13
14 <script>
15 function log(s) {
16   document.getElementById("log").appendChild(document.createTextNode(s + "\n"));
17 }
18
19 function placeCursorBeforeFirstNoneditableChild(container) {
20   for (var i = 0; i < container.childNodes.length; i++) {
21     var node = container.childNodes[i];
22     if (node.isContentEditable !== undefined && !node.isContentEditable) {
23       var previous = node.previousSibling;
24       getSelection().setPosition(previous, previous.textContent.length);
25       return node;
26     }
27   }
28   throw "Couldn't find noneditable child of " + container.textContent;
29 }
30
31 function extendForwardByWord(container, bidiName) {
32   noneditableChild = placeCursorBeforeFirstNoneditableChild(container);
33   getSelection().modify("extend", "forward", "word");
34   if (getSelection().toString() === noneditableChild.textContent)
35     log("PASS for " + bidiName);
36   else
37     log("FAIL for " + bidiName + ", selection is \"" + getSelection() + "\" but should be \"" + noneditableChild.textContent + "\"");
38 }
39
40 if (window.internals)
41     internals.settings.setEditingBehavior("mac");
42 extendForwardByWord(document.getElementById("ltrTextContainer"), "LTR");
43 extendForwardByWord(document.getElementById("rtlTextContainer"), "RTL");
44 extendForwardByWord(document.getElementById("ltrMultiTextContainer"), "LTR-multi");
45 extendForwardByWord(document.getElementById("rtlMultiTextContainer"), "RTL-multi");
46
47 if (window.testRunner)
48     testRunner.dumpAsText();
49 </script>