summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/cssom-view/elementFromPoint-parameters.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/cssom-view/elementFromPoint-parameters.html')
-rw-r--r--testing/web-platform/tests/css/cssom-view/elementFromPoint-parameters.html51
1 files changed, 51 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/cssom-view/elementFromPoint-parameters.html b/testing/web-platform/tests/css/cssom-view/elementFromPoint-parameters.html
new file mode 100644
index 0000000000..35afec994e
--- /dev/null
+++ b/testing/web-platform/tests/css/cssom-view/elementFromPoint-parameters.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<title>Tests that the parameters to document.elementFromPoint() and
+document.elementsFromPoint() are mandatory and of type double.</title>
+<link rel="help" href="https://drafts.csswg.org/cssom-view/#extensions-to-the-document-interface">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+function validate_function_parameter_count(testFunc, funcName) {
+ test(function() {
+ assert_throws_js(TypeError, function() {
+ testFunc();
+ }, "Called with no parameter");
+ assert_throws_js(TypeError, function() {
+ testFunc(0);
+ }, "Called with 1 parameter");
+ }, funcName + ": Parameters are mandatory.");
+}
+
+function validate_function_parameter_type(testFunc, funcName) {
+ test(function() {
+ assert_throws_js(TypeError, function() {
+ testFunc(0, Infinity);
+ }, "Passing Infinity as second parameter throws");
+ assert_throws_js(TypeError, function() {
+ testFunc(Infinity, 0);
+ }, "Passing Infinity as first parameter throws");
+ assert_throws_js(TypeError, function() {
+ testFunc(0, NaN);
+ }, "Passing NaN as second parameter throws");
+ assert_throws_js(TypeError, function() {
+ testFunc(NaN, 0);
+ }, "Passing NaN as first parameter throws");
+ }, funcName + ": Parameters should be finite floating point values.");
+}
+
+validate_function_parameter_count(function(x, y) {
+ document.elementFromPoint(x, y);
+}, "document.elementFromPoint");
+
+validate_function_parameter_type(function(x, y) {
+ document.elementFromPoint(x, y);
+}, "document.elementFromPoint");
+
+validate_function_parameter_count(function(x, y) {
+ document.elementsFromPoint(x, y);
+}, "document.elementsFromPoint");
+
+validate_function_parameter_type(function(x, y) {
+ document.elementsFromPoint(x, y);
+}, "document.elementsFromPoint");
+</script>