OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <script src="../resources/testharness.js"></script> | |
3 <script src="../resources/testharnessreport.js"></script> | |
4 <script src="../resources/intersection-observer-helper-functions.js"></script> | |
5 | |
6 <div style="height: 200px; width: 100px;"></div> | |
7 <div id="target" style="background-color: green; width:100px; height:100px"></di
v> | |
8 <div style="height: 200px; width: 100px;"></div> | |
9 | |
10 <script> | |
11 setup({message_events: [], output_document: window.parent.document}); | |
12 onload = function() { | |
13 var entries = []; | |
14 var observer = new IntersectionObserver(function(changes) { entries = entries.
concat(changes) }, {}); | |
15 var target = document.getElementById("target"); | |
16 var scroller = document.scrollingElement; | |
17 observer.observe(target); | |
18 entries = entries.concat(observer.takeRecords()); | |
19 var t = async_test("IntersectionObserver in iframe with explicit root."); | |
20 test(function() { assert_equals(entries.length, 0) }, "No initial notification
s.") | |
21 waitForNotification(t.step_func(step1)); | |
22 | |
23 function step1() { | |
24 test(function() { assert_equals(entries.length, 0) }, "No notifications afte
r first rAF."); | |
25 scroller.scrollTop = 250; | |
26 waitForNotification(t.step_func(step2)); | |
27 } | |
28 | |
29 function step2() { | |
30 test(function() { assert_equals(entries.length, 1) }, "One notification."); | |
31 if (entries.length) { | |
32 test(function() { assert_equals(entries[0].boundingClientRect.left, 8) },
"entries[0].boundingClientRect.left"); | |
33 test(function() { assert_equals(entries[0].boundingClientRect.right, 108)
}, "entries[0].boundingClientRect.right"); | |
34 test(function() { assert_equals(entries[0].boundingClientRect.top, -42) },
"entries[0].boundingClientRect.top"); | |
35 test(function() { assert_equals(entries[0].boundingClientRect.bottom, 58)
}, "entries[0].boundingClientRect.bottom"); | |
36 test(function() { assert_equals(entries[0].intersectionRect.left, 8) }, "e
ntries[0].intersectionRect.left"); | |
37 test(function() { assert_equals(entries[0].intersectionRect.right, 108) },
"entries[0].intersectionRect.right"); | |
38 test(function() { assert_equals(entries[0].intersectionRect.top, 0) }, "en
tries[0].intersectionRect.top"); | |
39 test(function() { assert_equals(entries[0].intersectionRect.bottom, 58) },
"entries[0].intersectionRect.bottom"); | |
40 test(function() { assert_equals(entries[0].rootBounds.left, 0) }, "entries
[0].rootBounds.left"); | |
41 test(function() { assert_equals(entries[0].rootBounds.right, 800) }, "entr
ies[0].rootBounds.right"); | |
42 test(function() { assert_equals(entries[0].rootBounds.top, 0) }, "entries[
0].rootBounds.top"); | |
43 test(function() { assert_equals(entries[0].rootBounds.bottom, 600) }, "ent
ries[0].rootBounds.bottom"); | |
44 test(function() { assert_true(entries[0].target === target) }, "entries[0]
.target object identity"); | |
45 } | |
46 t.done(); | |
47 } | |
48 }; | |
49 </script> | |
OLD | NEW |