Index: third_party/WebKit/LayoutTests/intersection-observer/observer-exceptions.html |
diff --git a/third_party/WebKit/LayoutTests/intersection-observer/observer-exceptions.html b/third_party/WebKit/LayoutTests/intersection-observer/observer-exceptions.html |
index a266655239ff77d0c76910f2633f965edd49d8c6..81bff3f51a222521061a01307a02b25d26de110c 100644 |
--- a/third_party/WebKit/LayoutTests/intersection-observer/observer-exceptions.html |
+++ b/third_party/WebKit/LayoutTests/intersection-observer/observer-exceptions.html |
@@ -1,119 +1,49 @@ |
<!DOCTYPE html> |
-<div id="root"></div> |
-<div id="target"></div> |
-<script src="../resources/js-test.js"></script> |
-<script src="../resources/gc.js"></script> |
-<script> |
- description("Test for observer exceptions."); |
- var exc; |
- |
- try { |
- new IntersectionObserver(e => {}, {threshold: [1.1]}); |
- testFailed("IntersectionObserver constructor did not throw due to invalid threshold."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "RangeError"); |
- } |
- |
- try { |
- new IntersectionObserver(e => {}, {threshold: ["foo"]}); |
- testFailed("IntersectionObserver constructor did not throw due to invalid threshold."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "RangeError"); |
- } |
- |
- try { |
- new IntersectionObserver(e => {}, {rootMargin: "1"}); |
- testFailed("IntersectionObserver constructor did not throw due to invalid rootMargin."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "DOMException"); |
- shouldBe("exc.code", "DOMException.SYNTAX_ERR"); |
- } |
- |
- try { |
- new IntersectionObserver(e => {}, {rootMargin: "2em"}); |
- testFailed("IntersectionObserver constructor did not throw due to invalid rootMargin."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "DOMException"); |
- shouldBe("exc.code", "DOMException.SYNTAX_ERR"); |
- } |
- |
- try { |
- new IntersectionObserver(e => {}, {rootMargin: "auto"}); |
- testFailed("IntersectionObserver constructor did not throw due to invalid rootMargin."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "DOMException"); |
- shouldBe("exc.code", "DOMException.SYNTAX_ERR"); |
- } |
- |
- try { |
- new IntersectionObserver(e => {}, {rootMargin: "1px 1px 1px 1px 1px"}); |
- testFailed("IntersectionObserver constructor did not throw due to too many rootMargin value."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "DOMException"); |
- shouldBe("exc.code", "DOMException.SYNTAX_ERR"); |
- } |
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
- let observer = new IntersectionObserver(c => {}, {}); |
- try { |
+<script> |
+test(function () { |
+ assert_throws(RangeError(), function() { |
+ new IntersectionObserver(e => {}, {threshold: [1.1]}) |
+ }) |
+}, "IntersectionObserver constructor throws RangeError due to threshold=1.1."); |
foolip
2017/01/11 13:42:53
Optional nit: "IntersectionObserver constructor wi
szager1
2017/01/23 23:18:04
Fixed the descriptions.
|
+ |
+test(function () { |
+ assert_throws(RangeError(), function() { |
+ new IntersectionObserver(e => {}, {threshold: ["foo"]}) |
+ }) |
+}, "IntersectionObserver constructor throws RangeError due to threshold='foo'."); |
+ |
+test(function () { |
+ assert_throws("SYNTAX_ERR", function() { |
+ new IntersectionObserver(e => {}, {rootMargin: "1"}) |
+ }) |
+}, "IntersectionObserver constructor throws SYNTAX_ERR due to rootMargin='1'."); |
+ |
+test(function () { |
+ assert_throws("SYNTAX_ERR", function() { |
+ new IntersectionObserver(e => {}, {rootMargin: "2em"}) |
+ }) |
+}, "IntersectionObserver constructor throws SYNTAX_ERR due to rootMargin='2em'."); |
+ |
+test(function () { |
+ assert_throws("SYNTAX_ERR", function() { |
+ new IntersectionObserver(e => {}, {rootMargin: "auto"}) |
+ }) |
+}, "IntersectionObserver constructor throws SYNTAX_ERR due to rootMargin='auto'."); |
+ |
+test(function () { |
+ assert_throws("SYNTAX_ERR", function() { |
+ new IntersectionObserver(e => {}, {rootMargin: "1px 1px 1px 1px 1px"}) |
+ }) |
+}, "IntersectionObserver constructor throws SYNTAX_ERR due to invalid rootMargin='1px 1px 1px 1px 1px'."); |
+ |
+test(function () { |
+ assert_throws(TypeError(), function() { |
+ let observer = new IntersectionObserver(c => {}, {}); |
observer.observe("foo"); |
- testFailed("IntersectionObserver.observe with a bad target argument did not throw."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "TypeError"); |
- } |
- |
- // Initialize observer and remove root in an inner function to avoid |
- // references to rootDiv remaining live on this function's stack frame |
- // (http://crbug.com/595672/). |
- function initializeObserverThenRemoveRootDiv() { |
- let rootDiv = document.getElementById("root"); |
- let observer = new IntersectionObserver(c => {}, {root: rootDiv}); |
- rootDiv.parentNode.removeChild(rootDiv); |
- return observer; |
- } |
- |
- observer = initializeObserverThenRemoveRootDiv(); |
- gc(); |
- |
- try { |
- observer.observe(target); |
- testFailed("IntersectionObserver.observe() with a deleted root did not throw."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "DOMException"); |
- shouldBe("exc.code", "DOMException.INVALID_STATE_ERR"); |
- } |
- |
- try { |
- observer.unobserve(target); |
- testFailed("IntersectionObserver.unobserve() with a deleted root did not throw."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "DOMException"); |
- shouldBe("exc.code", "DOMException.INVALID_STATE_ERR"); |
- } |
- |
- try { |
- observer.disconnect(); |
- testFailed("IntersectionObserver.disconnect() with a deleted root did not throw."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "DOMException"); |
- shouldBe("exc.code", "DOMException.INVALID_STATE_ERR"); |
- } |
+ }) |
+}, "IntersectionObserver.observe with an invalid target throws TypeError."); |
- try { |
- observer.takeRecords(); |
- testFailed("IntersectionObserver.takeRecords() with a deleted root did not throw."); |
- } catch(e) { |
- exc = e; |
- shouldBeType("exc", "DOMException"); |
- shouldBe("exc.code", "DOMException.INVALID_STATE_ERR"); |
- } |
</script> |