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

Side by Side Diff: LayoutTests/svg/text/select-svg-text-with-collapsed-whitespace.html

Issue 1072403007: Fixup a bug about SVG text selection. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Draft 16 (remove floor) Created 5 years, 8 months 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 unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <title>Test for selection with collapsed whitespace</title>
3 <body>
4 This test checks that characters can be selected correctly with collapsed whites pace.
5 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlin k" width="300" height="300">
6 <text id="text1" x="20" y="20"> happy debugging !!</text>
7 <text id="text2" x="20" y="40"> <tspan id="tspan1" style="font-weight: bol d;">happy</tspan> debugging !!</text>
8 <text id="text3" x="20" y="80"> <tspan id="tspan2" style="font-size: 25px; ">happy</tspan> debugging !!</text>
9 <text id="text4" x="20" y="230" fill="black" transform="scale(0.5)" font-size= "40"> happy debugging !!</text>
10 </svg>
11 <div id="passfail">
fs 2015/04/28 08:57:03 I don't see this <div> used for anything.
12 </div>
13 <script src="../../resources/js-test.js"></script>
14 <script src="resources/SelectionTestCase.js"></script>
15 <script type="text/javascript">
16 var range;
17 var a, b;
fs 2015/04/28 08:57:03 What uses 'a' and 'b'? Remove?
18 function runTest() {
19 var text1 = document.getElementById('text1');
20 var text2 = document.getElementById('text2');
21 var text3 = document.getElementById('text3');
22 var text4 = document.getElementById('text4');
23
24 if (!window.testRunner)
25 return;
26
27 var startPos = text1.getStartPositionOfChar(0);
fs 2015/04/28 08:57:03 You could roll these chunks of code into a functio
28 var endPos = text1.getEndPositionOfChar(3);
29 var absStartPos = toAbsoluteCoordinates(startPos, text1);
30 var absEndPos = toAbsoluteCoordinates(endPos, text1);
31 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
32 eventSender.mouseDown();
33 eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
34 eventSender.mouseUp();
35 verify("5", "9");
36
37 var startPos = text1.getStartPositionOfChar(0);
38 var endPos = text1.getEndPositionOfChar(8);
39 var absStartPos = toAbsoluteCoordinates(startPos, text1);
40 var absEndPos = toAbsoluteCoordinates(endPos, text1);
41 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
42 eventSender.mouseDown();
43 eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
44 eventSender.mouseUp();
45 verify("5", "24");
46
47 var startPos = text2.getStartPositionOfChar(0);
48 var endPos = text2.getEndPositionOfChar(3);
49 var absStartPos = toAbsoluteCoordinates(startPos, text2);
50 var absEndPos = toAbsoluteCoordinates(endPos, text2);
51 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
52 eventSender.mouseDown();
53 eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
54 eventSender.mouseUp();
55 verify("0", "4");
56
57 var startPos = text2.getStartPositionOfChar(0);
58 var endPos = text2.getEndPositionOfChar(8);
59 var absStartPos = toAbsoluteCoordinates(startPos, text2);
60 var absEndPos = toAbsoluteCoordinates(endPos, text2);
61 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
62 eventSender.mouseDown();
63 eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
64 eventSender.mouseUp();
65 verify("0", "14");
66
67 var startPos = text3.getStartPositionOfChar(0);
68 var endPos = text3.getEndPositionOfChar(3);
69 var absStartPos = toAbsoluteCoordinates(startPos, text3);
70 var absEndPos = toAbsoluteCoordinates(endPos, text3);
71 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
72 eventSender.mouseDown();
73 eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
74 eventSender.mouseUp();
75 verify("0", "4");
76
77 var startPos = text3.getStartPositionOfChar(0);
78 var endPos = text3.getEndPositionOfChar(10);
79 var absStartPos = toAbsoluteCoordinates(startPos, text3);
80 var absEndPos = toAbsoluteCoordinates(endPos, text3);
81 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
82 eventSender.mouseDown();
83 eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
84 eventSender.mouseUp();
85 verify("0", "15");
86
87 var startPos = text4.getStartPositionOfChar(0);
88 var endPos = text4.getEndPositionOfChar(3);
89 var absStartPos = toAbsoluteCoordinates(startPos, text4);
90 var absEndPos = toAbsoluteCoordinates(endPos, text4);
91 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y - 15);
fs 2015/04/28 08:57:03 Why does this (and the following) need to subtract
92 eventSender.mouseDown();
93 eventSender.mouseMoveTo(absEndPos.x, absEndPos.y - 15);
94 eventSender.mouseUp();
95 verify("5", "9");
96
97 var startPos = text4.getStartPositionOfChar(0);
98 var endPos = text4.getEndPositionOfChar(8);
99 var absStartPos = toAbsoluteCoordinates(startPos, text4);
100 var absEndPos = toAbsoluteCoordinates(endPos, text4);
101 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y - 15);
102 eventSender.mouseDown();
103 eventSender.mouseMoveTo(absEndPos.x, absEndPos.y - 15);
104 eventSender.mouseUp();
105 verify("5", "24");
106 }
107
108 function verify(start, end) {
109 range = window.getSelection().getRangeAt(0);
110 shouldBe("range.startOffset", start);
111 shouldBe("range.endOffset", end);
112 eventSender.mouseMoveTo(0,0);
113 eventSender.mouseDown();
114 eventSender.mouseUp();
115 }
116
117 runTest();
118 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698