diff options
Diffstat (limited to 'testing/web-platform/tests/xhr/open-parameters-toString.htm')
-rw-r--r-- | testing/web-platform/tests/xhr/open-parameters-toString.htm | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/testing/web-platform/tests/xhr/open-parameters-toString.htm b/testing/web-platform/tests/xhr/open-parameters-toString.htm new file mode 100644 index 0000000000..c059482cbf --- /dev/null +++ b/testing/web-platform/tests/xhr/open-parameters-toString.htm @@ -0,0 +1,54 @@ +<!doctype html> +<title>XMLHttpRequest: open() attempts to toString its string parameters</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +test(() => { + let log = []; + let expected = [ + 'method', + 'url', + // NOTE: 'async' intentionally missing + 'username', + 'password', + ]; + + let xhr = new XMLHttpRequest; + xhr.open( + { + toString() { + log.push('method'); + return 'get'; + }, + }, + { + toString() { + log.push('url'); + return location.href; + }, + }, + // NOTE: ToBoolean should not invoke valueOf + { + valueOf() { + log.push('async'); + return true; + }, + }, + { + toString() { + log.push('username'); + return 'username'; + }, + }, + { + toString() { + log.push('password'); + return 'password'; + }, + } + ); + + assert_array_equals(log, expected); +}); +</script> |