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