Increase code coverage for RenderLayer::hitTestLayer.
Add tests for the NormalFlowChildren and transforms code paths.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/926823004
diff --git a/sky/engine/core/rendering/RenderLayer.cpp b/sky/engine/core/rendering/RenderLayer.cpp
index a3e8e8e..65aea49 100644
--- a/sky/engine/core/rendering/RenderLayer.cpp
+++ b/sky/engine/core/rendering/RenderLayer.cpp
@@ -996,7 +996,6 @@
}
// Now check our overflow objects.
- // TODO(ojan): This call has no test coverage.
hitLayer = hitTestChildren(NormalFlowChildren, rootLayer, request, result, hitTestRect, hitTestLocation,
localTransformState.get(), zOffsetForDescendantsPtr, zOffset, unflattenedTransformState.get(), depthSortDescendants);
if (hitLayer) {
diff --git a/sky/tests/layout/document-elementFromPoint-expected.txt b/sky/tests/layout/document-elementFromPoint-expected.txt
index 0553acd..4b5899b 100644
--- a/sky/tests/layout/document-elementFromPoint-expected.txt
+++ b/sky/tests/layout/document-elementFromPoint-expected.txt
@@ -2,7 +2,9 @@
CONSOLE: PASS: should hit test
CONSOLE: PASS: should hit test child and parent
CONSOLE: PASS: should hit test child with layered parent
+CONSOLE: PASS: should hit test transformed child
+CONSOLE: PASS: should hit test canvas
CONSOLE:
-CONSOLE: All 3 tests passed.
+CONSOLE: All 5 tests passed.
CONSOLE: unittest-suite-success
DONE
diff --git a/sky/tests/layout/document-elementFromPoint.sky b/sky/tests/layout/document-elementFromPoint.sky
index b08d00a..68c0125 100644
--- a/sky/tests/layout/document-elementFromPoint.sky
+++ b/sky/tests/layout/document-elementFromPoint.sky
@@ -4,11 +4,13 @@
bar { width: 100px; height: 100px; background: purple; }
parent { display: paragraph; }
child { background: salmon; }
+canvas { height: 50px; background-color: pink; }
</style>
<foo /><bar />
<parent>
<child>Foo bar</child>
</parent>
+<canvas />
<script>
import "../resources/third_party/unittest/unittest.dart";
import "../resources/unit.dart";
@@ -48,6 +50,16 @@
document.querySelector('parent').style.setProperty("transform", "translate3d(0, 0, 0)");
hitTestWithChildren();
});
+
+ test("should hit test transformed child", () {
+ document.querySelector('child').style.setProperty("transform", "translate3d(100px, 0, 0)");
+ expect(document.elementFromPoint(50, 210).tagName, equals('parent'));
+ expect(document.elementFromPoint(150, 210).tagName, equals('child'));
+ });
+
+ test("should hit test canvas", () {
+ expect(document.elementFromPoint(50, 310).tagName, equals('canvas'));
+ });
}
</script>
</sky>