| OLD | NEW |
| 1 if (!window.eventSender || !window.testRunner) { | 1 if (!window.eventSender || !window.testRunner) { |
| 2 alert('This test needs to be run in DRT, to get results!'); | 2 alert('This test needs to be run in DRT, to get results!'); |
| 3 } | 3 } |
| 4 | 4 |
| 5 var svgRoot = 0; | 5 var svgRoot = 0; |
| 6 | 6 |
| 7 // Map 'point' into absolute coordinates, usable for eventSender | 7 // Map 'point' into absolute coordinates, usable for eventSender |
| 8 function transformPoint(point, matrix) { | 8 function transformPoint(point, matrix) { |
| 9 return point.matrixTransform(matrix); | 9 return point.matrixTransform(matrix); |
| 10 } | 10 } |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 | 56 |
| 57 startPos = transformPoint(startPos, scaleMatrix); | 57 startPos = transformPoint(startPos, scaleMatrix); |
| 58 endPos = transformPoint(endPos, scaleMatrix); | 58 endPos = transformPoint(endPos, scaleMatrix); |
| 59 | 59 |
| 60 startExtent = transformRect(startExtent, scaleMatrix); | 60 startExtent = transformRect(startExtent, scaleMatrix); |
| 61 endExtent = transformRect(endExtent, scaleMatrix); | 61 endExtent = transformRect(endExtent, scaleMatrix); |
| 62 } | 62 } |
| 63 | 63 |
| 64 if (window.eventSender) { | 64 if (window.eventSender) { |
| 65 // Trigger 'partial glyph selection' code, by adjusting the end x positi
on by half glyph width | 65 // Trigger 'partial glyph selection' code, by adjusting the end x positi
on by half glyph width |
| 66 var xOld = endPos.x; | 66 var xOldStart = startPos.x; |
| 67 var xOldEnd = endPos.x; |
| 67 endPos.x -= endExtent.width / 2 - 1; | 68 endPos.x -= endExtent.width / 2 - 1; |
| 68 | 69 |
| 70 // Round the points "inwards" to avoid being affected by the truncation |
| 71 // taking place in eventSender.mouseMoveTo(...). |
| 72 startPos.x = Math.ceil(startPos.x); |
| 73 |
| 69 var absStartPos = toAbsoluteCoordinates(startPos, element); | 74 var absStartPos = toAbsoluteCoordinates(startPos, element); |
| 70 var absEndPos = toAbsoluteCoordinates(endPos, element); | 75 var absEndPos = toAbsoluteCoordinates(endPos, element); |
| 71 | 76 |
| 72 // Round the points "inwards" to avoid being affected by the truncation | |
| 73 // taking place in eventSender.mouseMoveTo(...). | |
| 74 absStartPos.x = Math.ceil(absStartPos.x); | |
| 75 absEndPos.x = Math.floor(absEndPos.x); | |
| 76 | |
| 77 // Move to selection origin and hold down mouse | 77 // Move to selection origin and hold down mouse |
| 78 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y); | 78 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y); |
| 79 eventSender.mouseDown(); | 79 eventSender.mouseDown(); |
| 80 | 80 |
| 81 // Move again to start selection | 81 // Move again to start selection |
| 82 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y); | 82 eventSender.mouseMoveTo(absStartPos.x, absStartPos.y); |
| 83 | 83 |
| 84 // Move to end location and release mouse | 84 // Move to end location and release mouse |
| 85 eventSender.mouseMoveTo(absEndPos.x, absEndPos.y); | 85 eventSender.mouseMoveTo(absEndPos.x, absEndPos.y); |
| 86 eventSender.mouseUp(); | 86 eventSender.mouseUp(); |
| 87 | 87 |
| 88 endPos.x = xOld; | 88 startPos.x = xOldStart; |
| 89 endPos.x = xOldEnd; |
| 89 } | 90 } |
| 90 | 91 |
| 91 // Mark start position using a green line | 92 // Mark start position using a green line |
| 92 var startLineElement = document.createElementNS("http://www.w3.org/2000/svg"
, "svg:line"); | 93 var startLineElement = document.createElementNS("http://www.w3.org/2000/svg"
, "svg:line"); |
| 93 startLineElement.setAttribute("x1", startPos.x); | 94 startLineElement.setAttribute("x1", startPos.x); |
| 94 startLineElement.setAttribute("y1", startExtent.y); | 95 startLineElement.setAttribute("y1", startExtent.y); |
| 95 startLineElement.setAttribute("x2", startPos.x); | 96 startLineElement.setAttribute("x2", startPos.x); |
| 96 startLineElement.setAttribute("y2", startExtent.height + 1); | 97 startLineElement.setAttribute("y2", startExtent.height + 1); |
| 97 startLineElement.setAttribute("stroke", "green"); | 98 startLineElement.setAttribute("stroke", "green"); |
| 98 document.getElementById("container").appendChild(startLineElement); | 99 document.getElementById("container").appendChild(startLineElement); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 122 var textElement = document.createElementNS("http://www.w3.org/2000/svg",
"svg:text"); | 123 var textElement = document.createElementNS("http://www.w3.org/2000/svg",
"svg:text"); |
| 123 textElement.setAttribute("x", "0"); | 124 textElement.setAttribute("x", "0"); |
| 124 textElement.setAttribute("y", "35"); | 125 textElement.setAttribute("y", "35"); |
| 125 textElement.setAttribute("fill", "red"); | 126 textElement.setAttribute("fill", "red"); |
| 126 textElement.setAttribute("transform", "scale(0.5)"); | 127 textElement.setAttribute("transform", "scale(0.5)"); |
| 127 textElement.setAttribute("font-size", "8"); | 128 textElement.setAttribute("font-size", "8"); |
| 128 textElement.textContent = "Expected '" + expectedText + "' to be selecte
d, got: '" + actualText + "'"; | 129 textElement.textContent = "Expected '" + expectedText + "' to be selecte
d, got: '" + actualText + "'"; |
| 129 document.getElementById("container").appendChild(textElement); | 130 document.getElementById("container").appendChild(textElement); |
| 130 } | 131 } |
| 131 } | 132 } |
| OLD | NEW |