summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fenced-frame/intersection-observer.https.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/fenced-frame/intersection-observer.https.html')
-rw-r--r--testing/web-platform/tests/fenced-frame/intersection-observer.https.html53
1 files changed, 53 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fenced-frame/intersection-observer.https.html b/testing/web-platform/tests/fenced-frame/intersection-observer.https.html
new file mode 100644
index 0000000000..592e7c127f
--- /dev/null
+++ b/testing/web-platform/tests/fenced-frame/intersection-observer.https.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<title>Test Intersection Observer in fenced frame</title>
+<script src="/common/rendering-utils.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/utils.js"></script>
+<script src="resources/utils.js"></script>
+<script src="/common/utils.js"></script>
+<style>
+fencedframe {
+ width: 100px;
+ height: 100px;
+ position: fixed;
+ top: 0px;
+ left: 0px;
+ border: unset;
+}
+</style>
+
+<body>
+<script>
+promise_test(async (t) => {
+ // first entry after observe.
+ const io_entry_on_registration = token();
+ // entry after transform.
+ const io_entry_on_transform = token();
+ // entry with clip.
+ const io_entry_on_clip = token();
+
+ const frame = attachFencedFrame(generateURL(
+ "resources/frame-with-intersection-observer.html",
+ [io_entry_on_registration, io_entry_on_transform, io_entry_on_clip]));
+
+ let result = await nextValueFromServer(io_entry_on_registration);
+ assert_equals(result, "0,0,100,100,true",
+ "Subscribing to IO dispatches a notification");
+
+ // Apply a transform to the fencedframe and ensure it gets applied to the
+ // intersectionRect.
+ frame.style.transform = 'translate(-10px, -20px)';
+ result = await nextValueFromServer(io_entry_on_transform);
+ assert_equals(result, "10,20,90,80,true",
+ "Transform applies to intersection rect");
+
+ // Now add a clip to the fencedframe which should clip the intersectionRect.
+ frame.style.clipPath = 'inset(10px)';
+ result = await nextValueFromServer(io_entry_on_clip);
+ assert_equals(result, "10,20,80,70,false", "Clip applies to intersection rect");
+}, 'Intersection Observer Test');
+
+</script>
+</body>
+</html>