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 counter = 0;
7 : 1 :
8 : 1 : status(204, 'UNICORNSWIN', '', '');
9 : 1 : status(401, 'OH HELLO', 'Not today.', '');
10 : 1 : // status(402, 'FIVE BUCKS', '<x>402<\/x>', 'text/xml');
11 : 1 : status(402, 'FREE', 'Nice!', 'text/doesnotmatter');
12 : 1 : status(402, '402 TEH AWESOME', '', '');
13 : 1 : status(502, 'YO', '', '');
14 : 1 : status(502, 'lowercase', 'SWEET POTATO', 'text/plain');
15 : 1 : status(503, 'HOUSTON WE HAVE A', '503', 'text/plain');
16 : 1 : status(699, 'WAY OUTTA RANGE', '699', 'text/plain');
17 : 1 :
18 [ + ]: 1 : function status(code, text, content, type){
19 : 8 : statusRequest('GET', code, text, content, type);
20 : 8 : statusRequest('HEAD', code, text, content, type);
21 : 8 : statusRequest('CHICKEN', code, text, content, type);
22 : 8 : }
23 : 1 :
24 [ + ]: 1 : function statusRequest(method, code, text, content, type){
25 : 24 :
26 : 24 : let xhr = new XMLHttpRequest();
27 : 24 : assert.strictEqual(xhr.status, 0);
28 : 24 :
29 : 24 : let url = `${activeURL}/status.py?code=`;
30 : 24 :
31 : 24 : url += encodeURIComponent(code);
32 : 24 : url += '&text=' + text;
33 : 24 : url += '&content=' + encodeURIComponent(content);
34 : 24 : url += '&type=' + encodeURIComponent(type);
35 : 24 :
36 : 24 : xhr.open(method, url, false);
37 : 24 : assert.strictEqual(xhr.status, 0);
38 : 24 :
39 : 24 : xhr.send();
40 : 24 : assert.strictEqual(xhr.status, code);
41 : 24 : assert.strictEqual(xhr.statusText, text);
42 : 24 : assert.strictEqual(xhr.getResponseHeader('X-Request-Method'), method);
43 : 24 :
44 [ + ]: 24 : if(method !== 'HEAD'){
45 [ - ]: 16 : if(type === 'text/xml'){
46 : 0 : assert.strictEqual(xhr.responseXML.documentElement.localName, 'x');
47 : 0 : }
48 : 16 : assert.strictEqual(xhr.responseText, content);
49 : 16 : }
50 : 24 : }
51 : 1 : }
52 : 2 :
53 : 2 : /*
54 : 2 : * status-basic.htm
55 : 2 : *
56 : 2 :
57 : 2 : <!doctype html>
58 : 2 : <html>
59 : 2 : <head>
60 : 2 : <title>XMLHttpRequest: status/statusText - various responses</title>
61 : 2 : <script src="/resources/testharness.js"></script>
62 : 2 : <script src="/resources/testharnessreport.js"></script>
63 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-status-attribute" data-tested-assertations="following::ol/li[3]" />
64 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-statustext-attribute" data-tested-assertations="following::ol/li[3]" />
65 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-getresponseheader()-method" data-tested-assertations="following::ol/li[5]" />
66 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-responsetext-attribute" data-tested-assertations="following::ol/li[4]" />
67 : 2 : </head>
68 : 2 : <body>
69 : 2 : <div id="log"></div>
70 : 2 : <script>
71 : 2 : var counter = 0
72 : 2 : function statusRequest(method, code, text, content, type) {
73 : 2 : counter++
74 : 2 : test(function() {
75 : 2 : var client = new XMLHttpRequest()
76 : 2 : assert_equals(client.status, 0);
77 : 2 : client.open(method, "resources/status.py?code=" + code + "&text=" + encodeURIComponent(text) + "&content=" + encodeURIComponent(content) + "&type=" + encodeURIComponent(type), false)
78 : 2 : assert_equals(client.status, 0);
79 : 2 : client.send(null)
80 : 2 : assert_equals(client.status, code)
81 : 2 : assert_equals(client.statusText, text)
82 : 2 : assert_equals(client.getResponseHeader("X-Request-Method"), method)
83 : 2 : if(method != "HEAD") {
84 : 2 : if(type == "text/xml") {
85 : 2 : assert_equals(client.responseXML.documentElement.localName, "x")
86 : 2 : }
87 : 2 : assert_equals(client.responseText, content)
88 : 2 : }
89 : 2 : }, document.title + " " + counter + " (" + method + " " + code + ")")
90 : 2 : }
91 : 2 : function status(code, text, content, type) {
92 : 2 : statusRequest("GET", code, text, content, type)
93 : 2 : statusRequest("HEAD", code, text, content, type)
94 : 2 : statusRequest("CHICKEN", code, text, content, type)
95 : 2 : }
96 : 2 : status(204, "UNICORNSWIN", "", "")
97 : 2 : status(401, "OH HELLO", "Not today.", "")
98 : 2 : status(402, "FIVE BUCKS", "<x>402<\/x>", "text/xml")
99 : 2 : status(402, "FREE", "Nice!", "text/doesnotmatter")
100 : 2 : status(402, "402 TEH AWESOME", "", "")
101 : 2 : status(502, "YO", "", "")
102 : 2 : status(502, "lowercase", "SWEET POTATO", "text/plain")
103 : 2 : status(503, "HOUSTON WE HAVE A", "503", "text/plain")
104 : 2 : status(699, "WAY OUTTA RANGE", "699", "text/plain")
105 : 2 : </script>
106 : 2 : </body>
107 : 2 : </html>
108 : 2 :
109 : 2 : *
110 : 2 : * status-basic.htm
111 : 2 : */
|