summaryrefslogtreecommitdiffstats
path: root/layout/style/test/test_hover_quirk.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/style/test/test_hover_quirk.html')
-rw-r--r--layout/style/test/test_hover_quirk.html118
1 files changed, 118 insertions, 0 deletions
diff --git a/layout/style/test/test_hover_quirk.html b/layout/style/test/test_hover_quirk.html
new file mode 100644
index 0000000000..61e19f2a60
--- /dev/null
+++ b/layout/style/test/test_hover_quirk.html
@@ -0,0 +1,118 @@
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=783213
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for the :active and :hover quirk</title>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css">
+ <style type="text/css">
+ /* Should apply to all elements: */
+ #content :hover:first-of-type {
+ color: rgb(255, 0, 0);
+ }
+ #content :-moz-any(:hover) {
+ text-transform: lowercase;
+ }
+ #content :hover::after {
+ content: "any element";
+ }
+
+ #content :hover:first-of-type .child::after {
+ content: "any child";
+ }
+
+ #content .parent .child::after {
+ content: "wrong" !important;
+ }
+
+ #content .parent:hover .child::after {
+ content: "any child" !important;
+ }
+
+ /* Should apply only to links: */
+ #content :hover {
+ color: rgb(0, 255, 0) !important;
+ text-transform: uppercase !important;
+ }
+ #content :hover .child::after {
+ content: "link child" !important;
+ }
+
+ #dynamic-test {
+ width: 100px;
+ height: 100px;
+ background: green;
+ }
+
+ #dynamic-test > * {
+ width: 100%;
+ height: 100%;
+ background: red;
+ }
+
+ #dynamic-test:hover > * {
+ background: rgb(0, 255, 0);
+ }
+ </style>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script src="/tests/SimpleTest/EventUtils.js"></script>
+ <script type="application/javascript">
+ /** Test for the :active and :hover quirk **/
+ function test(element, isLink) {
+ if (!isLink)
+ var styles = {color: "rgb(255, 0, 0)", textTransform: "lowercase",
+ childContent: '"any child"'};
+ else
+ var styles = {color: "rgb(0, 255, 0)", textTransform: "uppercase",
+ childContent: '"link child"'};
+
+ // Trigger the :hover pseudo-class.
+ synthesizeMouseAtCenter(element, {type: "mousemove"});
+
+ var computedStyle = getComputedStyle(element);
+ is(computedStyle.color, styles.color, "Unexpected color value");
+ is(computedStyle.textTransform, styles.textTransform,
+ "Unexpected text-transform value");
+
+ computedStyle = getComputedStyle(element, "::after");
+ is(computedStyle.content, '"any element"',
+ "Unexpected pseudo-element content");
+
+ computedStyle = getComputedStyle(
+ element.getElementsByClassName("child")[0], "::after");
+ is(computedStyle.content, styles.childContent,
+ "Unexpected pseudo-element content for child");
+ }
+
+ SimpleTest.waitForExplicitFinish();
+ SimpleTest.waitForFocus(function() {
+ test(document.getElementById("span"), false);
+ test(document.getElementById("label"), false);
+ test(document.getElementById("link"), true);
+ test(document.getElementById("div"), false);
+ // Dynamic change test.
+ // Trigger the :hover pseudo-class.
+ synthesizeMouseAtCenter(document.getElementById('dynamic-test'), {type: "mousemove"});
+ is(getComputedStyle(document.getElementById('should-be-green-on-hover')).backgroundColor,
+ "rgb(0, 255, 0)",
+ "Dynamic change should invalidate properly");
+ SimpleTest.finish();
+ });
+ </script>
+</head>
+<body>
+ <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=783213">Mozilla Bug 783213</a>
+ <p id="display"></p>
+ <div id="dynamic-test">
+ <div id="should-be-green-on-hover"></div>
+ </div>
+ <div id="content">
+ <span id="span">Span<span class="child"></span></span><br>
+ <label id="label">Label<span class="child"></span></label><br>
+ <a id="link" href="#">Link<span class="child"></span></a><br>
+ <div id="div" class="parent">Div <span><span class="child"></span></span></div><br>
+ </div>
+ <pre id="test"></pre>
+</body>
+</html>