diff options
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.html | 53 |
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> |