Branch data Line data Source code
1 [ + ]: 2 : import assert from 'node:assert/strict';
2 : 2 : import { XMLHttpRequest } from '../../../lib/whatwg-xhr.js';
3 : 2 :
4 [ + ]: 2 : export default (activeURL) => {
5 : 1 :
6 : 1 : let log = [];
7 : 1 : let expected = [
8 : 1 : 'method',
9 : 1 : 'url',
10 : 1 : // NOTE: 'async' intentionally missing
11 : 1 : 'username',
12 : 1 : 'password',
13 : 1 : ];
14 : 1 :
15 : 1 : let xhr = new XMLHttpRequest();
16 : 1 : xhr.open(
17 : 1 : {
18 [ + ]: 1 : toString(){
19 : 1 : log.push('method');
20 : 1 : return 'get';
21 : 1 : },
22 : 1 : },
23 : 1 : {
24 [ + ]: 1 : toString(){
25 : 1 : log.push('url');
26 : 1 : return activeURL;
27 : 1 : },
28 : 1 : },
29 : 1 : // NOTE: ToBoolean should not invoke valueOf
30 : 1 : {
31 : 1 : valueOf() {
32 : 0 : log.push('async');
33 : 0 : return true;
34 : 1 : },
35 : 1 : },
36 : 1 : {
37 [ + ]: 1 : toString() {
38 : 1 : log.push('username');
39 : 1 : return 'username';
40 : 1 : },
41 : 1 : },
42 : 1 : {
43 [ + ]: 1 : toString() {
44 : 1 : log.push('password');
45 : 1 : return 'password';
46 : 1 : },
47 : 1 : }
48 : 1 : );
49 : 1 :
50 : 1 : assert.deepStrictEqual(log, expected);
51 : 1 : }
52 : 2 :
53 : 2 : /*
54 : 2 : * open-parameters-toString.htm
55 : 2 : *
56 : 2 :
57 : 2 : <!doctype html>
58 : 2 : <title>XMLHttpRequest: open() attempts to toString its string parameters</title>
59 : 2 : <script src="/resources/testharness.js"></script>
60 : 2 : <script src="/resources/testharnessreport.js"></script>
61 : 2 : <div id="log"></div>
62 : 2 : <script>
63 : 2 : test(() => {
64 : 2 : let log = [];
65 : 2 : let expected = [
66 : 2 : 'method',
67 : 2 : 'url',
68 : 2 : // NOTE: 'async' intentionally missing
69 : 2 : 'username',
70 : 2 : 'password',
71 : 2 : ];
72 : 2 :
73 : 2 : let xhr = new XMLHttpRequest;
74 : 2 : xhr.open(
75 : 2 : {
76 : 2 : toString() {
77 : 2 : log.push('method');
78 : 2 : return 'get';
79 : 2 : },
80 : 2 : },
81 : 2 : {
82 : 2 : toString() {
83 : 2 : log.push('url');
84 : 2 : return location.href;
85 : 2 : },
86 : 2 : },
87 : 2 : // NOTE: ToBoolean should not invoke valueOf
88 : 2 : {
89 : 2 : valueOf() {
90 : 2 : log.push('async');
91 : 2 : return true;
92 : 2 : },
93 : 2 : },
94 : 2 : {
95 : 2 : toString() {
96 : 2 : log.push('username');
97 : 2 : return 'username';
98 : 2 : },
99 : 2 : },
100 : 2 : {
101 : 2 : toString() {
102 : 2 : log.push('password');
103 : 2 : return 'password';
104 : 2 : },
105 : 2 : }
106 : 2 : );
107 : 2 :
108 : 2 : assert_array_equals(log, expected);
109 : 2 : });
110 : 2 : </script>
111 : 2 :
112 : 2 : *
113 : 2 : * open-parameters-toString.htm
114 : 2 : */
|