OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <html> |
| 3 <head> |
| 4 <script src="../../../resources/testharness.js"></script> |
| 5 <script src="../../../resources/testharnessreport.js"></script> |
| 6 </head> |
| 7 <body> |
| 8 <a inert id="a" href="javascript:void(0)">Click me</a> |
| 9 <button inert id="button">Click me</button> |
| 10 <div inert id="div" style="background-color: blue; width: 50px; height: 50px">Cl
ick meeee</div> |
| 11 <span inert id="span">Click me</span> |
| 12 <script> |
| 13 function clickOn(element) |
| 14 { |
| 15 if (!window.eventSender) |
| 16 return; |
| 17 |
| 18 var absoluteTop = 0; |
| 19 var absoluteLeft = 0; |
| 20 for (var parentNode = element; parentNode; parentNode = parentNode.offsetPar
ent) { |
| 21 absoluteLeft += parentNode.offsetLeft; |
| 22 absoluteTop += parentNode.offsetTop; |
| 23 } |
| 24 |
| 25 var x = absoluteLeft + element.offsetWidth / 2; |
| 26 var y = absoluteTop + element.offsetHeight / 2; |
| 27 eventSender.mouseMoveTo(x, y); |
| 28 eventSender.mouseDown(); |
| 29 eventSender.mouseUp(); |
| 30 eventSender.mouseMoveTo(0, 0); |
| 31 } |
| 32 |
| 33 function eventFiredOnInertElement(e) { |
| 34 e.target.style.background = 'red'; |
| 35 inertElementFiredOn = true; |
| 36 } |
| 37 |
| 38 inertElements = ['a', 'button', 'div', 'span'] |
| 39 inertElements.forEach(function(id) { |
| 40 element = document.getElementById(id); |
| 41 element.addEventListener('click', eventFiredOnInertElement); |
| 42 element.addEventListener('mousemove', eventFiredOnInertElement); |
| 43 }); |
| 44 |
| 45 document.addEventListener('click', function(e) { |
| 46 document.firedOn = true; |
| 47 }); |
| 48 |
| 49 test(function() { |
| 50 inertElements.forEach(function(id) { |
| 51 expectedTarget = document; |
| 52 element = document.getElementById(id); |
| 53 inertElementFiredOn = false; |
| 54 expectedTarget.firedOn = false; |
| 55 clickOn(element); |
| 56 assert_false(inertElementFiredOn, 'no event should be fired on ' + id); |
| 57 assert_true(expectedTarget.firedOn, 'event should be fired on document i
nstead of ' + id); |
| 58 }); |
| 59 }, 'Tests that inert inlines do not receive mouse events. ' + |
| 60 'To test manually, click on all the "Click me"s. The test ' + |
| 61 'fails if you see red.'); |
| 62 |
| 63 </script> |
| 64 </body> |
| 65 </html> |
OLD | NEW |