| <!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> |