Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/fast/dom/intersection-observer.html | 
| diff --git a/third_party/WebKit/LayoutTests/fast/dom/intersection-observer.html b/third_party/WebKit/LayoutTests/fast/dom/intersection-observer.html | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..ed67da029c8f0e48710a8eecfa2ac27698d8a124 | 
| --- /dev/null | 
| +++ b/third_party/WebKit/LayoutTests/fast/dom/intersection-observer.html | 
| @@ -0,0 +1,61 @@ | 
| +<!DOCTYPE html> | 
| +<script src="../../resources/js-test.js"></script> | 
| + | 
| +<div id="top_div" style="background-color:blue;position:absolute; top:50px; left:20px; width:600px; height:800px"> | 
| +</div> | 
| + | 
| +<div id="target_div" style="background-color:red;position:absolute; top:855px; left:66px; width:300px; height:250px"> | 
| +</div> | 
| + | 
| +<script> | 
| +window.jsTestIsAsync = true; | 
| + | 
| +var entries = []; | 
| +var expectedEntries = [ | 
| + { | 
| + time:'mark', | 
| + boundingClientRect:{top:855, right:366, bottom: 1105, left: 66}, | 
| + intersectionRect:{top:855, right:366, bottom: 1000, left: 66}, | 
| + rootBounds: {top:400, right:785, bottom:1000, left:0}, | 
| + target: document.getElementById('target_div') | 
| + } | 
| +]; | 
| + | 
| +var a = {}, b = {}; | 
| +function shouldBeClientRect(name, value1, value2) | 
| +{ | 
| + a[name] = value1; | 
| + b[name] = value2; | 
| + shouldBe('a.'+name+'.top', 'b.'+name+'.top'); | 
| + shouldBe('a.'+name+'.right', 'b.'+name+'.right'); | 
| + shouldBe('a.'+name+'.bottom', 'b.'+name+'.bottom'); | 
| + shouldBe('a.'+name+'.left', 'b.'+name+'.left'); | 
| +} | 
| + | 
| +function testIntersectionObserver() | 
| +{ | 
| + var observer = new IntersectionObserver(intersectionCallback, {}); | 
| + | 
| + function intersectionCallback(changes) | 
| + { | 
| + entries = entries.concat(changes); | 
| + if (entries.length != expectedEntries.length) | 
| + return; | 
| + shouldBe('entries[0].time', '0'); | 
| + shouldBeClientRect('bounds', changes[0].boundingClientRect, expectedEntries[0].boundingClientRect); | 
| + shouldBeClientRect('intersection', changes[0].intersectionRect, expectedEntries[0].intersectionRect); | 
| + shouldBeClientRect('rootBounds', changes[0].rootBounds, expectedEntries[0].rootBounds); | 
| + shouldBe('entries[0].target', 'expectedEntries[0].target'); | 
| + testRunner.notifyDone(); | 
| + } | 
| + | 
| + var target_div = document.getElementById('target_div'); | 
| + observer.observe(target_div); | 
| + window.setTimeout(function() { window.scrollBy(0, 400); }, 0); | 
| +} | 
| + | 
| +description("This tests that IntersectionObserver gets called the right number of times."); | 
| + | 
| +testIntersectionObserver(); | 
| +testRunner.waitUntilDone(); | 
| +</script> | 
| 
 
eae
2015/11/16 23:34:44
This test is pretty sad as it doesn't tests much.
 
szager1
2015/11/19 19:15:37
Agreed, this test needs some work.
 
 |