| <!DOCTYPE html> |
| <style> |
| div, textarea { background: rgb(0, 0, 0); } |
| div:hover, textarea:hover { background: rgb(255, 0, 0); } |
| div:hover:active, textarea:hover:active { background: rgb(255, 255, 0); } |
| div:active, textarea:active { background: rgb(0, 255, 0); } |
| div, textarea { |
| width: 100px; |
| height: 100px; |
| border: 2px solid rgb(0, 0, 255); |
| } |
| </style> |
| |
| <body> |
| <div id="box"></div> |
| <div id="box2"></div> |
| <textarea id="textarea"></textarea> |
| <pre id="description"></div> |
| <pre id="console"></pre> |
| </body> |
| |
| <script src="../../resources/js-test-pre.js"></script> |
| <script> |
| function shouldHaveBackground(element, bg) { |
| background = getComputedStyle(element, null).getPropertyValue("background-color") |
| shouldBeEqualToString('background', bg) |
| } |
| |
| if (window.testRunner) { |
| description("Dragging out of an element should cause it to lose :hover") |
| var box = document.getElementById('box') |
| var box2 = document.getElementById('box2') |
| testRunner.dumpAsText(); |
| |
| eventSender.dragMode = false; |
| // This mouse click seems to be required for WebKit's event handling to |
| // pick up the :hover class. See https://bugs.webkit.org/show_bug.cgi?id=74264 |
| eventSender.mouseDown() |
| eventSender.mouseUp() |
| |
| // Move into the first box. |
| eventSender.mouseMoveTo(50, 50) |
| shouldHaveBackground(box, 'rgb(255, 0, 0)') |
| shouldHaveBackground(box2, 'rgb(0, 0, 0)') |
| |
| eventSender.mouseDown() |
| shouldHaveBackground(box, 'rgb(255, 255, 0)') |
| shouldHaveBackground(box2, 'rgb(0, 0, 0)') |
| |
| // With the mouse still down, move into the second box. |
| eventSender.mouseMoveTo(50, 150) |
| shouldHaveBackground(box, 'rgb(0, 255, 0)') |
| shouldHaveBackground(box2, 'rgb(0, 0, 0)') |
| |
| // Mouse still down, move outside of both boxes. |
| eventSender.mouseMoveTo(400, 50) |
| shouldHaveBackground(box, 'rgb(0, 255, 0)') |
| shouldHaveBackground(box2, 'rgb(0, 0, 0)') |
| |
| eventSender.mouseUp() |
| shouldHaveBackground(box, 'rgb(0, 0, 0)') |
| shouldHaveBackground(box2, 'rgb(0, 0, 0)') |
| |
| // Move into the textarea. |
| eventSender.mouseMoveTo(50, 250) |
| shouldHaveBackground(textarea, 'rgb(255, 0, 0)') |
| |
| eventSender.mouseDown() |
| shouldHaveBackground(textarea, 'rgb(255, 255, 0)') |
| |
| eventSender.mouseMoveTo(400, 250) |
| shouldHaveBackground(textarea, 'rgb(0, 255, 0)') |
| |
| eventSender.mouseUp() |
| shouldHaveBackground(textarea, 'rgb(0, 0, 0)') |
| } |
| </script> |