| Index: third_party/WebKit/LayoutTests/intersection-observer/client-rect.html
|
| diff --git a/third_party/WebKit/LayoutTests/intersection-observer/client-rect.html b/third_party/WebKit/LayoutTests/intersection-observer/client-rect.html
|
| index c0ae7cbf57bd7498979f7c79602f55931b5a10bd..a48a5eb00a43d6b03997bbf370101bad6749fd5a 100644
|
| --- a/third_party/WebKit/LayoutTests/intersection-observer/client-rect.html
|
| +++ b/third_party/WebKit/LayoutTests/intersection-observer/client-rect.html
|
| @@ -1,30 +1,48 @@
|
| <!DOCTYPE html>
|
| -<script src="../resources/js-test.js"></script>
|
| -<script src="../resources/intersection-observer-helper-functions.js"></script>
|
| -<iframe id="iframe" srcdoc="<div id='target'><div style='width:1000px;height:1000px'></div></div>"></iframe>
|
| -<script>
|
| -description("Ensure that change.boundingClientRect matches change.target.getBoundingClientRect() for a clipped element with overflow inside an iframe.");
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<script src="./resources/intersection-observer-test-utils.js"></script>
|
|
|
| -var iframe = document.getElementById("iframe");
|
| -var entries = [];
|
| +<style>
|
| +pre, #log {
|
| + position: absolute;
|
| + top: 0;
|
| + left: 200px;
|
| +}
|
| +iframe {
|
| + width: 180px;
|
| + height: 100px;
|
| +}
|
| +</style>
|
| +
|
| +<iframe id="iframe" srcdoc="<div id='target' style='width:1000px;height:1000px;'></div>"></iframe>
|
| +
|
| +<script>
|
| var target;
|
| +var entries = [];
|
| +var observer;
|
| +var iframe = document.getElementById("iframe");
|
|
|
| iframe.onload = function() {
|
| - target = iframe.contentDocument.getElementById("target");
|
| - new IntersectionObserver((changes) => {
|
| - entries.push(...changes);
|
| - }).observe(target);
|
| - waitForNotification(step0);
|
| + runTestCycle(function() {
|
| + assert_equals(window.innerWidth, 800, "Window must be 800 pixels wide.");
|
| + assert_equals(window.innerHeight, 600, "Window must be 600 pixels high.");
|
| +
|
| + target = iframe.contentDocument.getElementById("target");
|
| + assert_true(!!target, "Target element exists.");
|
| + observer = new IntersectionObserver(function(changes) {
|
| + entries = entries.concat(changes);
|
| + });
|
| + observer.observe(target);
|
| + entries = entries.concat(observer.takeRecords());
|
| + assert_equals(entries.length, 0, "No initial notifications.");
|
| + runTestCycle(test0, "First rAF should generate notification.");
|
| + }, "IntersectionObserverEntry.boundingClientRect should match target.boundingClientRect()");
|
| };
|
|
|
| -function step0() {
|
| - shouldBeEqualToNumber("entries.length", 1);
|
| - if (entries.length > 0) {
|
| - shouldBe("entries[0].boundingClientRect.top", "target.getBoundingClientRect().top");
|
| - shouldBe("entries[0].boundingClientRect.left", "target.getBoundingClientRect().left");
|
| - shouldBe("entries[0].boundingClientRect.width", "target.getBoundingClientRect().width");
|
| - shouldBe("entries[0].boundingClientRect.height", "target.getBoundingClientRect().height");
|
| - }
|
| - finishJSTest();
|
| +function test0() {
|
| + assert_equals(entries.length, 1, "One notification.");
|
| + var bcr = target.getBoundingClientRect();
|
| + checkLastEntry(entries, 0, [bcr.left, bcr.right, bcr.top, bcr.bottom]);
|
| }
|
| </script>
|
|
|