| 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..9b843e2e867ef30defbf34319fd36a3f22875349
|
| --- /dev/null
|
| +++ b/LayoutTests/svg/text/select-svg-text-with-collapsed-whitespace.html
|
| @@ -0,0 +1,76 @@
|
| +<!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="150">
|
| + <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>
|
| +</svg>
|
| +<div id="passfail">
|
| +</div>
|
| +<script src="../../resources/js-test.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');
|
| +
|
| + if (!window.testRunner)
|
| + return;
|
| +
|
| + var textWidth1 = text1.offsetWidth;
|
| + var estCharWidth1 = textWidth1 / 18;
|
| + eventSender.mouseMoveTo(text1.offsetLeft + 2, text1.offsetTop);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(text1.offsetLeft + (estCharWidth1 * 3) + 2, text1.offsetTop);
|
| + eventSender.mouseUp();
|
| + verify("5", "8");
|
| + eventSender.mouseMoveTo(text1.offsetLeft + 2, text1.offsetTop);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(text1.offsetLeft + (estCharWidth1 * 4) + 2, text1.offsetTop);
|
| + eventSender.mouseUp();
|
| + verify("5", "9");
|
| +
|
| + var tspan1 = document.getElementById('tspan1');
|
| + var textWidth2 = tspan1.offsetWidth;
|
| + var estCharWidth2 = textWidth2 / 5;
|
| + eventSender.mouseMoveTo(text2.offsetLeft + 2, text2.offsetTop);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(text2.offsetLeft + (estCharWidth2 * 4) + 2, text2.offsetTop);
|
| + eventSender.mouseUp();
|
| + verify("0", "4");
|
| + eventSender.mouseMoveTo(text2.offsetLeft + 2, text2.offsetTop);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(text2.offsetLeft + (estCharWidth2 * 5) + (estCharWidth1 * 4) + 2, text2.offsetTop);
|
| + eventSender.mouseUp();
|
| + verify("0", "14");
|
| +
|
| + var tspan2 = document.getElementById('tspan2');
|
| + var textWidth3 = tspan2.offsetWidth;
|
| + var estCharWidth3 = textWidth3 / 5;
|
| + eventSender.mouseMoveTo(text3.offsetLeft + 2, text3.offsetTop + 10);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(text3.offsetLeft + (estCharWidth3 * 4) + 2, text3.offsetTop + 10);
|
| + eventSender.mouseUp();
|
| + verify("0", "4");
|
| + eventSender.mouseMoveTo(text3.offsetLeft + 2, text3.offsetTop + 10);
|
| + eventSender.mouseDown();
|
| + eventSender.mouseMoveTo(text3.offsetLeft + (estCharWidth3 * 5) + (estCharWidth1 * 6) + 2, text3.offsetTop + 10);
|
| + eventSender.mouseUp();
|
| + verify("0", "15");
|
| +}
|
| +
|
| +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>
|
|
|