| <!DOCTYPE html> |
| <style> |
| #shadow |
| { |
| overflow: hidden; |
| position: absolute; |
| box-shadow: 0 0 50px #000; |
| height: 100px; |
| width: 100px; |
| } |
| #content |
| { |
| display: block; |
| height: 200px; |
| width: 200px; |
| background: rgba(0,255,0,0.3); |
| } |
| </style> |
| <script src="../../resources/js-test.js"></script> |
| <script> |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| function click(x, y) |
| { |
| if (window.eventSender) { |
| eventSender.mouseMoveTo(x, y); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| } |
| } |
| |
| function test(name, fn) |
| { |
| debug("<br>" + name); |
| fn(); |
| } |
| |
| description("This test checks that div block should not get events on clicking the shadow outside div block."); |
| |
| function runTests() |
| { |
| |
| test("Focus should remain in the textarea", function() { |
| var textarea = document.getElementById("content"); |
| var rect = textarea.getBoundingClientRect(); |
| click(rect.left + 5, rect.top + 5); |
| shouldBeEqualToString("document.activeElement.tagName", "TEXTAREA"); |
| }); |
| |
| // Click on the shadow at right of the div block. |
| test("Focus should move to the body", function() { |
| var shadow = document.getElementById("shadow"); |
| var rect = shadow.getBoundingClientRect(); |
| var x = rect.left + shadow.offsetWidth + 5; |
| var y = rect.top + 5; |
| click(x, y); |
| shouldBeEqualToString("document.activeElement.tagName", "BODY"); |
| }); |
| |
| // Focus on the textarea to prepare for the next test. |
| test("Focus should remain in the textarea", function() { |
| var textarea = document.getElementById("content"); |
| var rect = textarea.getBoundingClientRect(); |
| click(rect.left + 5, rect.top + 5); |
| shouldBeEqualToString("document.activeElement.tagName", "TEXTAREA"); |
| }); |
| |
| // Click on the shadow at bottom of the div block. |
| test("Focus should move to the body", function() { |
| var shadow = document.getElementById("shadow"); |
| var rect = shadow.getBoundingClientRect(); |
| var x = rect.left + 5; |
| var y = rect.top + shadow.offsetHeight + 5; |
| click(x, y); |
| shouldBeEqualToString("document.activeElement.tagName", "BODY"); |
| }); |
| |
| } |
| </script> |
| |
| <body onload="runTests();"> |
| <div id="shadow"> |
| <textarea id="content"></textarea> |
| </div> |
| </body> |