| Index: LayoutTests/svg/text/select-svg-text-with-collapsed-whitespace.html
|
| diff --git a/LayoutTests/svg/text/select-svg-text-with-collapsed-whitespace.html b/LayoutTests/svg/text/select-svg-text-with-collapsed-whitespace.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e376729b999c316d60f0a2731160c39f856be9de
|
| --- /dev/null
|
| +++ b/LayoutTests/svg/text/select-svg-text-with-collapsed-whitespace.html
|
| @@ -0,0 +1,118 @@
|
| +<!DOCTYPE html>
|
| +<title>Test for selection with collapsed whitespace</title>
|
| +<body>
|
| +This test checks that characters can be selected correctly with collapsed whitespace.
|
| +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="300">
|
| + <text id="text1" x="20" y="20"> happy debugging !!</text>
|
| + <text id="text2" x="20" y="40"> <tspan id="tspan1" style="font-weight: bold;">happy</tspan> debugging !!</text>
|
| + <text id="text3" x="20" y="80"> <tspan id="tspan2" style="font-size: 25px;">happy</tspan> debugging !!</text>
|
| + <text id="text4" x="20" y="230" fill="black" transform="scale(0.5)" font-size="40"> happy debugging !!</text>
|
| +</svg>
|
| +<div id="passfail">
|
| +</div>
|
| +<script src="../../resources/js-test.js"></script>
|
| +<script src="resources/SelectionTestCase.js"></script>
|
| +<script type="text/javascript">
|
| +var range;
|
| +var a, b;
|
| +function runTest() {
|
| + var text1 = document.getElementById('text1');
|
| + var text2 = document.getElementById('text2');
|
| + var text3 = document.getElementById('text3');
|
| + var text4 = document.getElementById('text4');
|
| +
|
| + if (!window.testRunner)
|
| + return;
|
| +
|
| + var startPos = text1.getStartPositionOfChar(0);
|
| + var endPos = text1.getEndPositionOfChar(3);
|
| + var absStartPos = toAbsoluteCoordinates(startPos, text1);
|
| + var absEndPos = toAbsoluteCoordinates(endPos, text1);
|
| + eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
|
| + eventSender.mouseUp();
|
| + verify("5", "9");
|
| +
|
| + var startPos = text1.getStartPositionOfChar(0);
|
| + var endPos = text1.getEndPositionOfChar(8);
|
| + var absStartPos = toAbsoluteCoordinates(startPos, text1);
|
| + var absEndPos = toAbsoluteCoordinates(endPos, text1);
|
| + eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
|
| + eventSender.mouseUp();
|
| + verify("5", "24");
|
| +
|
| + var startPos = text2.getStartPositionOfChar(0);
|
| + var endPos = text2.getEndPositionOfChar(3);
|
| + var absStartPos = toAbsoluteCoordinates(startPos, text2);
|
| + var absEndPos = toAbsoluteCoordinates(endPos, text2);
|
| + eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
|
| + eventSender.mouseUp();
|
| + verify("0", "4");
|
| +
|
| + var startPos = text2.getStartPositionOfChar(0);
|
| + var endPos = text2.getEndPositionOfChar(8);
|
| + var absStartPos = toAbsoluteCoordinates(startPos, text2);
|
| + var absEndPos = toAbsoluteCoordinates(endPos, text2);
|
| + eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
|
| + eventSender.mouseUp();
|
| + verify("0", "14");
|
| +
|
| + var startPos = text3.getStartPositionOfChar(0);
|
| + var endPos = text3.getEndPositionOfChar(3);
|
| + var absStartPos = toAbsoluteCoordinates(startPos, text3);
|
| + var absEndPos = toAbsoluteCoordinates(endPos, text3);
|
| + eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
|
| + eventSender.mouseUp();
|
| + verify("0", "4");
|
| +
|
| + var startPos = text3.getStartPositionOfChar(0);
|
| + var endPos = text3.getEndPositionOfChar(10);
|
| + var absStartPos = toAbsoluteCoordinates(startPos, text3);
|
| + var absEndPos = toAbsoluteCoordinates(endPos, text3);
|
| + eventSender.mouseMoveTo(absStartPos.x, absStartPos.y);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(absEndPos.x, absEndPos.y);
|
| + eventSender.mouseUp();
|
| + verify("0", "15");
|
| +
|
| + var startPos = text4.getStartPositionOfChar(0);
|
| + var endPos = text4.getEndPositionOfChar(3);
|
| + var absStartPos = toAbsoluteCoordinates(startPos, text4);
|
| + var absEndPos = toAbsoluteCoordinates(endPos, text4);
|
| + eventSender.mouseMoveTo(absStartPos.x, absStartPos.y - 15);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(absEndPos.x, absEndPos.y - 15);
|
| + eventSender.mouseUp();
|
| + verify("5", "9");
|
| +
|
| + var startPos = text4.getStartPositionOfChar(0);
|
| + var endPos = text4.getEndPositionOfChar(8);
|
| + var absStartPos = toAbsoluteCoordinates(startPos, text4);
|
| + var absEndPos = toAbsoluteCoordinates(endPos, text4);
|
| + eventSender.mouseMoveTo(absStartPos.x, absStartPos.y - 15);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(absEndPos.x, absEndPos.y - 15);
|
| + eventSender.mouseUp();
|
| + verify("5", "24");
|
| +}
|
| +
|
| +function verify(start, end) {
|
| + range = window.getSelection().getRangeAt(0);
|
| + shouldBe("range.startOffset", start);
|
| + shouldBe("range.endOffset", end);
|
| + eventSender.mouseMoveTo(0,0);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseUp();
|
| +}
|
| +
|
| +runTest();
|
| +</script>
|
|
|