Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!doctype html> | |
| 2 <meta http-equiv="Content-type" content="text/html; charset=utf-8"> | |
| 3 <script src="../../../resources/testharness.js"></script> | |
| 4 <script src="../../../resources/testharnessreport.js"></script> | |
| 5 <script src="../../assert_selection.js"></script> | |
| 6 <script> | |
| 7 test(() => { | |
| 8 assert_not_equals(window.eventSender, undefined, 'This test requires eventSend er.'); | |
|
yosin_UTC9
2017/01/11 05:59:54
It seems following pattern is better than this, it
yoichio
2017/01/11 07:18:57
Done.
| |
| 9 | |
| 10 function testClickLeft(selection, lines, rowIndexToClick) { | |
| 11 const doc = selection.document; | |
| 12 const container = doc.querySelector('div'); | |
| 13 // Adjust width to have |lines| of lines. | |
| 14 // Since the Ahem font doesn't cover characters used in test, | |
| 15 // we need to calc width depending on each platform. | |
| 16 const heightOfLine = container.offsetHeight; | |
| 17 let width = 5; | |
| 18 do { | |
| 19 container.style.width = width + 'px'; | |
|
yosin_UTC9
2017/01/11 05:59:54
nit: s/width + 'px'/`${width}px`/
yoichio
2017/01/11 07:18:57
Done.
| |
| 20 width++; | |
| 21 } while (container.offsetHeight > heightOfLine * lines); | |
| 22 container.style.width = (width + 1) + 'px'; | |
|
yosin_UTC9
2017/01/11 05:59:54
s/(width + 1) + 'px'/`${width + 1}px`/
yoichio
2017/01/11 07:18:57
Done.
| |
| 23 | |
| 24 // Click left of the |rowIndexToClick|th line. | |
| 25 eventSender.mouseMoveTo( | |
| 26 doc.offsetLeft + container.offsetLeft + 3, | |
| 27 doc.offsetTop + container.offsetTop + heightOfLine/2 + rowIndexToClick * h eightOfLine); | |
| 28 eventSender.mouseDown(); | |
| 29 eventSender.mouseUp(); | |
| 30 | |
| 31 // Remove width from style to clean result DOM. | |
| 32 container.style.removeProperty('width'); | |
| 33 return heightOfLine; | |
| 34 } | |
| 35 | |
| 36 assert_selection( | |
| 37 '<div contenteditable dir="rtl">ך לכ</div>', | |
| 38 selection => testClickLeft(selection, 2, 0), | |
| 39 '<div contenteditable dir="rtl">ך |לכ</div>'); | |
| 40 | |
| 41 assert_selection( | |
| 42 '<div contenteditable dir="rtl">ך לכ</div>', | |
| 43 selection => testClickLeft(selection, 2, 1), | |
| 44 '<div contenteditable dir="rtl">ך לכ|</div>'); | |
| 45 | |
| 46 assert_selection( | |
| 47 [ | |
| 48 '<div contenteditable dir="rtl">', | |
| 49 'ככ ככככ כככ', | |
| 50 '</div>' | |
| 51 ].join(''), | |
| 52 selection => testClickLeft(selection, 3, 0), | |
| 53 [ | |
| 54 '<div contenteditable dir="rtl">', | |
| 55 'ככ |ככככ כככ', | |
| 56 '</div>' | |
| 57 ].join('')); | |
| 58 | |
| 59 assert_selection( | |
| 60 [ | |
| 61 '<div contenteditable dir="rtl">', | |
| 62 'ככ ככככ כככ', | |
| 63 '</div>' | |
| 64 ].join(''), | |
| 65 selection => testClickLeft(selection, 3, 1), | |
| 66 [ | |
| 67 '<div contenteditable dir="rtl">', | |
| 68 'ככ ככככ |כככ', | |
| 69 '</div>' | |
| 70 ].join('')); | |
| 71 | |
| 72 assert_selection( | |
| 73 [ | |
| 74 '<div contenteditable dir="rtl">', | |
| 75 'ככ ככככ כככ', | |
| 76 '</div>' | |
| 77 ].join(''), | |
| 78 selection => testClickLeft(selection, 3, 2), | |
| 79 [ | |
| 80 '<div contenteditable dir="rtl">', | |
| 81 'ככ ככככ כככ|', | |
| 82 '</div>' | |
| 83 ].join('')); | |
| 84 | |
| 85 assert_selection( | |
| 86 [ | |
| 87 '<div contenteditable dir="rtl">', | |
| 88 'גכ יגכ יגכ י• 0;כ יגכ', | |
| 89 '</div>' | |
| 90 ].join(''), | |
| 91 selection => testClickLeft(selection, 5, 0), | |
| 92 [ | |
| 93 '<div contenteditable dir="rtl">', | |
| 94 'גכ |יגכ יגכ יגכ יגכ', | |
| 95 '</div>' | |
| 96 ].join('')); | |
| 97 | |
| 98 assert_selection( | |
| 99 [ | |
| 100 '<div contenteditable dir="rtl">', | |
| 101 'גכ יגכ יגכ י• 0;כ יגכ', | |
| 102 '</div>' | |
| 103 ].join(''), | |
| 104 selection => testClickLeft(selection, 5, 1), | |
| 105 [ | |
| 106 '<div contenteditable dir="rtl">', | |
| 107 'גכ יגכ |יגכ יגכ יגכ', | |
| 108 '</div>' | |
| 109 ].join('')); | |
| 110 | |
| 111 assert_selection( | |
| 112 [ | |
| 113 '<div contenteditable dir="rtl">', | |
| 114 'גכ יגכ יגכ י• 0;כ יגכ', | |
| 115 '</div>' | |
| 116 ].join(''), | |
| 117 selection => testClickLeft(selection, 5, 2), | |
| 118 [ | |
| 119 '<div contenteditable dir="rtl">', | |
| 120 'גכ יגכ יגכ |יגכ יגכ', | |
| 121 '</div>' | |
| 122 ].join('')); | |
| 123 | |
| 124 assert_selection( | |
| 125 [ | |
| 126 '<div contenteditable dir="rtl">', | |
| 127 'גכ יגכ יגכ י• 0;כ יגכ', | |
| 128 '</div>' | |
| 129 ].join(''), | |
| 130 selection => testClickLeft(selection, 5, 3), | |
| 131 [ | |
| 132 '<div contenteditable dir="rtl">', | |
| 133 'גכ יגכ יגכ יגכ |יגכ', | |
| 134 '</div>' | |
| 135 ].join('')); | |
| 136 | |
| 137 assert_selection( | |
| 138 [ | |
| 139 '<div contenteditable dir="rtl">', | |
| 140 'גכ יגכ יגכ י• 0;כ יגכ', | |
| 141 '</div>' | |
| 142 ].join(''), | |
| 143 selection => testClickLeft(selection, 5, 4), | |
| 144 [ | |
| 145 '<div contenteditable dir="rtl">', | |
| 146 'גכ יגכ יגכ יגכ יגכ|', | |
| 147 '</div>' | |
| 148 ].join('')); | |
| 149 | |
| 150 }, 'This tests clicking on the left of RTL text puts the caret at the end of the line'); | |
| 151 </script> | |
| OLD | NEW |