Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!DOCTYPE html> | |
| 2 <html> | |
| 3 <head> | |
|
ojan
2014/04/10 01:50:56
We don't typically include the html, head and body
pals
2014/04/10 12:35:33
Done.
| |
| 4 <style> | |
| 5 #shadow | |
| 6 { | |
| 7 overflow: hidden; | |
| 8 position: absolute; | |
| 9 box-shadow: 0 0 50px #000; | |
| 10 height: 100px; | |
| 11 width: 100px; | |
| 12 } | |
| 13 #content | |
| 14 { | |
| 15 padding-top: 20px; | |
| 16 padding-left: 20px; | |
|
ojan
2014/04/10 01:50:56
Are these paddings necessary for the test?
pals
2014/04/10 12:35:33
Not necessary. Removed.
Done.
| |
| 17 display: block; | |
| 18 height: 200px; | |
| 19 width: 200px; | |
| 20 background: rgba(0,255,0,0.3); | |
| 21 } | |
| 22 </style> | |
| 23 <script src="../../resources/js-test.js"></script> | |
| 24 <script> | |
| 25 if (window.testRunner) | |
| 26 testRunner.dumpAsText(); | |
| 27 | |
| 28 function click(x, y) | |
| 29 { | |
| 30 if (window.eventSender) { | |
| 31 eventSender.mouseMoveTo(x, y); | |
| 32 eventSender.mouseDown(); | |
| 33 eventSender.mouseUp(); | |
| 34 } | |
| 35 } | |
| 36 | |
| 37 var absoluteLeft = 0; | |
| 38 var absoluteTop = 0; | |
| 39 | |
| 40 function calculateAbsoluteLocation(element) | |
|
ojan
2014/04/10 01:50:56
You can just use element.getBoundingClientRect() f
pals
2014/04/10 12:35:33
Done.
| |
| 41 { | |
| 42 absoluteLeft = 0; | |
| 43 absoluteTop = 0; | |
| 44 for (var parentNode = element; parentNode; parentNode = parentNode.offsetPar ent) { | |
| 45 absoluteLeft += parentNode.offsetLeft; | |
|
ojan
2014/04/10 01:50:56
Please use 4 space indent consistently.
pals
2014/04/10 12:35:33
Done.
| |
| 46 absoluteTop += parentNode.offsetTop; | |
| 47 } | |
| 48 } | |
| 49 | |
| 50 function test(name, fn) | |
| 51 { | |
| 52 debug("<br>" + name); | |
| 53 fn(); | |
| 54 } | |
| 55 | |
| 56 description("This test checks that div block should not get events on clicking t he shadow outside div block."); | |
| 57 | |
| 58 function runTests() | |
| 59 { | |
| 60 | |
| 61 test("Focus should remain in the textarea", function() { | |
| 62 var textarea = document.getElementById("content"); | |
| 63 calculateAbsoluteLocation(textarea); | |
| 64 click(absoluteLeft + 5, absoluteTop + 5); | |
| 65 shouldBeEqualToString("document.activeElement.tagName", "TEXTAREA"); | |
| 66 }); | |
| 67 | |
| 68 test("Focus should move to the body", function() { | |
| 69 var shadow = document.getElementById("shadow"); | |
| 70 calculateAbsoluteLocation(shadow); | |
| 71 var x = absoluteLeft + shadow.offsetWidth + 5; | |
| 72 var y = absoluteTop + 5; | |
| 73 click(x, y); | |
| 74 shouldBeEqualToString("document.activeElement.tagName", "BODY"); | |
| 75 }); | |
| 76 | |
| 77 test("Focus should remain in the textarea", function() { | |
| 78 var textarea = document.getElementById("content"); | |
| 79 calculateAbsoluteLocation(textarea); | |
| 80 click(absoluteLeft + 5, absoluteTop + 5); | |
| 81 shouldBeEqualToString("document.activeElement.tagName", "TEXTAREA"); | |
| 82 }); | |
| 83 | |
| 84 test("Focus should move to the body", function() { | |
| 85 var shadow = document.getElementById("shadow"); | |
| 86 calculateAbsoluteLocation(shadow); | |
| 87 var x = absoluteLeft + 5; | |
| 88 var y = absoluteTop + shadow.offsetHeight + 5; | |
| 89 click(x, y); | |
| 90 shouldBeEqualToString("document.activeElement.tagName", "BODY"); | |
| 91 }); | |
| 92 | |
| 93 } | |
| 94 </script> | |
| 95 | |
| 96 </head> | |
| 97 <body onload="runTests();"> | |
| 98 <div id="shadow"> | |
| 99 <textarea id="content"></textarea> | |
| 100 </div> | |
| 101 </body> | |
| 102 </html> | |
| OLD | NEW |