blob: c55604abca09b984a0f16243064695adea801a25 [file] [log] [blame]
<!-- quirks mode -->
<script src="../../resources/js-test.js"></script>
<style>
#sandbox div { width: 30px; height: 30px; }
#sandbox > div { outline: 1px solid black; display: inline-block }
#sandbox a { display: block; width: 30px; height: 30px; }
#t1 > div, #t2 > div, #t3 > div, #t4 > div, #t5 > div, #t6 > div { background-color: green }
#t1 :hover,
#t2 :active,
#t3 :hover:active,
#t4 *:hover,
#t5 *:active,
#t6 *:active:hover {
background-color: red;
}
#t7 :not(:hover),
#t8 :not(:active),
#t9 :hover:not(:active),
#t10 :not(:active):hover,
#t11 :active:not(:hover),
#t12 :not(:hover):active,
:hover#t13,
:hover.t14,
:hover[t15],
#t16:hover,
.t17:hover,
[t18]:hover,
#t19 :hover,
:active#t20,
:active.t21,
:active[t22],
#t23:active,
.t24:active,
[t25]:active,
#t26 :active {
background-color: green
}
</style>
<div id="sandbox">
<span>Should stay green when hovered and/or active:</span>
<div id="t1"><div></div></div>
<div id="t2"><div></div></div>
<div id="t3"><div></div></div>
<div id="t4"><div></div></div>
<div id="t5"><div onclick=""></div></div>
<div id="t6"><div></div></div>
<br><span>Should be green when not hovered:</span>
<div id="t7"><div></div></div>
<br><span>Should be green when not active:</span>
<div id="t8"><div></div></div>
<br><span>Should be green when hovered and not active:</span>
<div id="t9"><div></div></div>
<div id="t10"><div></div></div>
<br><span>Should be green when active and not hovered:</span>
<div id="t11"><div onclick=""></div></div>
<div id="t12"><div onclick=""></div></div>
<br><span>Should be green when hovered:</span>
<div id="t13"></div>
<div id="t14" class="t14"></div>
<div id="t15" t15></div>
<div id="t16"></div>
<div id="t17" class="t17"></div>
<div id="t18" t18></div>
<div id="t19"><a href="#" onclick="event.preventDefault()"></a></div>
<br><span>Should be green when active:</span>
<div id="t20" onclick=""></div>
<div id="t21" onclick="" class="t21"></div>
<div id="t22" onclick="" t22></div>
<div id="t23" onclick=""></div>
<div id="t24" onclick="" class="t24"></div>
<div id="t25" onclick="" t25></div>
<div id="t26"><a href="#" onclick="event.preventDefault()"></a></div>
</div>
<script>
description("Quirks mode - matching :hover and :active");
setPrintTestResultsLazily();
function testElement(element, whileHovering, whileActive) {
if (whileActive || whileHovering) {
hoverX = element.offsetLeft + 2;
hoverY = element.offsetTop + 2;
eventSender.mouseMoveTo(hoverX, hoverY);
if (whileActive) {
eventSender.mouseDown();
}
if (!whileHovering) {
eventSender.mouseMoveTo(1, 1);
}
var result = getComputedStyle(element).backgroundColor;
if (whileActive) {
eventSender.mouseUp();
if (!whileHovering) {
eventSender.mouseDown();
eventSender.mouseUp();
}
}
return result;
}
return getComputedStyle(element).backgroundColor;
}
shouldBeDefined("window.eventSender");
eventSender.dragMode = false;
var green = "rgb(0, 128, 0)";
shouldBe("testElement(t1.firstChild, true, false)", "green");
shouldBe("testElement(t2.firstChild, true, true)", "green");
shouldBe("testElement(t3.firstChild, true, true)", "green");
shouldBe("testElement(t4.firstChild, true, false)", "green");
shouldBe("testElement(t5.firstChild, true, true)", "green");
shouldBe("testElement(t6.firstChild, true, true)", "green");
shouldBe("testElement(t7.firstChild, false, false)", "green");
shouldBe("testElement(t8.firstChild, false, false)", "green");
shouldBe("testElement(t9.firstChild, true, false)", "green");
shouldBe("testElement(t10.firstChild, true, false)", "green");
shouldBe("testElement(t11.firstChild, false, true)", "green");
shouldBe("testElement(t12.firstChild, false, true)", "green");
shouldBe("testElement(t13, true, false)", "green");
shouldBe("testElement(t14, true, false)", "green");
shouldBe("testElement(t15, true, false)", "green");
shouldBe("testElement(t16, true, false)", "green");
shouldBe("testElement(t17, true, false)", "green");
shouldBe("testElement(t18, true, false)", "green");
shouldBe("testElement(t19.firstChild, true, false)", "green");
shouldBe("testElement(t20, true, true)", "green");
shouldBe("testElement(t21, true, true)", "green");
shouldBe("testElement(t22, true, true)", "green");
shouldBe("testElement(t23, true, true)", "green");
shouldBe("testElement(t24, true, true)", "green");
shouldBe("testElement(t25, true, true)", "green");
shouldBe("testElement(t26.firstChild, true, true)", "green");
</script>