diff options
-rw-r--r-- | tests/wpt/mozilla/meta/MANIFEST.json | 6 | ||||
-rw-r--r-- | tests/wpt/mozilla/tests/mozilla/hit_test_nested_sc.html | 72 |
2 files changed, 78 insertions, 0 deletions
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 4f9e37cfa05..5dca9c4c09d 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -6756,6 +6756,12 @@ "url": "/_mozilla/mozilla/global.html" } ], + "mozilla/hit_test_nested_sc.html": [ + { + "path": "mozilla/hit_test_nested_sc.html", + "url": "/_mozilla/mozilla/hit_test_nested_sc.html" + } + ], "mozilla/hit_test_pos_fixed.html": [ { "path": "mozilla/hit_test_pos_fixed.html", diff --git a/tests/wpt/mozilla/tests/mozilla/hit_test_nested_sc.html b/tests/wpt/mozilla/tests/mozilla/hit_test_nested_sc.html new file mode 100644 index 00000000000..e5c1565ff19 --- /dev/null +++ b/tests/wpt/mozilla/tests/mozilla/hit_test_nested_sc.html @@ -0,0 +1,72 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Test: Hit testing works well with nested stacking contexts</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + .outer-sc { + transform: translate(-50px, -50px); + position: absolute; + width: 250px; + height: 250px; + top: 250px; + left: 250px; + background: blue; + } + + .outer-sc:hover { + background: red; + } + + .inner-sc { + transform: translate(50px, 50px); + position: absolute; + width: 250px; + height: 250px; + top: 250px; + left: 250px; + background: green; + } + + .inner-sc:hover { + background: yellow; + } + + html, body { margin: 0; padding: 0; } +</style> +<div class="outer-sc"> + <div class="inner-sc"> + </div> +</div> +<script> +async_test(function(t) { + window.onload = t.step_func(function() { + // This should be in the middle of the squares: + // +-------------+ + // | | + // | | + // | | + // | | + // | | + // +-------------+ + // . <-- here + // +-------------+ + // | | + // | | + // | | + // | | + // | | + // +-------------+ + // + // If we have forgotten to take into account the nested transformations, + // then it will report that the inner stacking context is at that point + // (but obviously shouldn't). + var points = document.elementsFromPoint(450 + 25, 450 + 25); + assert_true(points.length > 0, + "Should report at least one element"); + assert_true(points[0].className !== "inner-sc", + "Should not be the inner stacking context"); + t.done(); + }) +}) +</script> |