| OLD | NEW |
| 1 var counter = 0; | 1 var counter = 0; |
| 2 var tests = 8; | 2 var tests = 8; |
| 3 var expected = ""; | 3 var expected = ""; |
| 4 var logEvent = false; | 4 var logEvent = false; |
| 5 var rectElement = document.getElementById("target"); | 5 var rectElement = document.getElementById("target"); |
| 6 var useElement = document.getElementById("test"); | 6 var useElement = document.getElementById("test"); |
| 7 window.testIsAsync = true; | 7 window.testIsAsync = true; |
| 8 description("Test attaching event listeners on SVG use elements in different way
s: "); | 8 description("Test attaching event listeners on SVG use elements in different way
s: "); |
| 9 | 9 |
| 10 function eventHandler(evt) | 10 function eventHandler(evt) |
| 11 { | 11 { |
| 12 if (logEvent) { | 12 if (logEvent) { |
| 13 if (expected == evt.type) | 13 if (expected == evt.type) |
| 14 debug("Test " + counter + " / " + tests + " PASSED"); | 14 debug("Test " + counter + " / " + tests + " PASSED"); |
| 15 else | 15 else |
| 16 debug("Test " + counter + " / " + tests + " FAILED (expected: '" + e
xpected + "' actual: '" + evt.type + "')"); | 16 debug("Test " + counter + " / " + tests + " FAILED (expected: '" + e
xpected + "' actual: '" + evt.type + "')"); |
| 17 } | 17 } |
| 18 | 18 |
| 19 setTimeout(counter < tests ? driveTests : finishTest, 0); | 19 setTimeout(counter < tests ? driveTests : finishTest, 0); |
| 20 } | 20 } |
| 21 | 21 |
| 22 function finishTest() | 22 function finishTest() |
| 23 { | 23 { |
| 24 successfullyParsed = true; | 24 successfullyParsed = true; |
| 25 | 25 |
| 26 useElement.instanceRoot.correspondingElement.setAttribute("fill", "green"); | 26 rectElement.setAttribute("fill", "green"); |
| 27 shouldBeTrue("successfullyParsed"); | 27 shouldBeTrue("successfullyParsed"); |
| 28 debug('<br /><span class="pass">TEST COMPLETE</span>'); | 28 debug('<br /><span class="pass">TEST COMPLETE</span>'); |
| 29 | 29 |
| 30 finishRepaintTest(); | 30 finishRepaintTest(); |
| 31 } | 31 } |
| 32 | 32 |
| 33 function recordMouseEvent(type) | 33 function recordMouseEvent(type) |
| 34 { | 34 { |
| 35 expected = type; | 35 expected = type; |
| 36 logEvent = true; | 36 logEvent = true; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 59 } else if (expected == "mousedown") { | 59 } else if (expected == "mousedown") { |
| 60 eventSender.mouseMoveTo(50, 50); | 60 eventSender.mouseMoveTo(50, 50); |
| 61 eventSender.mouseDown(); | 61 eventSender.mouseDown(); |
| 62 eventSender.mouseUp(); | 62 eventSender.mouseUp(); |
| 63 } | 63 } |
| 64 } | 64 } |
| 65 | 65 |
| 66 function testOne() | 66 function testOne() |
| 67 { | 67 { |
| 68 // Install event listener on correspondingElement via setAttribute | 68 // Install event listener on correspondingElement via setAttribute |
| 69 useElement.instanceRoot.correspondingElement.setAttribute("onmouseover", "ev
entHandler(evt)"); | 69 shadowRoot.firstChild.setAttribute("onmouseover", "eventHandler(evt)"); |
| 70 recordMouseEvent("mouseover"); | 70 recordMouseEvent("mouseover"); |
| 71 } | 71 } |
| 72 | 72 |
| 73 function testTwo() | 73 function testTwo() |
| 74 { | 74 { |
| 75 // Install event listener on correspondingElement via onmouseout JS magic | 75 // Install event listener on correspondingElement via onmouseout JS magic |
| 76 useElement.instanceRoot.correspondingElement.onmouseout = eventHandler; | 76 shadowRoot.firstChild.onmouseout = eventHandler; |
| 77 recordMouseEvent("mouseout"); | 77 recordMouseEvent("mouseout"); |
| 78 } | 78 } |
| 79 | 79 |
| 80 function testThree() | 80 function testThree() |
| 81 { | 81 { |
| 82 // Clean event listeners on different ways | 82 // Clean event listeners on different ways |
| 83 useElement.instanceRoot.correspondingElement.removeAttribute("onmouseover"); | 83 shadowRoot.firstChild.removeAttribute("onmouseover"); |
| 84 useElement.instanceRoot.correspondingElement.onmouseout = 0; | 84 shadowRoot.firstChild.onmouseout = 0; |
| 85 | 85 |
| 86 // Verify they really got removed | 86 // Verify they really got removed |
| 87 sendMouseEvent("mouseover"); | 87 sendMouseEvent("mouseover"); |
| 88 sendMouseEvent("mouseout"); | 88 sendMouseEvent("mouseout"); |
| 89 | 89 |
| 90 // Verify the original listener still works | 90 // Verify the original listener still works |
| 91 recordMouseEvent("mousedown"); | 91 recordMouseEvent("mousedown"); |
| 92 } | 92 } |
| 93 | 93 |
| 94 function testFour() | 94 function testFour() |
| 95 { | 95 { |
| 96 useElement.instanceRoot.correspondingElement.removeAttribute("onmousedown"); | 96 shadowRoot.firstChild.removeAttribute("onmousedown"); |
| 97 | 97 |
| 98 // Install event listener on the referenced element, without using the SVGEl
ementInstance interface | 98 // Install event listener on the referenced element, without using the SVGEl
ementInstance interface |
| 99 rectElement.setAttribute("onmouseup", "eventHandler(evt)"); | 99 rectElement.setAttribute("onmouseup", "eventHandler(evt)"); |
| 100 recordMouseEvent("mouseup"); | 100 recordMouseEvent("mouseup"); |
| 101 } | 101 } |
| 102 | 102 |
| 103 function testFive() | 103 function testFive() |
| 104 { | 104 { |
| 105 rectElement.onmouseout = eventHandler; | 105 rectElement.onmouseout = eventHandler; |
| 106 recordMouseEvent("mouseout"); | 106 recordMouseEvent("mouseout"); |
| 107 } | 107 } |
| 108 | 108 |
| 109 function testSix() | 109 function testSix() |
| 110 { | 110 { |
| 111 useElement.instanceRoot.correspondingElement.onmouseout = null; | 111 shadowRoot.firstChild.onmouseout = null; |
| 112 sendMouseEvent("mouseout"); | 112 sendMouseEvent("mouseout"); |
| 113 | 113 |
| 114 useElement.instanceRoot.correspondingElement.removeAttribute('onmouseup'); | 114 shadowRoot.firstChild.removeAttribute('onmouseup'); |
| 115 sendMouseEvent("mouseup"); | 115 sendMouseEvent("mouseup"); |
| 116 | 116 |
| 117 useElement.instanceRoot.correspondingElement.onmouseup = eventHandler; | 117 shadowRoot.firstChild.onmouseup = eventHandler; |
| 118 recordMouseEvent("mouseup"); | 118 recordMouseEvent("mouseup"); |
| 119 } | 119 } |
| 120 | 120 |
| 121 function testSeven() | 121 function testSeven() |
| 122 { | 122 { |
| 123 useElement.instanceRoot.addEventListener("mouseout", eventHandler, false); | 123 shadowRoot.firstChild.addEventListener("mouseout", eventHandler, false); |
| 124 recordMouseEvent("mouseout"); | 124 recordMouseEvent("mouseout"); |
| 125 } | 125 } |
| 126 | 126 |
| 127 function testEight() | 127 function testEight() |
| 128 { | 128 { |
| 129 useElement.instanceRoot.correspondingElement.addEventListener("mouseover", e
ventHandler, false); | 129 shadowRoot.firstChild.addEventListener("mouseover", eventHandler, false); |
| 130 recordMouseEvent("mouseover"); | 130 recordMouseEvent("mouseover"); |
| 131 } | 131 } |
| 132 | 132 |
| 133 function testNine() | 133 function testNine() |
| 134 { | 134 { |
| 135 rectElement.addEventListener("mousedown", eventHandler, false); | 135 rectElement.addEventListener("mousedown", eventHandler, false); |
| 136 recordMouseEvent("mousedown"); | 136 recordMouseEvent("mousedown"); |
| 137 } | 137 } |
| 138 | 138 |
| 139 function driveTests() | 139 function driveTests() |
| (...skipping 25 matching lines...) Expand all Loading... |
| 165 break; | 165 break; |
| 166 } | 166 } |
| 167 } | 167 } |
| 168 | 168 |
| 169 function repaintTest() { | 169 function repaintTest() { |
| 170 if (window.eventSender) | 170 if (window.eventSender) |
| 171 driveTests(); | 171 driveTests(); |
| 172 else | 172 else |
| 173 alert("This test must be run via DRT!"); | 173 alert("This test must be run via DRT!"); |
| 174 } | 174 } |
| OLD | NEW |