| OLD | NEW |
| 1 <?xml version="1.0"?> | 1 <?xml version="1.0"?> |
| 2 <!-- This a 1-1 copy of pointer-events-image.svg tests with the addition of -web
kit-transform --> | 2 <!-- This a 1-1 copy of pointer-events-image.svg tests with the addition of 'tra
nsform' --> |
| 3 <svg xmlns="http://www.w3.org/2000/svg" | 3 <svg xmlns="http://www.w3.org/2000/svg" |
| 4 xmlns:xlink="http://www.w3.org/1999/xlink" onload="fillTestContent()"> | 4 xmlns:xlink="http://www.w3.org/1999/xlink" onload="fillTestContent()"> |
| 5 <script type="text/javascript"> | 5 <script type="text/javascript"> |
| 6 <![CDATA[ | 6 <![CDATA[ |
| 7 | |
| 8 if (window.testRunner) | 7 if (window.testRunner) |
| 9 testRunner.waitUntilDone(); | 8 testRunner.waitUntilDone(); |
| 10 | 9 |
| 11 var visibleValues = [ 'visible', 'hidden' ]; | 10 var visibleValues = [ 'visible', 'hidden' ]; |
| 12 var fillValues = ['none', 'orange' ]; | 11 var fillValues = ['none', 'orange' ]; |
| 13 var strokeValues = ['none', 'blue' ]; | 12 var strokeValues = ['none', 'blue' ]; |
| 14 | 13 |
| 15 var pointerEventsValues = ['auto', 'visiblePainted', 'visibleFill', 'visible
Stroke', 'visible', 'painted', 'fill', 'stroke', 'all', 'none']; | 14 var pointerEventsValues = ['auto', 'visiblePainted', 'visibleFill', 'visible
Stroke', 'visible', 'painted', 'fill', 'stroke', 'all', 'none']; |
| 16 | 15 |
| 16 var pendingClicks = []; |
| 17 function queueClick(x, y) { |
| 18 pendingClicks.push({ x: x, y: y }); |
| 19 } |
| 20 |
| 21 function performClick(x, y) { |
| 22 if (!window.eventSender) |
| 23 return; |
| 24 eventSender.mouseMoveTo(x, y); |
| 25 eventSender.mouseDown(); |
| 26 eventSender.mouseUp(); |
| 27 } |
| 28 |
| 29 var totalImages = visibleValues.length * fillValues.length * strokeValues.le
ngth * pointerEventsValues.length; |
| 30 var imagesLoaded = 0; |
| 31 |
| 32 function imageLoaded() { |
| 33 // Wait for all images to load, then issue all pending clicks. |
| 34 if (++imagesLoaded < totalImages) |
| 35 return; |
| 36 for (let point of pendingClicks) |
| 37 performClick(point.x, point.y); |
| 38 if (window.testRunner) |
| 39 testRunner.notifyDone(); |
| 40 } |
| 41 |
| 42 var svgNS = "http://www.w3.org/2000/svg"; |
| 43 |
| 44 function attachTestImage(container, xOffset, yOffset, attributes) { |
| 45 var fillText = document.createElementNS(svgNS, 'text'); |
| 46 fillText.setAttribute('x', xOffset + 5); |
| 47 fillText.setAttribute('y', yOffset + 20); |
| 48 fillText.textContent = "miss"; |
| 49 fillText.setAttribute('pointer-events', 'none'); |
| 50 |
| 51 var img = document.createElementNS(svgNS, 'image'); |
| 52 img.setAttributeNS("http://www.w3.org/1999/xlink", 'href', 'resources/red-
checker.png'); |
| 53 img.setAttribute('x', xOffset / 2); |
| 54 img.setAttribute('y', yOffset / 2); |
| 55 img.setAttribute('width', 25); |
| 56 img.setAttribute('height', 25); |
| 57 img.setAttribute('visibility', attributes.visibility); |
| 58 img.setAttribute('fill', attributes.fill); |
| 59 img.setAttribute('stroke', attributes.stroke); |
| 60 img.setAttribute('pointer-events', attributes.pointerEvents); |
| 61 img.setAttribute('style', "transform: scale(2)"); |
| 62 img.onload = imageLoaded; |
| 63 img.onclick = function() { fillText.textContent = 'HIT'; }; |
| 64 |
| 65 container.appendChild(img); |
| 66 container.appendChild(fillText); |
| 67 } |
| 68 |
| 17 var leftEdge = 100; | 69 var leftEdge = 100; |
| 18 var topEdge = 30; | 70 var topEdge = 30; |
| 19 | 71 |
| 20 var rectSpacing = 57; | 72 var rectSpacing = 57; |
| 21 | 73 |
| 22 var svgNS = "http://www.w3.org/2000/svg"; | 74 function fillTestContent() { |
| 23 | |
| 24 function clickHit(event, identifierString) { | |
| 25 var fillText = document.getElementById('fill-text' + identifierString); | |
| 26 fillText.textContent = 'HIT'; | |
| 27 } | |
| 28 | |
| 29 function fillTestContent() { | |
| 30 var xOffset = leftEdge; | 75 var xOffset = leftEdge; |
| 31 var yOffset = topEdge; | 76 var yOffset = topEdge; |
| 32 | 77 |
| 33 var testContent = document.getElementById("test-content"); | 78 var testContent = document.getElementById("test-content"); |
| 34 | 79 |
| 35 for (var pi = 0; pi < pointerEventsValues.length; pi++) { | 80 for (var pi = 0; pi < pointerEventsValues.length; pi++) { |
| 36 var eventLabel = document.createElementNS(svgNS, 'text'); | 81 var eventLabel = document.createElementNS(svgNS, 'text'); |
| 37 eventLabel.setAttribute('x', 0); | 82 eventLabel.setAttribute('x', 0); |
| 38 eventLabel.setAttribute('y', yOffset + 30); | 83 eventLabel.setAttribute('y', yOffset + 30); |
| 39 eventLabel.textContent = pointerEventsValues[pi]; | 84 eventLabel.textContent = pointerEventsValues[pi]; |
| 40 testContent.appendChild(eventLabel); | 85 testContent.appendChild(eventLabel); |
| 41 | 86 |
| 42 for (var vi = 0; vi < visibleValues.length; vi++) { | 87 for (var vi = 0; vi < visibleValues.length; vi++) { |
| 43 for (var fi = 0; fi < fillValues.length; fi++) { | 88 for (var fi = 0; fi < fillValues.length; fi++) { |
| 44 for (var si = 0; si < strokeValues.length; si++) { | 89 for (var si = 0; si < strokeValues.length; si++) { |
| 45 | 90 attachTestImage(testContent, xOffset, yOffset, { |
| 46 var identString = "_" + pi + "_" + vi + "_" + fi + "_" + si; | 91 visibility: visibleValues[vi], |
| 47 | 92 fill: fillValues[fi], |
| 48 var img = document.createElementNS(svgNS, 'image'); | 93 stroke: strokeValues[si], |
| 49 img.setAttributeNS("http://www.w3.org/1999/xlink", 'href', 'resour
ces/red-checker.png'); | 94 pointerEvents: pointerEventsValues[pi] |
| 50 img.setAttribute('x', xOffset/2); | 95 }); |
| 51 img.setAttribute('y', yOffset/2); | 96 queueClick(xOffset + 30, yOffset + 30); |
| 52 img.setAttribute('width', 25); | |
| 53 img.setAttribute('height', 25); | |
| 54 img.setAttribute('visibility', visibleValues[vi]); | |
| 55 img.setAttribute('fill', fillValues[fi]); | |
| 56 img.setAttribute('stroke', strokeValues[si]); | |
| 57 img.setAttribute('pointer-events', pointerEventsValues[pi]); | |
| 58 img.setAttribute('style', "transform: scale(2)"); | |
| 59 img.setAttribute('onclick', 'clickHit(evt, "' + identString + '")'
); | |
| 60 | |
| 61 testContent.appendChild(img); | |
| 62 | |
| 63 var fillText = document.createElementNS(svgNS, 'text'); | |
| 64 fillText.setAttribute('x', xOffset + 5); | |
| 65 fillText.setAttribute('y', yOffset + 20); | |
| 66 fillText.textContent = "miss"; | |
| 67 fillText.setAttribute('id', 'fill-text' + identString); | |
| 68 fillText.setAttribute('pointer-events', 'none'); | |
| 69 testContent.appendChild(fillText); | |
| 70 | |
| 71 if (window.eventSender) { | |
| 72 // Fill click | |
| 73 eventSender.mouseMoveTo(xOffset + 30, yOffset + 30); | |
| 74 eventSender.mouseDown(); | |
| 75 eventSender.mouseUp(); | |
| 76 } | |
| 77 xOffset += rectSpacing; | 97 xOffset += rectSpacing; |
| 78 } | 98 } |
| 79 } | 99 } |
| 80 } | 100 } |
| 81 xOffset = leftEdge; | 101 xOffset = leftEdge; |
| 82 yOffset += rectSpacing; | 102 yOffset += rectSpacing; |
| 83 } | 103 } |
| 84 | |
| 85 if (window.testRunner) | |
| 86 testRunner.notifyDone(); | |
| 87 } | 104 } |
| 88 ]]> | 105 ]]> |
| 89 </script> | 106 </script> |
| 90 | 107 |
| 91 <text x="110" y="20">Visibility: visible</text> | 108 <text x="110" y="20">Visibility: visible</text> |
| 92 <text x="340" y="20">Visibility: hidden</text> | 109 <text x="340" y="20">Visibility: hidden</text> |
| 93 <g id="test-content"/> | 110 <g id="test-content"/> |
| 94 </svg> | 111 </svg> |
| OLD | NEW |