| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <style> | 2 <style> |
| 3 text { | 3 text { |
| 4 font: 10px Arial; | 4 font: 10px Arial; |
| 5 } | 5 } |
| 6 </style> | 6 </style> |
| 7 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlin
k" width="400" height="400" viewBox="0 0 500 500" style="border: 1px solid black
;"> | 7 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlin
k" width="400" height="400" viewBox="0 0 500 500" style="border: 1px solid black
;"> |
| 8 <g> | 8 <g> |
| 9 <text id="line1" x="10" y="30">Hello World. Hello, SVG.</text> | 9 <text id="line1" x="10" y="30">Hello World. Hello, SVG.</text> |
| 10 </g> | 10 </g> |
| 11 <g transform="translate(120, 30)"> | 11 <g transform="translate(120, 30)"> |
| 12 <text id="line2" x="50" y="50">Hello World. Hello, SVG.</text> | 12 <text id="line2" x="50" y="50">Hello World. Hello, SVG.</text> |
| 13 </g> | 13 </g> |
| 14 <g transform="translate(240, 30)"> | 14 <g transform="translate(240, 30)"> |
| 15 <text id="line3" x="100" y="100">Hello World. Hello, SVG.</text> | 15 <text id="line3" x="100" y="100">Hello World. Hello, SVG.</text> |
| 16 </g> | 16 </g> |
| 17 </svg> | 17 </svg> |
| 18 <script src="../../resources/js-test.js"></script> | 18 <script src="../../resources/testharness.js"></script> |
| 19 <script src="../../resources/testharnessreport.js"></script> |
| 19 <script src="resources/SelectionTestCase.js"></script> | 20 <script src="resources/SelectionTestCase.js"></script> |
| 20 <script type="text/javascript"> | 21 <script> |
| 22 test(function() { |
| 21 function getEndPosition(id, offset, gap) { | 23 function getEndPosition(id, offset, gap) { |
| 22 var element = document.getElementById(id); | 24 var element = document.getElementById(id); |
| 23 var endPos = element.getEndPositionOfChar(offset); | 25 var endPos = element.getEndPositionOfChar(offset); |
| 24 endPos.x += gap.x; | 26 endPos.x += gap.x; |
| 25 endPos.y += gap.y; | 27 endPos.y += gap.y; |
| 26 var absEndPos = toAbsoluteCoordinates(endPos, element); | 28 var absEndPos = toAbsoluteCoordinates(endPos, element); |
| 27 return absEndPos; | 29 return absEndPos; |
| 28 } | 30 } |
| 29 | 31 |
| 30 var absEndPos = getEndPosition('line3', 10, { x : 0, y : 30}); | 32 var absEndPos = getEndPosition('line3', 10, { x : 0, y : 30}); |
| 31 selectTextFromCharToPoint({ id: 'line1', offset: 7 }, absEndPos, { startElementI
d: "line1", start: "7", endElementId: "line3", end: "11" }); | 33 selectTextFromCharToPoint({ id: 'line1', offset: 7 }, absEndPos, { startElementI
d: "line1", start: 7, endElementId: "line3", end: 11 }); |
| 32 | 34 |
| 33 absEndPos = getEndPosition('line2', 10, { x : 0, y : 30}); | 35 absEndPos = getEndPosition('line2', 10, { x : 0, y : 30}); |
| 34 selectTextFromCharToPoint({ id: 'line1', offset: 7 }, absEndPos, { startElementI
d: "line1", start: "7", endElementId: "line2", end: "11" }); | 36 selectTextFromCharToPoint({ id: 'line1', offset: 7 }, absEndPos, { startElementI
d: "line1", start: 7, endElementId: "line2", end: 11 }); |
| 35 | 37 |
| 36 absEndPos = getEndPosition('line3', 10, { x : 0, y : 30}); | 38 absEndPos = getEndPosition('line3', 10, { x : 0, y : 30}); |
| 37 selectTextFromCharToPoint({ id: 'line2', offset: 7 }, absEndPos, { startElementI
d: "line2", start: "7", endElementId: "line3", end: "11" }); | 39 selectTextFromCharToPoint({ id: 'line2', offset: 7 }, absEndPos, { startElementI
d: "line2", start: 7, endElementId: "line3", end: 11 }); |
| 38 | 40 |
| 39 absEndPos = getEndPosition('line1', 8, { x : 0, y : -30}); | 41 absEndPos = getEndPosition('line1', 8, { x : 0, y : -30}); |
| 40 selectTextFromCharToPoint({ id: 'line3', offset: 7 }, absEndPos, { startElementI
d: "line3", start: "7", endElementId: "line1", end: "9" }); | 42 selectTextFromCharToPoint({ id: 'line3', offset: 7 }, absEndPos, { startElementI
d: "line3", start: 7, endElementId: "line1", end: 9 }); |
| 41 | 43 |
| 42 absEndPos = getEndPosition('line1', 8, { x : 0, y : -30}); | 44 absEndPos = getEndPosition('line1', 8, { x : 0, y : -30}); |
| 43 selectTextFromCharToPoint({ id: 'line2', offset: 7 }, absEndPos, { startElementI
d: "line2", start: "7", endElementId: "line1", end: "9" }); | 45 selectTextFromCharToPoint({ id: 'line2', offset: 7 }, absEndPos, { startElementI
d: "line2", start: 7, endElementId: "line1", end: 9 }); |
| 44 | 46 |
| 45 absEndPos = getEndPosition('line2', 8, { x : 0, y : -30}); | 47 absEndPos = getEndPosition('line2', 8, { x : 0, y : -30}); |
| 46 selectTextFromCharToPoint({ id: 'line3', offset: 7 }, absEndPos, { startElementI
d: "line3", start: "7", endElementId: "line2", end: "9" }); | 48 selectTextFromCharToPoint({ id: 'line3', offset: 7 }, absEndPos, { startElementI
d: "line3", start: 7, endElementId: "line2", end: 9 }); |
| 49 }); |
| 47 </script> | 50 </script> |
| OLD | NEW |