1
+ /// <reference path="../../../../../types/index.d.ts" />
2
+ /* eslint-env serviceworker */
3
+
4
+ import { pass , assert , assertRejects } from "./assertions.js" ;
5
+ import { routes , isRunningLocally } from "./routes.js" ;
6
+
7
+ let error ;
8
+
9
+ async function requestInitObjectLiteral ( overrideContentLength ) {
10
+ let response = await fetch ( new Request ( 'https://httpbin.org/headers' , {
11
+ backend : 'httpbin' ,
12
+ overrideContentLength,
13
+ headers : {
14
+ "Content-Length" : "1"
15
+ }
16
+ } ) ) ;
17
+ let body = await response . json ( )
18
+ return body ?. headers ?. [ "Content-Length" ] ;
19
+ }
20
+
21
+ async function requestInitRequestInstance ( overrideContentLength ) {
22
+ let request = new Request ( 'https://httpbin.org/headers' , {
23
+ backend : 'httpbin' ,
24
+ overrideContentLength,
25
+ headers : {
26
+ "Content-Length" : "1"
27
+ }
28
+ } ) ;
29
+ let response = await fetch ( new Request ( 'https://httpbin.org/headers' , request ) ) ;
30
+ let body = await response . json ( )
31
+ return body ?. headers ?. [ "Content-Length" ] ;
32
+ }
33
+
34
+ async function requestClone ( overrideContentLength ) {
35
+ let request = new Request ( 'https://httpbin.org/headers' , {
36
+ backend : 'httpbin' ,
37
+ overrideContentLength,
38
+ headers : {
39
+ "Content-Length" : "1"
40
+ }
41
+ } ) ;
42
+ let response = await fetch ( request . clone ( ) ) ;
43
+ let body = await response . json ( )
44
+ return body ?. headers ?. [ "Content-Length" ] ;
45
+ }
46
+
47
+ async function fetchInitObjectLiteral ( overrideContentLength ) {
48
+ let response = await fetch ( 'https://httpbin.org/headers' , {
49
+ backend : 'httpbin' ,
50
+ overrideContentLength,
51
+ headers : {
52
+ "Content-Length" : "1"
53
+ }
54
+ } ) ;
55
+ let body = await response . json ( )
56
+ return body ?. headers ?. [ "Content-Length" ] ;
57
+ }
58
+
59
+ async function fetchInitRequestInstance ( overrideContentLength ) {
60
+ let request = new Request ( 'https://httpbin.org/headers' , {
61
+ backend : 'httpbin' ,
62
+ overrideContentLength,
63
+ headers : {
64
+ "Content-Length" : "1"
65
+ }
66
+ } ) ;
67
+ let response = await fetch ( 'https://httpbin.org/headers' , request ) ;
68
+ let body = await response . json ( )
69
+ return body ?. headers ?. [ "Content-Length" ] ;
70
+ }
71
+
72
+ routes . set ( "/override-content-length/request/init/object-literal/true" , async ( ) => {
73
+ if ( isRunningLocally ( ) ) {
74
+ error = await assertRejects ( ( ) => requestInitObjectLiteral ( true ) )
75
+ if ( error ) { return error }
76
+ } else {
77
+ let actual = await requestInitObjectLiteral ( true ) ;
78
+ let expected = "1"
79
+ error = assert ( actual , expected , `await requestInitObjectLiteral(true)` )
80
+ if ( error ) { return error }
81
+ }
82
+
83
+ return pass ( 'ok' )
84
+ } ) ;
85
+
86
+ routes . set ( "/override-content-length/request/init/object-literal/false" , async ( ) => {
87
+ let actual = await requestInitObjectLiteral ( false ) ;
88
+ let expected = "0"
89
+ error = assert ( actual , expected , `await requestInitObjectLiteral(false)` )
90
+ if ( error ) { return error }
91
+
92
+ return pass ( 'ok' )
93
+ } ) ;
94
+
95
+ routes . set ( "/override-content-length/request/init/request-instance/true" , async ( ) => {
96
+ if ( isRunningLocally ( ) ) {
97
+ error = await assertRejects ( ( ) => requestInitRequestInstance ( true ) )
98
+ if ( error ) { return error }
99
+ } else {
100
+ let actual = await requestInitRequestInstance ( true ) ;
101
+ let expected = "1"
102
+ error = assert ( actual , expected , `await requestInitRequestInstance(true)` )
103
+ if ( error ) { return error }
104
+ }
105
+
106
+ return pass ( 'ok' )
107
+ } ) ;
108
+
109
+ routes . set ( "/override-content-length/request/init/request-instance/false" , async ( ) => {
110
+ let actual = await requestInitRequestInstance ( false ) ;
111
+ let expected = "0"
112
+ error = assert ( actual , expected , `await requestInitRequestInstance(false)` )
113
+ if ( error ) { return error }
114
+
115
+ return pass ( 'ok' )
116
+ } ) ;
117
+
118
+ routes . set ( "/override-content-length/request/clone/true" , async ( ) => {
119
+ if ( isRunningLocally ( ) ) {
120
+ error = await assertRejects ( ( ) => requestClone ( true ) )
121
+ if ( error ) { return error }
122
+ } else {
123
+ let actual = await requestClone ( true ) ;
124
+ let expected = "1"
125
+ error = assert ( actual , expected , `await requestClone(true)` )
126
+ if ( error ) { return error }
127
+ }
128
+
129
+ return pass ( 'ok' )
130
+ } ) ;
131
+
132
+ routes . set ( "/override-content-length/request/clone/false" , async ( ) => {
133
+ let actual = await requestClone ( false ) ;
134
+ let expected = "0"
135
+ error = assert ( actual , expected , `await requestClone(false)` )
136
+ if ( error ) { return error }
137
+
138
+ return pass ( 'ok' )
139
+ } ) ;
140
+
141
+ routes . set ( "/override-content-length/fetch/init/object-literal/true" , async ( ) => {
142
+ if ( isRunningLocally ( ) ) {
143
+ error = await assertRejects ( ( ) => fetchInitObjectLiteral ( true ) )
144
+ if ( error ) { return error }
145
+ } else {
146
+ let actual = await fetchInitObjectLiteral ( true ) ;
147
+ let expected = "1"
148
+ error = assert ( actual , expected , `await fetchInitObjectLiteral(true)` )
149
+ if ( error ) { return error }
150
+ }
151
+
152
+ return pass ( 'ok' )
153
+ } ) ;
154
+
155
+ routes . set ( "/override-content-length/fetch/init/object-literal/false" , async ( ) => {
156
+ let actual = await fetchInitObjectLiteral ( false ) ;
157
+ let expected = "0"
158
+ error = assert ( actual , expected , `await fetchInitObjectLiteral(false)` )
159
+ if ( error ) { return error }
160
+
161
+ return pass ( 'ok' )
162
+ } ) ;
163
+
164
+ routes . set ( "/override-content-length/fetch/init/request-instance/true" , async ( ) => {
165
+ if ( isRunningLocally ( ) ) {
166
+ error = await assertRejects ( ( ) => fetchInitRequestInstance ( true ) )
167
+ if ( error ) { return error }
168
+ } else {
169
+ let actual = await fetchInitRequestInstance ( true ) ;
170
+ let expected = "1"
171
+ error = assert ( actual , expected , `await fetchInitRequestInstance(true)` )
172
+ if ( error ) { return error }
173
+ }
174
+
175
+ return pass ( 'ok' )
176
+ } ) ;
177
+
178
+ routes . set ( "/override-content-length/fetch/init/request-instance/false" , async ( ) => {
179
+ let actual = await fetchInitRequestInstance ( false ) ;
180
+ let expected = "0"
181
+ error = assert ( actual , expected , `await fetchInitRequestInstance(false)` )
182
+ if ( error ) { return error }
183
+
184
+ return pass ( 'ok' )
185
+ } ) ;
0 commit comments