nock 8.0.0 → 8.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.travis.yml +1 -0
- package/CHANGELOG.md +107 -114
- package/README.md +103 -42
- package/lib/common.js +15 -1
- package/lib/intercept.js +24 -11
- package/lib/interceptor.js +21 -22
- package/lib/match_body.js +1 -1
- package/lib/recorder.js +6 -3
- package/lib/request_overrider.js +3 -3
- package/lib/scope.js +30 -28
- package/package.json +10 -7
- package/tests/test_back.js +5 -2
- package/tests/test_body_match.js +40 -0
- package/tests/test_browserify.js +54 -52
- package/tests/test_intercept.js +195 -47
- package/tests/test_isomorphic_fetch.js +45 -45
- package/.npmignore +0 -2
- package/coverage/coverage.json +0 -1
- package/coverage/lcov-report/base.css +0 -212
- package/coverage/lcov-report/index.html +0 -106
- package/coverage/lcov-report/nock/index.html +0 -93
- package/coverage/lcov-report/nock/index.js.html +0 -98
- package/coverage/lcov-report/nock/lib/back.js.html +0 -1022
- package/coverage/lcov-report/nock/lib/common.js.html +0 -1070
- package/coverage/lcov-report/nock/lib/delayed_body.js.html +0 -305
- package/coverage/lcov-report/nock/lib/global_emitter.js.html +0 -71
- package/coverage/lcov-report/nock/lib/index.html +0 -223
- package/coverage/lcov-report/nock/lib/intercept.js.html +0 -1253
- package/coverage/lcov-report/nock/lib/interceptor.js.html +0 -1670
- package/coverage/lcov-report/nock/lib/match_body.js.html +0 -275
- package/coverage/lcov-report/nock/lib/mixin.js.html +0 -107
- package/coverage/lcov-report/nock/lib/recorder.js.html +0 -1323
- package/coverage/lcov-report/nock/lib/request_overrider.js.html +0 -1643
- package/coverage/lcov-report/nock/lib/scope.js.html +0 -1133
- package/coverage/lcov-report/nock/lib/socket.js.html +0 -272
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -1
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -158
- package/coverage/lcov.info +0 -2428
- package/tests/browserify-public/browserify-bundle.js +0 -34332
- package/tests/test.js +0 -32
|
@@ -1,1070 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<title>Code coverage report for nock/lib/common.js</title>
|
|
5
|
-
<meta charset="utf-8" />
|
|
6
|
-
<link rel="stylesheet" href="../../prettify.css" />
|
|
7
|
-
<link rel="stylesheet" href="../../base.css" />
|
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
9
|
-
<style type='text/css'>
|
|
10
|
-
.coverage-summary .sorter {
|
|
11
|
-
background-image: url(../../sort-arrow-sprite.png);
|
|
12
|
-
}
|
|
13
|
-
</style>
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<div class='wrapper'>
|
|
17
|
-
<div class='pad1'>
|
|
18
|
-
<h1>
|
|
19
|
-
<a href="../../index.html">all files</a> / <a href="index.html">nock/lib/</a> common.js
|
|
20
|
-
</h1>
|
|
21
|
-
<div class='clearfix'>
|
|
22
|
-
<div class='fl pad1y space-right2'>
|
|
23
|
-
<span class="strong">93.51% </span>
|
|
24
|
-
<span class="quiet">Statements</span>
|
|
25
|
-
<span class='fraction'>144/154</span>
|
|
26
|
-
</div>
|
|
27
|
-
<div class='fl pad1y space-right2'>
|
|
28
|
-
<span class="strong">82.14% </span>
|
|
29
|
-
<span class="quiet">Branches</span>
|
|
30
|
-
<span class='fraction'>69/84</span>
|
|
31
|
-
</div>
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">92.31% </span>
|
|
34
|
-
<span class="quiet">Functions</span>
|
|
35
|
-
<span class='fraction'>24/26</span>
|
|
36
|
-
</div>
|
|
37
|
-
<div class='fl pad1y space-right2'>
|
|
38
|
-
<span class="strong">94.04% </span>
|
|
39
|
-
<span class="quiet">Lines</span>
|
|
40
|
-
<span class='fraction'>142/151</span>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
<div class='status-line high'></div>
|
|
45
|
-
<pre><table class="coverage">
|
|
46
|
-
<tr><td class="line-count quiet">1
|
|
47
|
-
2
|
|
48
|
-
3
|
|
49
|
-
4
|
|
50
|
-
5
|
|
51
|
-
6
|
|
52
|
-
7
|
|
53
|
-
8
|
|
54
|
-
9
|
|
55
|
-
10
|
|
56
|
-
11
|
|
57
|
-
12
|
|
58
|
-
13
|
|
59
|
-
14
|
|
60
|
-
15
|
|
61
|
-
16
|
|
62
|
-
17
|
|
63
|
-
18
|
|
64
|
-
19
|
|
65
|
-
20
|
|
66
|
-
21
|
|
67
|
-
22
|
|
68
|
-
23
|
|
69
|
-
24
|
|
70
|
-
25
|
|
71
|
-
26
|
|
72
|
-
27
|
|
73
|
-
28
|
|
74
|
-
29
|
|
75
|
-
30
|
|
76
|
-
31
|
|
77
|
-
32
|
|
78
|
-
33
|
|
79
|
-
34
|
|
80
|
-
35
|
|
81
|
-
36
|
|
82
|
-
37
|
|
83
|
-
38
|
|
84
|
-
39
|
|
85
|
-
40
|
|
86
|
-
41
|
|
87
|
-
42
|
|
88
|
-
43
|
|
89
|
-
44
|
|
90
|
-
45
|
|
91
|
-
46
|
|
92
|
-
47
|
|
93
|
-
48
|
|
94
|
-
49
|
|
95
|
-
50
|
|
96
|
-
51
|
|
97
|
-
52
|
|
98
|
-
53
|
|
99
|
-
54
|
|
100
|
-
55
|
|
101
|
-
56
|
|
102
|
-
57
|
|
103
|
-
58
|
|
104
|
-
59
|
|
105
|
-
60
|
|
106
|
-
61
|
|
107
|
-
62
|
|
108
|
-
63
|
|
109
|
-
64
|
|
110
|
-
65
|
|
111
|
-
66
|
|
112
|
-
67
|
|
113
|
-
68
|
|
114
|
-
69
|
|
115
|
-
70
|
|
116
|
-
71
|
|
117
|
-
72
|
|
118
|
-
73
|
|
119
|
-
74
|
|
120
|
-
75
|
|
121
|
-
76
|
|
122
|
-
77
|
|
123
|
-
78
|
|
124
|
-
79
|
|
125
|
-
80
|
|
126
|
-
81
|
|
127
|
-
82
|
|
128
|
-
83
|
|
129
|
-
84
|
|
130
|
-
85
|
|
131
|
-
86
|
|
132
|
-
87
|
|
133
|
-
88
|
|
134
|
-
89
|
|
135
|
-
90
|
|
136
|
-
91
|
|
137
|
-
92
|
|
138
|
-
93
|
|
139
|
-
94
|
|
140
|
-
95
|
|
141
|
-
96
|
|
142
|
-
97
|
|
143
|
-
98
|
|
144
|
-
99
|
|
145
|
-
100
|
|
146
|
-
101
|
|
147
|
-
102
|
|
148
|
-
103
|
|
149
|
-
104
|
|
150
|
-
105
|
|
151
|
-
106
|
|
152
|
-
107
|
|
153
|
-
108
|
|
154
|
-
109
|
|
155
|
-
110
|
|
156
|
-
111
|
|
157
|
-
112
|
|
158
|
-
113
|
|
159
|
-
114
|
|
160
|
-
115
|
|
161
|
-
116
|
|
162
|
-
117
|
|
163
|
-
118
|
|
164
|
-
119
|
|
165
|
-
120
|
|
166
|
-
121
|
|
167
|
-
122
|
|
168
|
-
123
|
|
169
|
-
124
|
|
170
|
-
125
|
|
171
|
-
126
|
|
172
|
-
127
|
|
173
|
-
128
|
|
174
|
-
129
|
|
175
|
-
130
|
|
176
|
-
131
|
|
177
|
-
132
|
|
178
|
-
133
|
|
179
|
-
134
|
|
180
|
-
135
|
|
181
|
-
136
|
|
182
|
-
137
|
|
183
|
-
138
|
|
184
|
-
139
|
|
185
|
-
140
|
|
186
|
-
141
|
|
187
|
-
142
|
|
188
|
-
143
|
|
189
|
-
144
|
|
190
|
-
145
|
|
191
|
-
146
|
|
192
|
-
147
|
|
193
|
-
148
|
|
194
|
-
149
|
|
195
|
-
150
|
|
196
|
-
151
|
|
197
|
-
152
|
|
198
|
-
153
|
|
199
|
-
154
|
|
200
|
-
155
|
|
201
|
-
156
|
|
202
|
-
157
|
|
203
|
-
158
|
|
204
|
-
159
|
|
205
|
-
160
|
|
206
|
-
161
|
|
207
|
-
162
|
|
208
|
-
163
|
|
209
|
-
164
|
|
210
|
-
165
|
|
211
|
-
166
|
|
212
|
-
167
|
|
213
|
-
168
|
|
214
|
-
169
|
|
215
|
-
170
|
|
216
|
-
171
|
|
217
|
-
172
|
|
218
|
-
173
|
|
219
|
-
174
|
|
220
|
-
175
|
|
221
|
-
176
|
|
222
|
-
177
|
|
223
|
-
178
|
|
224
|
-
179
|
|
225
|
-
180
|
|
226
|
-
181
|
|
227
|
-
182
|
|
228
|
-
183
|
|
229
|
-
184
|
|
230
|
-
185
|
|
231
|
-
186
|
|
232
|
-
187
|
|
233
|
-
188
|
|
234
|
-
189
|
|
235
|
-
190
|
|
236
|
-
191
|
|
237
|
-
192
|
|
238
|
-
193
|
|
239
|
-
194
|
|
240
|
-
195
|
|
241
|
-
196
|
|
242
|
-
197
|
|
243
|
-
198
|
|
244
|
-
199
|
|
245
|
-
200
|
|
246
|
-
201
|
|
247
|
-
202
|
|
248
|
-
203
|
|
249
|
-
204
|
|
250
|
-
205
|
|
251
|
-
206
|
|
252
|
-
207
|
|
253
|
-
208
|
|
254
|
-
209
|
|
255
|
-
210
|
|
256
|
-
211
|
|
257
|
-
212
|
|
258
|
-
213
|
|
259
|
-
214
|
|
260
|
-
215
|
|
261
|
-
216
|
|
262
|
-
217
|
|
263
|
-
218
|
|
264
|
-
219
|
|
265
|
-
220
|
|
266
|
-
221
|
|
267
|
-
222
|
|
268
|
-
223
|
|
269
|
-
224
|
|
270
|
-
225
|
|
271
|
-
226
|
|
272
|
-
227
|
|
273
|
-
228
|
|
274
|
-
229
|
|
275
|
-
230
|
|
276
|
-
231
|
|
277
|
-
232
|
|
278
|
-
233
|
|
279
|
-
234
|
|
280
|
-
235
|
|
281
|
-
236
|
|
282
|
-
237
|
|
283
|
-
238
|
|
284
|
-
239
|
|
285
|
-
240
|
|
286
|
-
241
|
|
287
|
-
242
|
|
288
|
-
243
|
|
289
|
-
244
|
|
290
|
-
245
|
|
291
|
-
246
|
|
292
|
-
247
|
|
293
|
-
248
|
|
294
|
-
249
|
|
295
|
-
250
|
|
296
|
-
251
|
|
297
|
-
252
|
|
298
|
-
253
|
|
299
|
-
254
|
|
300
|
-
255
|
|
301
|
-
256
|
|
302
|
-
257
|
|
303
|
-
258
|
|
304
|
-
259
|
|
305
|
-
260
|
|
306
|
-
261
|
|
307
|
-
262
|
|
308
|
-
263
|
|
309
|
-
264
|
|
310
|
-
265
|
|
311
|
-
266
|
|
312
|
-
267
|
|
313
|
-
268
|
|
314
|
-
269
|
|
315
|
-
270
|
|
316
|
-
271
|
|
317
|
-
272
|
|
318
|
-
273
|
|
319
|
-
274
|
|
320
|
-
275
|
|
321
|
-
276
|
|
322
|
-
277
|
|
323
|
-
278
|
|
324
|
-
279
|
|
325
|
-
280
|
|
326
|
-
281
|
|
327
|
-
282
|
|
328
|
-
283
|
|
329
|
-
284
|
|
330
|
-
285
|
|
331
|
-
286
|
|
332
|
-
287
|
|
333
|
-
288
|
|
334
|
-
289
|
|
335
|
-
290
|
|
336
|
-
291
|
|
337
|
-
292
|
|
338
|
-
293
|
|
339
|
-
294
|
|
340
|
-
295
|
|
341
|
-
296
|
|
342
|
-
297
|
|
343
|
-
298
|
|
344
|
-
299
|
|
345
|
-
300
|
|
346
|
-
301
|
|
347
|
-
302
|
|
348
|
-
303
|
|
349
|
-
304
|
|
350
|
-
305
|
|
351
|
-
306
|
|
352
|
-
307
|
|
353
|
-
308
|
|
354
|
-
309
|
|
355
|
-
310
|
|
356
|
-
311
|
|
357
|
-
312
|
|
358
|
-
313
|
|
359
|
-
314
|
|
360
|
-
315
|
|
361
|
-
316
|
|
362
|
-
317
|
|
363
|
-
318
|
|
364
|
-
319
|
|
365
|
-
320
|
|
366
|
-
321
|
|
367
|
-
322
|
|
368
|
-
323
|
|
369
|
-
324
|
|
370
|
-
325
|
|
371
|
-
326
|
|
372
|
-
327
|
|
373
|
-
328
|
|
374
|
-
329
|
|
375
|
-
330
|
|
376
|
-
331
|
|
377
|
-
332
|
|
378
|
-
333
|
|
379
|
-
334
|
|
380
|
-
335
|
|
381
|
-
336</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
382
|
-
<span class="cline-any cline-neutral"> </span>
|
|
383
|
-
<span class="cline-any cline-yes">1×</span>
|
|
384
|
-
<span class="cline-any cline-yes">1×</span>
|
|
385
|
-
<span class="cline-any cline-neutral"> </span>
|
|
386
|
-
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-neutral"> </span>
|
|
388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-yes">1×</span>
|
|
392
|
-
<span class="cline-any cline-yes">607×</span>
|
|
393
|
-
<span class="cline-any cline-yes">607×</span>
|
|
394
|
-
<span class="cline-any cline-yes">607×</span>
|
|
395
|
-
<span class="cline-any cline-yes">585×</span>
|
|
396
|
-
<span class="cline-any cline-yes">585×</span>
|
|
397
|
-
<span class="cline-any cline-yes">238×</span>
|
|
398
|
-
<span class="cline-any cline-no"> </span>
|
|
399
|
-
<span class="cline-any cline-neutral"> </span>
|
|
400
|
-
<span class="cline-any cline-yes">238×</span>
|
|
401
|
-
<span class="cline-any cline-neutral"> </span>
|
|
402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
404
|
-
<span class="cline-any cline-yes">607×</span>
|
|
405
|
-
<span class="cline-any cline-yes">607×</span>
|
|
406
|
-
<span class="cline-any cline-yes">607×</span>
|
|
407
|
-
<span class="cline-any cline-neutral"> </span>
|
|
408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
409
|
-
<span class="cline-any cline-yes">607×</span>
|
|
410
|
-
<span class="cline-any cline-yes">1214×</span>
|
|
411
|
-
<span class="cline-any cline-yes">1214×</span>
|
|
412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
415
|
-
<span class="cline-any cline-yes">607×</span>
|
|
416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-neutral"> </span>
|
|
421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
423
|
-
<span class="cline-any cline-neutral"> </span>
|
|
424
|
-
<span class="cline-any cline-yes">1×</span>
|
|
425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
426
|
-
<span class="cline-any cline-yes">321×</span>
|
|
427
|
-
<span class="cline-any cline-yes">2×</span>
|
|
428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
431
|
-
<span class="cline-any cline-yes">319×</span>
|
|
432
|
-
<span class="cline-any cline-yes">319×</span>
|
|
433
|
-
<span class="cline-any cline-yes">319×</span>
|
|
434
|
-
<span class="cline-any cline-yes">319×</span>
|
|
435
|
-
<span class="cline-any cline-yes">4×</span>
|
|
436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
438
|
-
<span class="cline-any cline-yes">315×</span>
|
|
439
|
-
<span class="cline-any cline-yes">54606634×</span>
|
|
440
|
-
<span class="cline-any cline-no"> </span>
|
|
441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
444
|
-
<span class="cline-any cline-yes">315×</span>
|
|
445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
447
|
-
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
449
|
-
<span class="cline-any cline-yes">319×</span>
|
|
450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
451
|
-
<span class="cline-any cline-neutral"> </span>
|
|
452
|
-
<span class="cline-any cline-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-neutral"> </span>
|
|
454
|
-
<span class="cline-any cline-neutral"> </span>
|
|
455
|
-
<span class="cline-any cline-neutral"> </span>
|
|
456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
458
|
-
<span class="cline-any cline-neutral"> </span>
|
|
459
|
-
<span class="cline-any cline-yes">1×</span>
|
|
460
|
-
<span class="cline-any cline-neutral"> </span>
|
|
461
|
-
<span class="cline-any cline-yes">317×</span>
|
|
462
|
-
<span class="cline-any cline-yes">245×</span>
|
|
463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
465
|
-
<span class="cline-any cline-neutral"> </span>
|
|
466
|
-
<span class="cline-any cline-yes">72×</span>
|
|
467
|
-
<span class="cline-any cline-neutral"> </span>
|
|
468
|
-
<span class="cline-any cline-yes">72×</span>
|
|
469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
470
|
-
<span class="cline-any cline-no"> </span>
|
|
471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
472
|
-
<span class="cline-any cline-neutral"> </span>
|
|
473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
474
|
-
<span class="cline-any cline-yes">72×</span>
|
|
475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-neutral"> </span>
|
|
479
|
-
<span class="cline-any cline-yes">1×</span>
|
|
480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
481
|
-
<span class="cline-any cline-neutral"> </span>
|
|
482
|
-
<span class="cline-any cline-neutral"> </span>
|
|
483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
484
|
-
<span class="cline-any cline-neutral"> </span>
|
|
485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
490
|
-
<span class="cline-any cline-neutral"> </span>
|
|
491
|
-
<span class="cline-any cline-neutral"> </span>
|
|
492
|
-
<span class="cline-any cline-yes">1×</span>
|
|
493
|
-
<span class="cline-any cline-yes">61×</span>
|
|
494
|
-
<span class="cline-any cline-neutral"> </span>
|
|
495
|
-
<span class="cline-any cline-yes">61×</span>
|
|
496
|
-
<span class="cline-any cline-yes">122×</span>
|
|
497
|
-
<span class="cline-any cline-neutral"> </span>
|
|
498
|
-
<span class="cline-any cline-yes">122×</span>
|
|
499
|
-
<span class="cline-any cline-neutral"> </span>
|
|
500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
502
|
-
<span class="cline-any cline-neutral"> </span>
|
|
503
|
-
<span class="cline-any cline-neutral"> </span>
|
|
504
|
-
<span class="cline-any cline-neutral"> </span>
|
|
505
|
-
<span class="cline-any cline-yes">122×</span>
|
|
506
|
-
<span class="cline-any cline-no"> </span>
|
|
507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
508
|
-
<span class="cline-any cline-neutral"> </span>
|
|
509
|
-
<span class="cline-any cline-neutral"> </span>
|
|
510
|
-
<span class="cline-any cline-yes">122×</span>
|
|
511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-neutral"> </span>
|
|
515
|
-
<span class="cline-any cline-yes">122×</span>
|
|
516
|
-
<span class="cline-any cline-neutral"> </span>
|
|
517
|
-
<span class="cline-any cline-yes">326×</span>
|
|
518
|
-
<span class="cline-any cline-neutral"> </span>
|
|
519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
520
|
-
<span class="cline-any cline-yes">122×</span>
|
|
521
|
-
<span class="cline-any cline-neutral"> </span>
|
|
522
|
-
<span class="cline-any cline-neutral"> </span>
|
|
523
|
-
<span class="cline-any cline-neutral"> </span>
|
|
524
|
-
<span class="cline-any cline-neutral"> </span>
|
|
525
|
-
<span class="cline-any cline-neutral"> </span>
|
|
526
|
-
<span class="cline-any cline-neutral"> </span>
|
|
527
|
-
<span class="cline-any cline-neutral"> </span>
|
|
528
|
-
<span class="cline-any cline-yes">1×</span>
|
|
529
|
-
<span class="cline-any cline-yes">96×</span>
|
|
530
|
-
<span class="cline-any cline-neutral"> </span>
|
|
531
|
-
<span class="cline-any cline-neutral"> </span>
|
|
532
|
-
<span class="cline-any cline-yes">96×</span>
|
|
533
|
-
<span class="cline-any cline-yes">120×</span>
|
|
534
|
-
<span class="cline-any cline-neutral"> </span>
|
|
535
|
-
<span class="cline-any cline-yes">120×</span>
|
|
536
|
-
<span class="cline-any cline-yes">120×</span>
|
|
537
|
-
<span class="cline-any cline-yes">120×</span>
|
|
538
|
-
<span class="cline-any cline-yes">120×</span>
|
|
539
|
-
<span class="cline-any cline-neutral"> </span>
|
|
540
|
-
<span class="cline-any cline-neutral"> </span>
|
|
541
|
-
<span class="cline-any cline-yes">96×</span>
|
|
542
|
-
<span class="cline-any cline-neutral"> </span>
|
|
543
|
-
<span class="cline-any cline-neutral"> </span>
|
|
544
|
-
<span class="cline-any cline-yes">1×</span>
|
|
545
|
-
<span class="cline-any cline-yes">16×</span>
|
|
546
|
-
<span class="cline-any cline-neutral"> </span>
|
|
547
|
-
<span class="cline-any cline-yes">16×</span>
|
|
548
|
-
<span class="cline-any cline-no"> </span>
|
|
549
|
-
<span class="cline-any cline-neutral"> </span>
|
|
550
|
-
<span class="cline-any cline-neutral"> </span>
|
|
551
|
-
<span class="cline-any cline-yes">16×</span>
|
|
552
|
-
<span class="cline-any cline-yes">16×</span>
|
|
553
|
-
<span class="cline-any cline-neutral"> </span>
|
|
554
|
-
<span class="cline-any cline-yes">16×</span>
|
|
555
|
-
<span class="cline-any cline-neutral"> </span>
|
|
556
|
-
<span class="cline-any cline-yes">15×</span>
|
|
557
|
-
<span class="cline-any cline-neutral"> </span>
|
|
558
|
-
<span class="cline-any cline-neutral"> </span>
|
|
559
|
-
<span class="cline-any cline-yes">16×</span>
|
|
560
|
-
<span class="cline-any cline-neutral"> </span>
|
|
561
|
-
<span class="cline-any cline-yes">16×</span>
|
|
562
|
-
<span class="cline-any cline-neutral"> </span>
|
|
563
|
-
<span class="cline-any cline-neutral"> </span>
|
|
564
|
-
<span class="cline-any cline-yes">1×</span>
|
|
565
|
-
<span class="cline-any cline-yes">538×</span>
|
|
566
|
-
<span class="cline-any cline-yes">538×</span>
|
|
567
|
-
<span class="cline-any cline-neutral"> </span>
|
|
568
|
-
<span class="cline-any cline-neutral"> </span>
|
|
569
|
-
<span class="cline-any cline-yes">1×</span>
|
|
570
|
-
<span class="cline-any cline-yes">10×</span>
|
|
571
|
-
<span class="cline-any cline-yes">10×</span>
|
|
572
|
-
<span class="cline-any cline-no"> </span>
|
|
573
|
-
<span class="cline-any cline-neutral"> </span>
|
|
574
|
-
<span class="cline-any cline-yes">10×</span>
|
|
575
|
-
<span class="cline-any cline-neutral"> </span>
|
|
576
|
-
<span class="cline-any cline-yes">10×</span>
|
|
577
|
-
<span class="cline-any cline-neutral"> </span>
|
|
578
|
-
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-yes">1×</span>
|
|
580
|
-
<span class="cline-any cline-yes">725×</span>
|
|
581
|
-
<span class="cline-any cline-yes">223×</span>
|
|
582
|
-
<span class="cline-any cline-neutral"> </span>
|
|
583
|
-
<span class="cline-any cline-neutral"> </span>
|
|
584
|
-
<span class="cline-any cline-neutral"> </span>
|
|
585
|
-
<span class="cline-any cline-neutral"> </span>
|
|
586
|
-
<span class="cline-any cline-yes">502×</span>
|
|
587
|
-
<span class="cline-any cline-yes">502×</span>
|
|
588
|
-
<span class="cline-any cline-yes">617×</span>
|
|
589
|
-
<span class="cline-any cline-yes">617×</span>
|
|
590
|
-
<span class="cline-any cline-yes">1×</span>
|
|
591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-yes">616×</span>
|
|
593
|
-
<span class="cline-any cline-neutral"> </span>
|
|
594
|
-
<span class="cline-any cline-neutral"> </span>
|
|
595
|
-
<span class="cline-any cline-yes">501×</span>
|
|
596
|
-
<span class="cline-any cline-neutral"> </span>
|
|
597
|
-
<span class="cline-any cline-neutral"> </span>
|
|
598
|
-
<span class="cline-any cline-yes">1×</span>
|
|
599
|
-
<span class="cline-any cline-yes">264×</span>
|
|
600
|
-
<span class="cline-any cline-yes">7×</span>
|
|
601
|
-
<span class="cline-any cline-neutral"> </span>
|
|
602
|
-
<span class="cline-any cline-neutral"> </span>
|
|
603
|
-
<span class="cline-any cline-neutral"> </span>
|
|
604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
605
|
-
<span class="cline-any cline-neutral"> </span>
|
|
606
|
-
<span class="cline-any cline-neutral"> </span>
|
|
607
|
-
<span class="cline-any cline-neutral"> </span>
|
|
608
|
-
<span class="cline-any cline-neutral"> </span>
|
|
609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
610
|
-
<span class="cline-any cline-neutral"> </span>
|
|
611
|
-
<span class="cline-any cline-yes">1×</span>
|
|
612
|
-
<span class="cline-any cline-neutral"> </span>
|
|
613
|
-
<span class="cline-any cline-yes">29×</span>
|
|
614
|
-
<span class="cline-any cline-no"> </span>
|
|
615
|
-
<span class="cline-any cline-neutral"> </span>
|
|
616
|
-
<span class="cline-any cline-neutral"> </span>
|
|
617
|
-
<span class="cline-any cline-yes">29×</span>
|
|
618
|
-
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
620
|
-
<span class="cline-any cline-yes">29×</span>
|
|
621
|
-
<span class="cline-any cline-yes">55×</span>
|
|
622
|
-
<span class="cline-any cline-yes">55×</span>
|
|
623
|
-
<span class="cline-any cline-yes">12×</span>
|
|
624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-neutral"> </span>
|
|
626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
627
|
-
<span class="cline-any cline-neutral"> </span>
|
|
628
|
-
<span class="cline-any cline-neutral"> </span>
|
|
629
|
-
<span class="cline-any cline-neutral"> </span>
|
|
630
|
-
<span class="cline-any cline-neutral"> </span>
|
|
631
|
-
<span class="cline-any cline-yes">1×</span>
|
|
632
|
-
<span class="cline-any cline-yes">10×</span>
|
|
633
|
-
<span class="cline-any cline-yes">10×</span>
|
|
634
|
-
<span class="cline-any cline-neutral"> </span>
|
|
635
|
-
<span class="cline-any cline-yes">2×</span>
|
|
636
|
-
<span class="cline-any cline-neutral"> </span>
|
|
637
|
-
<span class="cline-any cline-neutral"> </span>
|
|
638
|
-
<span class="cline-any cline-neutral"> </span>
|
|
639
|
-
<span class="cline-any cline-yes">1×</span>
|
|
640
|
-
<span class="cline-any cline-no"> </span>
|
|
641
|
-
<span class="cline-any cline-no"> </span>
|
|
642
|
-
<span class="cline-any cline-neutral"> </span>
|
|
643
|
-
<span class="cline-any cline-neutral"> </span>
|
|
644
|
-
<span class="cline-any cline-neutral"> </span>
|
|
645
|
-
<span class="cline-any cline-yes">1×</span>
|
|
646
|
-
<span class="cline-any cline-yes">7503×</span>
|
|
647
|
-
<span class="cline-any cline-yes">180×</span>
|
|
648
|
-
<span class="cline-any cline-neutral"> </span>
|
|
649
|
-
<span class="cline-any cline-yes">7323×</span>
|
|
650
|
-
<span class="cline-any cline-neutral"> </span>
|
|
651
|
-
<span class="cline-any cline-neutral"> </span>
|
|
652
|
-
<span class="cline-any cline-neutral"> </span>
|
|
653
|
-
<span class="cline-any cline-neutral"> </span>
|
|
654
|
-
<span class="cline-any cline-yes">1×</span>
|
|
655
|
-
<span class="cline-any cline-yes">53×</span>
|
|
656
|
-
<span class="cline-any cline-neutral"> </span>
|
|
657
|
-
<span class="cline-any cline-neutral"> </span>
|
|
658
|
-
<span class="cline-any cline-yes">15×</span>
|
|
659
|
-
<span class="cline-any cline-yes">15×</span>
|
|
660
|
-
<span class="cline-any cline-neutral"> </span>
|
|
661
|
-
<span class="cline-any cline-neutral"> </span>
|
|
662
|
-
<span class="cline-any cline-yes">2×</span>
|
|
663
|
-
<span class="cline-any cline-yes">2×</span>
|
|
664
|
-
<span class="cline-any cline-neutral"> </span>
|
|
665
|
-
<span class="cline-any cline-yes">25×</span>
|
|
666
|
-
<span class="cline-any cline-yes">4×</span>
|
|
667
|
-
<span class="cline-any cline-neutral"> </span>
|
|
668
|
-
<span class="cline-any cline-yes">25×</span>
|
|
669
|
-
<span class="cline-any cline-neutral"> </span>
|
|
670
|
-
<span class="cline-any cline-yes">2×</span>
|
|
671
|
-
<span class="cline-any cline-neutral"> </span>
|
|
672
|
-
<span class="cline-any cline-yes">6×</span>
|
|
673
|
-
<span class="cline-any cline-yes">6×</span>
|
|
674
|
-
<span class="cline-any cline-yes">17×</span>
|
|
675
|
-
<span class="cline-any cline-neutral"> </span>
|
|
676
|
-
<span class="cline-any cline-yes">6×</span>
|
|
677
|
-
<span class="cline-any cline-yes">6×</span>
|
|
678
|
-
<span class="cline-any cline-neutral"> </span>
|
|
679
|
-
<span class="cline-any cline-yes">3×</span>
|
|
680
|
-
<span class="cline-any cline-yes">3×</span>
|
|
681
|
-
<span class="cline-any cline-yes">3×</span>
|
|
682
|
-
<span class="cline-any cline-yes">3×</span>
|
|
683
|
-
<span class="cline-any cline-neutral"> </span>
|
|
684
|
-
<span class="cline-any cline-yes">3×</span>
|
|
685
|
-
<span class="cline-any cline-yes">3×</span>
|
|
686
|
-
<span class="cline-any cline-neutral"> </span>
|
|
687
|
-
<span class="cline-any cline-neutral"> </span>
|
|
688
|
-
<span class="cline-any cline-yes">53×</span>
|
|
689
|
-
<span class="cline-any cline-yes">53×</span>
|
|
690
|
-
<span class="cline-any cline-neutral"> </span>
|
|
691
|
-
<span class="cline-any cline-neutral"> </span>
|
|
692
|
-
<span class="cline-any cline-yes">1×</span>
|
|
693
|
-
<span class="cline-any cline-yes">470×</span>
|
|
694
|
-
<span class="cline-any cline-neutral"> </span>
|
|
695
|
-
<span class="cline-any cline-neutral"> </span>
|
|
696
|
-
<span class="cline-any cline-neutral"> </span>
|
|
697
|
-
<span class="cline-any cline-neutral"> </span>
|
|
698
|
-
<span class="cline-any cline-neutral"> </span>
|
|
699
|
-
<span class="cline-any cline-yes">1×</span>
|
|
700
|
-
<span class="cline-any cline-yes">1×</span>
|
|
701
|
-
<span class="cline-any cline-yes">1×</span>
|
|
702
|
-
<span class="cline-any cline-yes">1×</span>
|
|
703
|
-
<span class="cline-any cline-yes">1×</span>
|
|
704
|
-
<span class="cline-any cline-yes">1×</span>
|
|
705
|
-
<span class="cline-any cline-yes">1×</span>
|
|
706
|
-
<span class="cline-any cline-yes">1×</span>
|
|
707
|
-
<span class="cline-any cline-yes">1×</span>
|
|
708
|
-
<span class="cline-any cline-yes">1×</span>
|
|
709
|
-
<span class="cline-any cline-yes">1×</span>
|
|
710
|
-
<span class="cline-any cline-yes">1×</span>
|
|
711
|
-
<span class="cline-any cline-yes">1×</span>
|
|
712
|
-
<span class="cline-any cline-yes">1×</span>
|
|
713
|
-
<span class="cline-any cline-yes">1×</span>
|
|
714
|
-
<span class="cline-any cline-yes">1×</span>
|
|
715
|
-
<span class="cline-any cline-neutral"> </span>
|
|
716
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
|
|
717
|
-
|
|
718
|
-
var _ = require('lodash');
|
|
719
|
-
var debug = require('debug')('nock.common');
|
|
720
|
-
|
|
721
|
-
/**
|
|
722
|
-
* Normalizes the request options so that it always has `host` property.
|
|
723
|
-
*
|
|
724
|
-
* @param {Object} options - a parsed options object of the request
|
|
725
|
-
*/
|
|
726
|
-
var normalizeRequestOptions = function(options) {
|
|
727
|
-
options.proto = options.proto || (options._https_ ? 'https': 'http');
|
|
728
|
-
options.port = options.port || ((options.proto === 'http') ? 80 : 443);
|
|
729
|
-
if (options.host) {
|
|
730
|
-
debug('options.host:', options.host);
|
|
731
|
-
if (! options.hostname) {
|
|
732
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (options.host.split(':').length == 2) {
|
|
733
|
-
<span class="cstat-no" title="statement not covered" > options.hostname = options.host.split(':')[0];</span>
|
|
734
|
-
} else {
|
|
735
|
-
options.hostname = options.host;
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
}
|
|
739
|
-
debug('options.hostname in the end: %j', options.hostname);
|
|
740
|
-
options.host = (options.hostname || <span class="branch-1 cbranch-no" title="branch not covered" >'localhost')</span> + ':' + options.port;
|
|
741
|
-
debug('options.host in the end: %j', options.host);
|
|
742
|
-
|
|
743
|
-
/// lowercase host names
|
|
744
|
-
['hostname', 'host'].forEach(function(attr) {
|
|
745
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (options[attr]) {
|
|
746
|
-
options[attr] = options[attr].toLowerCase();
|
|
747
|
-
}
|
|
748
|
-
});
|
|
749
|
-
|
|
750
|
-
return options;
|
|
751
|
-
};
|
|
752
|
-
|
|
753
|
-
/**
|
|
754
|
-
* Returns true if the data contained in buffer is binary which in this case means
|
|
755
|
-
* that it cannot be reconstructed from its utf8 representation.
|
|
756
|
-
*
|
|
757
|
-
* @param {Object} buffer - a Buffer object
|
|
758
|
-
*/
|
|
759
|
-
var isBinaryBuffer = function(buffer) {
|
|
760
|
-
|
|
761
|
-
if(!Buffer.isBuffer(buffer)) {
|
|
762
|
-
return false;
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
// Test if the buffer can be reconstructed verbatim from its utf8 encoding.
|
|
766
|
-
var utfEncodedBuffer = buffer.toString('utf8');
|
|
767
|
-
var reconstructedBuffer = new Buffer(utfEncodedBuffer, 'utf8');
|
|
768
|
-
var compareBuffers = function(lhs, rhs) {
|
|
769
|
-
if(lhs.length !== rhs.length) {
|
|
770
|
-
return false;
|
|
771
|
-
}
|
|
772
|
-
|
|
773
|
-
for(var i = 0; i < lhs.length; ++i) {
|
|
774
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if(lhs[i] !== rhs[i]) {
|
|
775
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
776
|
-
}
|
|
777
|
-
}
|
|
778
|
-
|
|
779
|
-
return true;
|
|
780
|
-
};
|
|
781
|
-
|
|
782
|
-
// If the buffers are *not* equal then this is a "binary buffer"
|
|
783
|
-
// meaning that it cannot be faitfully represented in utf8.
|
|
784
|
-
return !compareBuffers(buffer, reconstructedBuffer);
|
|
785
|
-
|
|
786
|
-
};
|
|
787
|
-
|
|
788
|
-
/**
|
|
789
|
-
* If the chunks are Buffer objects then it returns a single Buffer object with the data from all the chunks.
|
|
790
|
-
* If the chunks are strings then it returns a single string value with data from all the chunks.
|
|
791
|
-
*
|
|
792
|
-
* @param {Array} chunks - an array of Buffer objects or strings
|
|
793
|
-
*/
|
|
794
|
-
var mergeChunks = function(chunks) {
|
|
795
|
-
|
|
796
|
-
if(_.isEmpty(chunks)) {
|
|
797
|
-
return new Buffer(0);
|
|
798
|
-
}
|
|
799
|
-
|
|
800
|
-
// We assume that all chunks are Buffer objects if the first is buffer object.
|
|
801
|
-
var areBuffers = Buffer.isBuffer(_.first(chunks));
|
|
802
|
-
|
|
803
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if(!areBuffers) {
|
|
804
|
-
// When the chunks are not buffers we assume that they are strings.
|
|
805
|
-
<span class="cstat-no" title="statement not covered" > return chunks.join('');</span>
|
|
806
|
-
}
|
|
807
|
-
|
|
808
|
-
// Merge all the buffers into a single Buffer object.
|
|
809
|
-
return Buffer.concat(chunks);
|
|
810
|
-
|
|
811
|
-
};
|
|
812
|
-
|
|
813
|
-
// Array where all information about all the overridden requests are held.
|
|
814
|
-
var requestOverride = [];
|
|
815
|
-
|
|
816
|
-
/**
|
|
817
|
-
* Overrides the current `request` function of `http` and `https` modules with
|
|
818
|
-
* our own version which intercepts issues HTTP/HTTPS requests and forwards them
|
|
819
|
-
* to the given `newRequest` function.
|
|
820
|
-
*
|
|
821
|
-
* @param {Function} newRequest - a function handling requests; it accepts four arguments:
|
|
822
|
-
* - proto - a string with the overridden module's protocol name (either `http` or `https`)
|
|
823
|
-
* - overriddenRequest - the overridden module's request function already bound to module's object
|
|
824
|
-
* - options - the options of the issued request
|
|
825
|
-
* - callback - the callback of the issued request
|
|
826
|
-
*/
|
|
827
|
-
var overrideRequests = function(newRequest) {
|
|
828
|
-
debug('overriding requests');
|
|
829
|
-
|
|
830
|
-
['http', 'https'].forEach(function(proto) {
|
|
831
|
-
debug('- overriding request for', proto);
|
|
832
|
-
|
|
833
|
-
var moduleName = proto, // 1 to 1 match of protocol and module is fortunate :)
|
|
834
|
-
module = {
|
|
835
|
-
http: require('http'),
|
|
836
|
-
https: require('https')
|
|
837
|
-
}[moduleName],
|
|
838
|
-
overriddenRequest = module.request;
|
|
839
|
-
|
|
840
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if(requestOverride[moduleName]) {
|
|
841
|
-
<span class="cstat-no" title="statement not covered" > throw new Error('Module\'s request already overridden for ' + moduleName + ' protocol.');</span>
|
|
842
|
-
}
|
|
843
|
-
|
|
844
|
-
// Store the properties of the overridden request so that it can be restored later on.
|
|
845
|
-
requestOverride[moduleName] = {
|
|
846
|
-
module: module,
|
|
847
|
-
request: overriddenRequest
|
|
848
|
-
};
|
|
849
|
-
|
|
850
|
-
module.request = function(options, callback) {
|
|
851
|
-
// debug('request options:', options);
|
|
852
|
-
return newRequest(proto, overriddenRequest.bind(module), options, callback);
|
|
853
|
-
};
|
|
854
|
-
|
|
855
|
-
debug('- overridden request for', proto);
|
|
856
|
-
});
|
|
857
|
-
};
|
|
858
|
-
|
|
859
|
-
/**
|
|
860
|
-
* Restores `request` function of `http` and `https` modules to values they
|
|
861
|
-
* held before they were overridden by us.
|
|
862
|
-
*/
|
|
863
|
-
var restoreOverriddenRequests = function() {
|
|
864
|
-
debug('restoring requests');
|
|
865
|
-
|
|
866
|
-
// Restore any overridden requests.
|
|
867
|
-
_(requestOverride).keys().each(function(proto) {
|
|
868
|
-
debug('- restoring request for', proto);
|
|
869
|
-
|
|
870
|
-
var override = requestOverride[proto];
|
|
871
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if(override) {
|
|
872
|
-
override.module.request = override.request;
|
|
873
|
-
debug('- restored request for', proto);
|
|
874
|
-
}
|
|
875
|
-
});
|
|
876
|
-
requestOverride = [];
|
|
877
|
-
};
|
|
878
|
-
|
|
879
|
-
function stringifyRequest(options, body) {
|
|
880
|
-
var method = options.method || 'GET';
|
|
881
|
-
|
|
882
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (body && <span class="branch-1 cbranch-no" title="branch not covered" >typeof(body) !== 'string')</span> {
|
|
883
|
-
<span class="cstat-no" title="statement not covered" > body = body.toString();</span>
|
|
884
|
-
}
|
|
885
|
-
|
|
886
|
-
var port = options.port;
|
|
887
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (! port) <span class="cstat-no" title="statement not covered" >port = (options.proto == 'https' ? '443' : '80');</span>
|
|
888
|
-
|
|
889
|
-
if (options.proto == 'https' && port == '443' ||
|
|
890
|
-
options.proto == 'http' && port == '80') {
|
|
891
|
-
port = '';
|
|
892
|
-
}
|
|
893
|
-
|
|
894
|
-
if (port) port = ':' + port;
|
|
895
|
-
|
|
896
|
-
return method + ' ' + options.proto + '://' + options.hostname + port + options.path + ' ' + body;
|
|
897
|
-
}
|
|
898
|
-
|
|
899
|
-
function isContentEncoded(headers) {
|
|
900
|
-
var contentEncoding = _.get(headers, 'content-encoding');
|
|
901
|
-
return _.isString(contentEncoding) && contentEncoding !== '';
|
|
902
|
-
}
|
|
903
|
-
|
|
904
|
-
function isJSONContent(headers) {
|
|
905
|
-
var contentType = _.get(headers, 'content-type');
|
|
906
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(contentType)) {
|
|
907
|
-
<span class="cstat-no" title="statement not covered" > contentType = contentType[0];</span>
|
|
908
|
-
}
|
|
909
|
-
contentType = (contentType || '').toLocaleLowerCase();
|
|
910
|
-
|
|
911
|
-
return contentType === 'application/json';
|
|
912
|
-
}
|
|
913
|
-
|
|
914
|
-
var headersFieldNamesToLowerCase = function(headers) {
|
|
915
|
-
if(!_.isObject(headers)) {
|
|
916
|
-
return headers;
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
// For each key in the headers, delete its value and reinsert it with lower-case key.
|
|
920
|
-
// Keys represent headers field names.
|
|
921
|
-
var lowerCaseHeaders = {};
|
|
922
|
-
_.forOwn(headers, function(fieldVal, fieldName) {
|
|
923
|
-
var lowerCaseFieldName = fieldName.toLowerCase();
|
|
924
|
-
if(!_.isUndefined(lowerCaseHeaders[lowerCaseFieldName])) {
|
|
925
|
-
throw new Error('Failed to convert header keys to lower case due to field name conflict: ' + lowerCaseFieldName);
|
|
926
|
-
}
|
|
927
|
-
lowerCaseHeaders[lowerCaseFieldName] = fieldVal;
|
|
928
|
-
});
|
|
929
|
-
|
|
930
|
-
return lowerCaseHeaders;
|
|
931
|
-
};
|
|
932
|
-
|
|
933
|
-
var headersFieldsArrayToLowerCase = function (headers) {
|
|
934
|
-
return _.uniq(_.map(headers, function (fieldName) {
|
|
935
|
-
return fieldName.toLowerCase();
|
|
936
|
-
}));
|
|
937
|
-
};
|
|
938
|
-
|
|
939
|
-
/**
|
|
940
|
-
* Deletes the given `fieldName` property from `headers` object by performing
|
|
941
|
-
* case-insensitive search through keys.
|
|
942
|
-
*
|
|
943
|
-
* @headers {Object} headers - object of header field names and values
|
|
944
|
-
* @fieldName {String} field name - string with the case-insensitive field name
|
|
945
|
-
*/
|
|
946
|
-
var deleteHeadersField = function(headers, fieldNameToDelete) {
|
|
947
|
-
|
|
948
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if(!_.isObject(headers) || !_.isString(fieldNameToDelete)) {
|
|
949
|
-
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
var lowerCaseFieldNameToDelete = fieldNameToDelete.toLowerCase();
|
|
953
|
-
|
|
954
|
-
// Search through the headers and delete all values whose field name matches the given field name.
|
|
955
|
-
_(headers).keys().each(function(fieldName) {
|
|
956
|
-
var lowerCaseFieldName = fieldName.toLowerCase();
|
|
957
|
-
if(lowerCaseFieldName === lowerCaseFieldNameToDelete) {
|
|
958
|
-
delete headers[fieldName];
|
|
959
|
-
// We don't stop here but continue in order to remove *all* matching field names
|
|
960
|
-
// (even though if seen regorously there shouldn't be any)
|
|
961
|
-
}
|
|
962
|
-
});
|
|
963
|
-
|
|
964
|
-
};
|
|
965
|
-
|
|
966
|
-
function percentDecode (str) {
|
|
967
|
-
try {
|
|
968
|
-
return decodeURIComponent(str.replace(/\+/g, ' '));
|
|
969
|
-
} catch (e) {
|
|
970
|
-
return str;
|
|
971
|
-
}
|
|
972
|
-
}
|
|
973
|
-
|
|
974
|
-
<span class="fstat-no" title="function not covered" >function percentEncode(str) {</span>
|
|
975
|
-
<span class="cstat-no" title="statement not covered" > return encodeURIComponent(str).replace(/[!'()*]/g, <span class="fstat-no" title="function not covered" >function(c) {</span></span>
|
|
976
|
-
<span class="cstat-no" title="statement not covered" > return '%' + c.charCodeAt(0).toString(16).toUpperCase();</span>
|
|
977
|
-
});
|
|
978
|
-
}
|
|
979
|
-
|
|
980
|
-
function matchStringOrRegexp(target, pattern) {
|
|
981
|
-
if (pattern instanceof RegExp) {
|
|
982
|
-
return target.toString().match(pattern);
|
|
983
|
-
} else {
|
|
984
|
-
return target === pattern;
|
|
985
|
-
}
|
|
986
|
-
}
|
|
987
|
-
|
|
988
|
-
// return [newKey, newValue]
|
|
989
|
-
function formatQueryValue(key, value, options) {
|
|
990
|
-
switch (true) {
|
|
991
|
-
case _.isNumber(value): // fall-though
|
|
992
|
-
case _.isBoolean(value):
|
|
993
|
-
value = value.toString();
|
|
994
|
-
break;
|
|
995
|
-
<span class="branch-2 cbranch-no" title="branch not covered" > case _.isUndefined(value): </span>// fall-though
|
|
996
|
-
case _.isNull(value):
|
|
997
|
-
value = '';
|
|
998
|
-
break;
|
|
999
|
-
case _.isString(value):
|
|
1000
|
-
if(options.encodedQueryParams) {
|
|
1001
|
-
value = percentDecode(value);
|
|
1002
|
-
}
|
|
1003
|
-
break;
|
|
1004
|
-
case (value instanceof RegExp):
|
|
1005
|
-
break;
|
|
1006
|
-
case _.isArray(value):
|
|
1007
|
-
var tmpArray = new Array(value.length);
|
|
1008
|
-
for (var i = 0; i < value.length; ++i) {
|
|
1009
|
-
tmpArray[i] = formatQueryValue(i, value[i], options)[1];
|
|
1010
|
-
}
|
|
1011
|
-
value = tmpArray;
|
|
1012
|
-
break;
|
|
1013
|
-
case _.isObject(value):
|
|
1014
|
-
var tmpObj = {};
|
|
1015
|
-
_.forOwn(value, function(subVal, subKey){
|
|
1016
|
-
var subPair = formatQueryValue(subKey, subVal, options);
|
|
1017
|
-
tmpObj[subPair[0]] = subPair[1];
|
|
1018
|
-
});
|
|
1019
|
-
value = tmpObj;
|
|
1020
|
-
break;
|
|
1021
|
-
}
|
|
1022
|
-
|
|
1023
|
-
if (options.encodedQueryParams) key = percentDecode(key);
|
|
1024
|
-
return [key, value];
|
|
1025
|
-
}
|
|
1026
|
-
|
|
1027
|
-
function isStream(obj) {
|
|
1028
|
-
return obj &&
|
|
1029
|
-
(typeof a !== 'string') &&
|
|
1030
|
-
(! Buffer.isBuffer(obj)) &&
|
|
1031
|
-
_.isFunction(obj.setEncoding);
|
|
1032
|
-
}
|
|
1033
|
-
|
|
1034
|
-
exports.normalizeRequestOptions = normalizeRequestOptions;
|
|
1035
|
-
exports.isBinaryBuffer = isBinaryBuffer;
|
|
1036
|
-
exports.mergeChunks = mergeChunks;
|
|
1037
|
-
exports.overrideRequests = overrideRequests;
|
|
1038
|
-
exports.restoreOverriddenRequests = restoreOverriddenRequests;
|
|
1039
|
-
exports.stringifyRequest = stringifyRequest;
|
|
1040
|
-
exports.isContentEncoded = isContentEncoded;
|
|
1041
|
-
exports.isJSONContent = isJSONContent;
|
|
1042
|
-
exports.headersFieldNamesToLowerCase = headersFieldNamesToLowerCase;
|
|
1043
|
-
exports.headersFieldsArrayToLowerCase = headersFieldsArrayToLowerCase;
|
|
1044
|
-
exports.deleteHeadersField = deleteHeadersField;
|
|
1045
|
-
exports.percentEncode = percentEncode;
|
|
1046
|
-
exports.percentDecode = percentDecode;
|
|
1047
|
-
exports.matchStringOrRegexp = matchStringOrRegexp;
|
|
1048
|
-
exports.formatQueryValue = formatQueryValue;
|
|
1049
|
-
exports.isStream = isStream;
|
|
1050
|
-
|
|
1051
|
-
</pre></td></tr>
|
|
1052
|
-
</table></pre>
|
|
1053
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
1054
|
-
</div><!-- /wrapper -->
|
|
1055
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
1056
|
-
Code coverage
|
|
1057
|
-
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Apr 06 2016 10:42:20 GMT+0100 (BST)
|
|
1058
|
-
</div>
|
|
1059
|
-
</div>
|
|
1060
|
-
<script src="../../prettify.js"></script>
|
|
1061
|
-
<script>
|
|
1062
|
-
window.onload = function () {
|
|
1063
|
-
if (typeof prettyPrint === 'function') {
|
|
1064
|
-
prettyPrint();
|
|
1065
|
-
}
|
|
1066
|
-
};
|
|
1067
|
-
</script>
|
|
1068
|
-
<script src="../../sorter.js"></script>
|
|
1069
|
-
</body>
|
|
1070
|
-
</html>
|