Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Unified Diff: third_party/WebKit/LayoutTests/editing/selection/mouse/click-left-of-rtl-wrapping-text.html

Issue 2525273002: [Editing][CodeHealth] Convert editing/selection to utilize w3c test harness part 1. (Closed)
Patch Set: update Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/editing/selection/mouse/click-left-of-rtl-wrapping-text.html
diff --git a/third_party/WebKit/LayoutTests/editing/selection/mouse/click-left-of-rtl-wrapping-text.html b/third_party/WebKit/LayoutTests/editing/selection/mouse/click-left-of-rtl-wrapping-text.html
new file mode 100644
index 0000000000000000000000000000000000000000..3be940799be4bdd2fc36cf1e74e239fe616a8e45
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/editing/selection/mouse/click-left-of-rtl-wrapping-text.html
@@ -0,0 +1,151 @@
+<!doctype html>
+<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="../../assert_selection.js"></script>
+<script>
+test(() => {
+ assert_not_equals(window.eventSender, undefined, 'This test requires eventSender.');
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.
+
+ function testClickLeft(selection, lines, rowIndexToClick) {
+ const doc = selection.document;
+ const container = doc.querySelector('div');
+ // Adjust width to have |lines| of lines.
+ // Since the Ahem font doesn't cover characters used in test,
+ // we need to calc width depending on each platform.
+ const heightOfLine = container.offsetHeight;
+ let width = 5;
+ do {
+ 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.
+ width++;
+ } while (container.offsetHeight > heightOfLine * lines);
+ 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.
+
+ // Click left of the |rowIndexToClick|th line.
+ eventSender.mouseMoveTo(
+ doc.offsetLeft + container.offsetLeft + 3,
+ doc.offsetTop + container.offsetTop + heightOfLine/2 + rowIndexToClick * heightOfLine);
+ eventSender.mouseDown();
+ eventSender.mouseUp();
+
+ // Remove width from style to clean result DOM.
+ container.style.removeProperty('width');
+ return heightOfLine;
+ }
+
+ assert_selection(
+ '<div contenteditable dir="rtl">&#1498; &#1500;&#1499;</div>',
+ selection => testClickLeft(selection, 2, 0),
+ '<div contenteditable dir="rtl">ך |לכ</div>');
+
+ assert_selection(
+ '<div contenteditable dir="rtl">&#1498; &#1500;&#1499;</div>',
+ selection => testClickLeft(selection, 2, 1),
+ '<div contenteditable dir="rtl">ך לכ|</div>');
+
+ assert_selection(
+ [
+ '<div contenteditable dir="rtl">',
+ '&#1499;&#1499; &#1499;&#1499;&#1499;&#1499; &#1499;&#1499;&#1499;',
+ '</div>'
+ ].join(''),
+ selection => testClickLeft(selection, 3, 0),
+ [
+ '<div contenteditable dir="rtl">',
+ 'ככ |ככככ כככ',
+ '</div>'
+ ].join(''));
+
+ assert_selection(
+ [
+ '<div contenteditable dir="rtl">',
+ '&#1499;&#1499; &#1499;&#1499;&#1499;&#1499; &#1499;&#1499;&#1499;',
+ '</div>'
+ ].join(''),
+ selection => testClickLeft(selection, 3, 1),
+ [
+ '<div contenteditable dir="rtl">',
+ 'ככ ככככ |כככ',
+ '</div>'
+ ].join(''));
+
+ assert_selection(
+ [
+ '<div contenteditable dir="rtl">',
+ '&#1499;&#1499; &#1499;&#1499;&#1499;&#1499; &#1499;&#1499;&#1499;',
+ '</div>'
+ ].join(''),
+ selection => testClickLeft(selection, 3, 2),
+ [
+ '<div contenteditable dir="rtl">',
+ 'ככ ככככ כככ|',
+ '</div>'
+ ].join(''));
+
+ assert_selection(
+ [
+ '<div contenteditable dir="rtl">',
+ '&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499;',
+ '</div>'
+ ].join(''),
+ selection => testClickLeft(selection, 5, 0),
+ [
+ '<div contenteditable dir="rtl">',
+ 'גכ |יגכ יגכ יגכ יגכ',
+ '</div>'
+ ].join(''));
+
+ assert_selection(
+ [
+ '<div contenteditable dir="rtl">',
+ '&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499;',
+ '</div>'
+ ].join(''),
+ selection => testClickLeft(selection, 5, 1),
+ [
+ '<div contenteditable dir="rtl">',
+ 'גכ יגכ |יגכ יגכ יגכ',
+ '</div>'
+ ].join(''));
+
+ assert_selection(
+ [
+ '<div contenteditable dir="rtl">',
+ '&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499;',
+ '</div>'
+ ].join(''),
+ selection => testClickLeft(selection, 5, 2),
+ [
+ '<div contenteditable dir="rtl">',
+ 'גכ יגכ יגכ |יגכ יגכ',
+ '</div>'
+ ].join(''));
+
+ assert_selection(
+ [
+ '<div contenteditable dir="rtl">',
+ '&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499;',
+ '</div>'
+ ].join(''),
+ selection => testClickLeft(selection, 5, 3),
+ [
+ '<div contenteditable dir="rtl">',
+ 'גכ יגכ יגכ יגכ |יגכ',
+ '</div>'
+ ].join(''));
+
+ assert_selection(
+ [
+ '<div contenteditable dir="rtl">',
+ '&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499; &#1497;&#1490;&#1499;',
+ '</div>'
+ ].join(''),
+ selection => testClickLeft(selection, 5, 4),
+ [
+ '<div contenteditable dir="rtl">',
+ 'גכ יגכ יגכ יגכ יגכ|',
+ '</div>'
+ ].join(''));
+
+}, 'This tests clicking on the left of RTL text puts the caret at the end of the line');
+</script>

Powered by Google App Engine
This is Rietveld 408576698