| <!DOCTYPE html> |
| <html> |
| <head> |
| <style> |
| #div { |
| height: 100px; |
| width: 100px; |
| background: red; |
| } |
| </style> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body> |
| <div id="div"></div> |
| <dialog id="dialog"></dialog> |
| <dialog></dialog> |
| <script> |
| description('Test for bug 110952. Ensure that closed dialogs do not block mouse events. To test manually, click the red box. The test succeeds if the red box turns green.'); |
| |
| function clickOn(element) |
| { |
| if (!window.eventSender) |
| return; |
| |
| var absoluteTop = 0; |
| var absoluteLeft = 0; |
| for (var parentNode = element; parentNode; parentNode = parentNode.offsetParent) { |
| absoluteLeft += parentNode.offsetLeft; |
| absoluteTop += parentNode.offsetTop; |
| } |
| |
| var x = absoluteLeft + element.offsetWidth / 2; |
| var y = absoluteTop + element.offsetHeight / 2; |
| eventSender.mouseMoveTo(x, y); |
| eventSender.mouseDown(); |
| eventSender.mouseUp() |
| eventSender.mouseMoveTo(0, 0); |
| } |
| |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| dialog = document.getElementById('dialog'); |
| dialog.showModal(); |
| dialog.close(); |
| |
| div = document.getElementById('div'); |
| div.addEventListener('click', function(event) { |
| div.firedOn = true; |
| div.style.backgroundColor = 'green'; |
| }); |
| |
| clickOn(div); |
| |
| shouldBeTrue('div.firedOn'); |
| </script> |
| </body> |
| </html> |