| <!DOCTYPE html> |
| <style> |
| div { background: rgb(0, 0, 0); } |
| div:active { background: rgb(0, 255, 0); } |
| div { |
| width: 200px; |
| height: 200px; |
| border: 2px solid rgb(0, 0, 255); |
| } |
| div span { |
| color: rgb(255, 255, 255); |
| } |
| div:active span { |
| color: rgb(255, 0, 0); |
| display: none; |
| } |
| </style> |
| |
| <div id="box"><span>Text in a span</span></div> |
| <pre id="description"></pre> |
| <pre id="console"></pre> |
| |
| <script src="../../resources/js-test.js"></script> |
| <script> |
| function shouldHaveBackground(element, bg) { |
| background = getComputedStyle(element, null).getPropertyValue("background-color"); |
| shouldBeEqualToString('background', bg); |
| } |
| |
| function shouldHaveTextColor(element, textColor) { |
| color = getComputedStyle(element, null).getPropertyValue("color"); |
| shouldBeEqualToString('color', textColor); |
| } |
| |
| description("Chain of active elements should be cleared, even if style :active sets display: none on the current active element"); |
| |
| if (window.testRunner) { |
| var box = document.getElementById('box'); |
| |
| 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(); |
| |
| var span = document.querySelector('span'); |
| var spanRect = span.getBoundingClientRect(); |
| // Move into the first box. |
| eventSender.mouseMoveTo(spanRect.left + 5, spanRect.top + 5); |
| eventSender.mouseDown(); |
| shouldHaveBackground(box, 'rgb(0, 255, 0)'); |
| eventSender.mouseUp(); |
| shouldHaveTextColor(span, 'rgb(255, 255, 255)'); |
| } |
| </script> |