93 lines
4.0 KiB
HTML
93 lines
4.0 KiB
HTML
<!DOCTYPE html><!-- webkit-test-runner [ IntersectionObserverEnabled=true ] -->
|
|
<head>
|
|
<title>IntersectionObserver interface tests.</title>
|
|
<link rel="author" title="Simon Fraser" href="mailto:simon.fraser@apple.com" />
|
|
<link rel="help" href="https://wicg.github.io/IntersectionObserver/">
|
|
<script src="../resources/testharness.js"></script>
|
|
<script src="../resources/testharnessreport.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="log"></div>
|
|
<script>
|
|
|
|
test(function() {
|
|
assert_class_string(new IntersectionObserver(function() {}), 'IntersectionObserver');
|
|
},'Constructor0');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {});
|
|
assert_equals(observer.rootMargin, '0px 0px 0px 0px');
|
|
},'DefaultRootMargin');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {});
|
|
assert_equals(observer.root, null);
|
|
},'DefaultRoot');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {});
|
|
assert_array_equals(observer.thresholds, [0]);
|
|
},'DefaultThresholds');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {}, { rootMargin: '33%' });
|
|
assert_equals(observer.rootMargin, '33% 33% 33% 33%');
|
|
},'ExplicitOneArgumentRootMargin');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {}, { rootMargin: '33% 10px' });
|
|
assert_equals(observer.rootMargin, '33% 10px 33% 10px');
|
|
},'ExplicitTwoArgumentRootMargin');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {}, { rootMargin: '33% 10px -120px' });
|
|
assert_equals(observer.rootMargin, '33% 10px -120px 10px');
|
|
},'ExplicitThreeArgumentRootMargin');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {}, { rootMargin: '33% 10px -120px 3%' });
|
|
assert_equals(observer.rootMargin, '33% 10px -120px 3%');
|
|
},'ExplicitFourArgumentRootMargin');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {}, { root: document.body });
|
|
assert_equals(observer.root, document.body);
|
|
},'ExplicitRoot');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {}, { threshold: 0.45 });
|
|
assert_array_equals(observer.thresholds, [0.45]);
|
|
},'ExplicitThreshold');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {}, { threshold: [0, 0.33333678, 0.5, 0.76645] });
|
|
assert_array_equals(observer.thresholds, [0, 0.33333678, 0.5, 0.76645]);
|
|
},'ExplicitThresholds');
|
|
test(function() {
|
|
var observer = new IntersectionObserver(function() {}, { threshold: Number.MIN_VALUE });
|
|
assert_array_equals(observer.thresholds, [Number.MIN_VALUE]);
|
|
},'SmallPositiveThreshold');
|
|
test(function() {
|
|
assert_throws(RangeError(), function() {
|
|
new IntersectionObserver(function() {}, { threshold: -Number.MIN_VALUE });
|
|
})
|
|
},'SmallNegativeThreshold');
|
|
test(function() {
|
|
assert_throws(RangeError(), function() {
|
|
new IntersectionObserver(function() {}, { threshold: Number.MAX_VALUE });
|
|
})
|
|
},'LargePositiveThreshold');
|
|
test(function() {
|
|
assert_throws(RangeError(), function() {
|
|
new IntersectionObserver(function() {}, { threshold: -Number.MAX_VALUE });
|
|
})
|
|
},'LargeNegativeThreshold');
|
|
test(function() {
|
|
assert_throws(TypeError(), function() {
|
|
new IntersectionObserver(function() {}, { threshold: Number.POSITIVE_INFINITY });
|
|
})
|
|
},'PositiveInfinityThreshold');
|
|
test(function() {
|
|
assert_throws(TypeError(), function() {
|
|
new IntersectionObserver(function() {}, { threshold: Number.NEGATIVE_INFINITY });
|
|
})
|
|
},'NegativeInfinityThreshold');
|
|
test(function() {
|
|
assert_throws(TypeError(), function() {
|
|
new IntersectionObserver(function() {}, { threshold: Number.NaN });
|
|
})
|
|
},'NaNThreshold');
|
|
</script>
|
|
</body>
|
|
</html>
|