4 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8">
5 <link rel=
"stylesheet" type=
"text/css" href=
"resources/extend-selection.css" />
7 test_move_by_word {display: none;}
9 <script src=
"resources/move-by-word-visually.js"></script>
20 if (window
.testRunner
&& window
.internals
) {
21 testRunner
.dumpAsText();
22 internals
.settings
.setEditingBehavior('win');
27 <div id=
"testMoveByWord">
29 Title saves the word breaks.
30 The format of title is "xxx|xxxx".
32 The sequence on the left of "|" is word boundaries when moving caret from left to right.
33 The sequence on the right of "|" is word boundaries when moving caret from right to left.
35 If there is a single node in the line, the sequence are offsets.
36 If there are multiple nodes in the line, the sequence is array of [anchor_node_id, offset, child_node_index],
37 where child_node_index is optional, default is the first child of the anchor node.
39 <!-- Inline element -->
40 <div dir=ltr
id=
"d_1" class=
"test_move_by_word" title=
"[d_1, 0][d_1, 3][s_1, 2]|[s_1, 2][d_1, 3][d_1,0]" contenteditable
>אאא
<span id=
"s_1">בב
</span></div>
41 <div dir=rtl
id=
"d_2" class=
"test_move_by_word" title=
"[s_2, 2][d_2, 4][d_2, 0]|[d_2, 0][d_2, 4][s_2, 2]" contenteditable
>אאא
<span id=
"s_2">בב
</span></div>
43 <!-- pure English in inline element with same or different directionality from its parent -->
44 <div dir=ltr
id=
"d_3" class=
"test_move_by_word" title=
"[d_3, 0][d_3, 4][d_3, 8][s_3, 4][d_3, 1, 3][d_3, 5, 3][d_3, 8, 3]|[d_3, 8, 3][d_3, 5, 3][d_3, 1, 3][s_3, 4][d_3, 8][d_3, 4][d_3, 0]" contenteditable
>abc def
<span id=
"s_3">hij opq
</span> rst uvw
</div>
47 <div dir=rtl
id=
"d_4" class=
"test_move_by_word" title=
"[d_4, 8, 3][d_4, 3, 1][d_4, 7, 1][s_4, 3, 1][s_4, 7, 1][d_4, 4, 3][d_4, 0, 1]|[d_4, 0, 1][d_4, 4, 3][s_4, 7, 1][s_4, 3, 1][d_4, 7, 1][d_4, 3, 1][d_4, 8, 3]" contenteditable
>abc def
<span id=
"s_4">hij opq
</span> rst uvw
</div>
49 <!-- FAILED. The render result is the same as d_4. -->
50 <div id=
"d_5" dir=rtl
class=
"test_move_by_word" title=
"[d_5, 8, 3][d_5, 3, 1][d_5, 7, 1][s_5, 3, 1][s_5, 7, 1][d_5, 4, 3][d_5, 0, 1]|[d_5, 0, 1][d_5, 4, 3][s_5, 7, 1][s_5, 3, 1][d_5, 7, 1][d_5, 3, 1][d_5, 8, 3]"contenteditable
>abc def
<span dir=ltr
id=
"s_5">hij opq
</span> rst uvw
</div>
52 <div id=
"d_6" dir=ltr
class=
"test_move_by_word" title=
"[d_6, 0, 1][d_6, 4, 1][d_6, 8, 1][s_6, 4, 1][d_6, 1, 3][d_6, 5, 3][d_6, 8, 3]|[d_6, 8, 3][d_6, 5, 3][d_6, 1, 3][s_6, 4, 1][d_6, 8, 1][d_6, 4, 1][d_6, 0, 1]" contenteditable
>abc def
<span dir=rtl
id=
"s_6">hij opq
</span> rst uvw
</div>
54 <!-- pure Hebrew in inline element with same or different directionality from its parent -->
56 <div id=
"d_7" dir=rtl
class=
"test_move_by_word" title=
"[d_7, 7, 3][d_7, 4, 3][s_7, 4, 1][d_7, 8, 1][d_7, 4, 1][d_7, 0, 1]|[d_7, 0, 1][d_7, 4, 1][d_7, 8, 1][s_7, 4, 1][d_7, 4, 3][d_7, 7, 3]" contenteditable
>אבד דעפ
<span dir=ltr
id=
"s_7">היח ופק
</span>ווש כטז
</div>
58 <div id=
"d_8" dir=ltr
class=
"test_move_by_word" title=
"[d_8, 0, 1][d_8, 3, 3][s_8, 3, 1][d_8, 7, 1][d_8, 3, 1][d_8, 7, 3]|[d_8, 7, 3][d_8, 3, 1][d_8, 7, 1][s_8, 3, 1][d_8, 3, 3][d_8, 0, 1]" contenteditable
>אבד דעפ
<span dir=rtl
id=
"s_8">היח ופק
</span>ווש כטז
</div>
60 <div id=
"d_9" dir=rtl
class=
"test_move_by_word" title=
"[d_9, 7, 3][d_9, 4, 3][s_9, 4, 1][d_9, 8, 1][d_9, 4, 1][d_9, 0, 1]|[d_9, 0, 1][d_9, 4, 1][d_9, 8, 1][s_9, 4, 1][d_9, 4, 3][d_9, 7, 3]" contenteditable
>אבד דעפ
<span id=
"s_9">היח ופק
</span>ווש כטז
</div>
62 <div id=
"d_10" dir=ltr
class=
"test_move_by_word" title=
"[d_10, 0, 1][d_10, 3, 3][s_10, 3, 1][d_10, 7, 1][d_10, 3, 1][d_10, 7, 3]|[d_10, 7, 3][d_10, 3, 1][d_10, 7, 1][s_10, 3, 1][d_10, 3, 3][d_10, 0, 1]" contenteditable
>אבד דעפ
<span id=
"s_10">היח ופק
</span>ווש כטז
</div>
64 <!-- bidi in inline element with same or different directionality from its parent -->
65 <div id=
"d_11" dir=rtl
class=
"test_move_by_word" title=
"[d_11, 7, 3][d_11, 4, 3][s_11, 3, 1][d_11, 8, 1][d_11, 4, 1][d_11, 0, 1]|[d_11, 0, 1][d_11, 4, 1][d_11, 8, 1][s_11, 3, 1][d_11, 4, 3][d_11, 7, 3]" contenteditable
>אבד דעפ
<span dir=ltr
id=
"s_11">abc def
</span>ווש כטז
</div>
68 <div id=
"d_12" dir=ltr
class=
"test_move_by_word" title=
"[d_12, 0, 1][d_12, 3, 3][d_12, 8, 1][s_12, 4, 1][d_12, 7, 1][d_12, 3, 1][d_12, 7, 3]|[d_12, 7, 3][d_12, 3, 1][d_12, 7, 1][s_12, 4, 1][d_12, 8, 1][d_12, 3, 3][d_12, 0]" contenteditable
>אבד דעפ
<span dir=rtl
id=
"s_12">abc def
</span>ווש כטז
</div>
70 <div id=
"d_13" dir=rtl
class=
"test_move_by_word" title=
"[d_13, 7, 3][d_13, 4, 3][s_13, 3, 1][d_13, 8, 1][d_13, 4, 1][d_13, 0, 1]|[d_13, 0, 1][d_13, 4, 1][d_13, 8, 1][s_13, 3, 1][d_13, 4, 3][d_13, 7, 3]" contenteditable
>אבד דעפ
<span id=
"s_13">abc def
</span>ווש כטז
</div>
72 <div id=
"d_14" dir=ltr
class=
"test_move_by_word" title=
"[d_14, 0, 1][d_14, 3, 1][d_14, 8, 1][s_14, 4, 1][d_14, 3, 3][d_14, 7, 3]|[d_14, 7, 3][d_14, 3, 3][s_14, 4, 1][d_14, 8, 1][d_14, 3, 1][d_14, 0, 1]" contenteditable
>אבד דעפ
<span id=
"s_14">abc def
</span>ווש כטז
</div>
75 <div id=
"d_15" dir=rtl
class=
"test_move_by_word" title=
"[d_15, 11, 3][d_15, 8, 3][d_15, 4, 3][s_15, 3, 1][s_15, 4, 1][d_15, 12, 1][d_15, 8, 1][d_15, 4, 1][d_15, 0, 1]|[d_15, 0, 1][d_15, 4, 1][d_15, 8, 1][d_15, 12, 1][s_15, 4, 1][s_15, 3, 1][d_15, 4, 3][d_15, 8, 3][d_15, 11, 3]" contenteditable
>אבד opq דעפ
<span dir=ltr
id=
"s_15">abc אאא def
</span>ווש rst כטז
</div>
77 <!-- FAILED, and wrong printing result -->
78 <div id=
"d_16" dir=ltr
class=
"test_move_by_word" title=
"[d_16, 0, 1][d_16, 4, 1][d_16, 8, 1][s_16, 8, 1][s_16, 7, 1][d_16, 12, 1][d_16, 11, 1][d_16, 4, 3][d_16, 8, 3][d_16, 11, 3]|[d_16, 11, 3][d_16, 8, 3][d_16, 4, 3][d_16, 11, 1][d_16, 12, 1][s_16, 7, 1][s_16, 8, 1][d_16, 8, 1][d_16, 4, 1][d_16, 0, 1]" contenteditable
>אבד opq דעפ
<span dir=rtl
id=
"s_16">abc אאא def
</span>ווש rst כטז
</div>
81 <div id=
"d_17" dir=rtl
class=
"test_move_by_word" title=
"[d_17, 11, 3][d_17, 8, 3][d_17, 4, 3][s_17, 8, 1][s_17, 4, 1][d_17, 12, 1][d_17, 8, 1][d_17, 4, 1][d_17, 0, 1]|[d_17, 0, 1][d_17, 4, 1][d_17, 8, 1][d_17, 12, 1][s_17, 4, 1][s_17, 8, 1][d_17, 4, 3][d_17, 8, 3][d_17, 11, 3]" contenteditable
>אבד opq דעפ
<span id=
"s_17">abc אאא def
</span>ווש rst כטז
</div>
83 <div id=
"d_18" dir=ltr
class=
"test_move_by_word" title=
"[d_18, 0, 1][d_18, 4, 1][d_18, 8, 1][d_18, 12, 1][s_18, 4, 1][s_18, 8, 1][d_18, 4, 3][d_18, 8, 3][d_18, 11, 3]|[d_18, 11, 3][d_18, 8, 3][d_18, 4, 3][s_18, 8, 1][s_18, 4, 1][d_18, 12, 1][d_18, 8, 1][d_18, 4, 1][d_18, 0, 1]" contenteditable
>אבד opq דעפ
<span id=
"s_18">abc אאא def
</span>ווש rst כטז
</div>
85 <div id=
"d_19" dir=ltr
class=
"test_move_by_word" title=
"[d_19, 0, 1][d_19, 4, 1][s_19, 4, 1][s_19, 7, 1][d_19, 3, 3]|[d_19, 3, 3][s_19, 7, 1][s_19, 4, 1][d_19, 4, 1][d_19, 0, 1]" contenteditable
>aaa
<span id=
"s_19">bbb אאא
</span>ווש
</div>
87 <div id=
"d_20" dir=rtl
class=
"test_move_by_word" title=
"[d_20, 15, 3][d_20, 12, 3][d_20, 7, 3][d_20, 4, 3][s_20, 3, 1][s_20, 7, 1][s_20, 8, 1][s_20, 15, 1][d_20, 16, 1][d_20, 12, 1][d_20, 7, 1][d_20, 4, 1][d_20, 0, 1]|[d_20, 0, 1][d_20, 4, 1][d_20, 7, 1][d_20, 12, 1][d_20, 16, 1][s_20, 15, 1][s_20, 8, 1][s_20, 7, 1][s_20, 3, 1][d_20, 4, 3][d_20, 7, 3][d_20, 12, 3][d_20, 15, 3]" contenteditable
>אבד opq rst דעפ
<span dir=ltr
id=
"s_20">abc uvw אאא def lmn
</span>אבצ hij xyz וקק
</div>
90 <pre id=
"console"></pre>