summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/xhr/open-parameters-toString.htm
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/xhr/open-parameters-toString.htm')
-rw-r--r--testing/web-platform/tests/xhr/open-parameters-toString.htm54
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>