Bug 1313753 - Test case for correctness of visible regions of preserve-3d. r=mattwoodrow
authorThinker K.F. Li <thinker@codemud.net>
Thu, 16 Feb 2017 22:52:00 -0500
changeset 343608 28f9476b0dc32e087f651cbcd428f5382b52fd14
parent 343607 fb7e5fc472624a04ace2d8a6dc9cf08ffb61b24e
child 343609 40a559d547319034db251ca2a98dc0a8004ad592
push id31382
push userkwierso@gmail.com
push dateFri, 17 Feb 2017 21:41:52 +0000
treeherdermozilla-central@0930fdc4cf8e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmattwoodrow
bugs1313753
milestone54.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1313753 - Test case for correctness of visible regions of preserve-3d. r=mattwoodrow
dom/tests/mochitest/general/mochitest.ini
dom/tests/mochitest/general/test_bug1313753.html
--- a/dom/tests/mochitest/general/mochitest.ini
+++ b/dom/tests/mochitest/general/mochitest.ini
@@ -69,16 +69,17 @@ skip-if = (toolkit == 'android') # Disab
 subsuite = clipboard
 [test_bug1012662_noeditor.html]
 subsuite = clipboard
 skip-if = (toolkit == 'android') # Disabled on Android, see bug 1230231
 [test_bug1161721.html]
 [test_bug1170911.html]
 subsuite = clipboard
 [test_bug1208217.html]
+[test_bug1313753.html]
 [test_clientRects.html]
 [test_clipboard_disallowed.html]
 [test_clipboard_events.html]
 subsuite = clipboard
 [test_consoleAPI.html]
 [test_contentViewer_overrideDPPX.html]
 [test_DOMMatrix.html]
 [test_domWindowUtils.html]
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/general/test_bug1313753.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Test for bug 1313753</title>
+<script type="application/javascript"
+        src="/tests/SimpleTest/SimpleTest.js"></script>
+<div id="log"></div>
+<script>
+function runTest() {
+    // Change visible region of |closure| element.
+    document.getElementById("target").classList.add("rotate");
+    window.setTimeout(function() {
+	var target = document.getElementById("target");
+	var bounds = target.getBoundingClientRect();
+	var x = bounds.x + bounds.width / 2;
+	var y = bounds.y + bounds.height / 2;
+	is(document.elementFromPoint(x, y).id, target.id,
+	  "it should be |target| element if visible regions of closure is correct");
+	SimpleTest.finish();
+    }, 0);
+}
+
+SimpleTest.waitForExplicitFinish();
+SimpleTest.waitForFocus(runTest);
+</script>
+
+<style>
+.panel {
+    transform: rotateX(-150deg);
+    backface-visibility: hidden;
+    transform-origin: 0px 0px;
+    position: absolute;
+    display: block;
+    width: 100px;
+    height: 100px;
+    background-color: green;
+}
+#closure .rotate {
+    transform: rotateX(0deg);
+}
+#closure {
+    perspective: 100px;
+    width: 200px;
+    z-index: 1;
+}
+#outer {
+    height: 400px;
+    width: 200px;
+}
+</style>
+<div id="outer">
+  <div id="closure">
+    <div style="transform-style: preserve-3d;">
+	<div style="transform-style: preserve-3d; background-color: blue;">
+	  <ul>
+	    <li><div id="target" class="panel"></div>
+	    </li>
+	  </ul>
+	</div>
+    </div>
+  </div>
+</div>