| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
| <link rel="stylesheet" type="text/css" href="resources/extend-selection.css" /> |
| <style> |
| test_move_by_word {display: none;} |
| *[dir] { |
| unicode-bidi: embed |
| } |
| </style> |
| <script src="resources/move-by-word-visually.js"></script> |
| <script> |
| |
| onload = function() { |
| try { |
| runTest(); |
| } finally { |
| flushLog(); |
| } |
| }; |
| |
| if (window.testRunner && window.internals) { |
| testRunner.dumpAsText(); |
| internals.settings.setEditingBehavior('windows'); |
| } |
| </script> |
| </head> |
| <body> |
| <div id="testMoveByWord"> |
| <!-- |
| Title saves the word breaks. |
| The format of title is "xxx|xxxx". |
| |
| The sequence on the left of "|" is word boundaries when moving caret from left to right. |
| The sequence on the right of "|" is word boundaries when moving caret from right to left. |
| |
| If there is a single node in the line, the sequence are offsets. |
| If there are multiple nodes in the line, the sequence is array of [anchor_node_id, offset, child_node_index], |
| where child_node_index is optional, default is the first child of the anchor node. |
| --> |
| <!-- Inline element --> |
| <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> |
| <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> |
| |
| <!-- pure English in inline element with same or different directionality from its parent --> |
| <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> |
| |
| <!-- FAILED --> |
| <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> |
| |
| <!-- FAILED. The render result is the same as d_4. --> |
| <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> |
| |
| <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> |
| |
| <!-- pure Hebrew in inline element with same or different directionality from its parent --> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <!-- bidi in inline element with same or different directionality from its parent --> |
| <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> |
| |
| <!-- FAIL --> |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <!-- FAILED --> |
| <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> |
| |
| <!-- FAILED, and wrong printing result --> |
| <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> |
| |
| <!-- FAILED --> |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| </div> |
| <pre id="console"></pre> |
| </body> |
| </html> |