mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
104 lines
2.3 KiB
JavaScript
104 lines
2.3 KiB
JavaScript
var nock = require('nock');
|
|
|
|
nock.enableNetConnect('127.0.0.1');
|
|
|
|
function echoheaders(origin) {
|
|
nock(origin)
|
|
.persist()
|
|
.get('/echoheaders')
|
|
.reply(function(uri) {
|
|
var headers = this.req.headers;
|
|
var excluded_headers = [
|
|
'accept-encoding',
|
|
'user-agent',
|
|
'connection',
|
|
// Remove this header since its value is platform-specific.
|
|
'x-forwarded-for',
|
|
'test-include-xfwd',
|
|
];
|
|
if (!('test-include-xfwd' in headers)) {
|
|
excluded_headers.push('x-forwarded-port');
|
|
excluded_headers.push('x-forwarded-proto');
|
|
}
|
|
var response = {};
|
|
Object.keys(headers).forEach(function(name) {
|
|
if (excluded_headers.indexOf(name) === -1) {
|
|
response[name] = headers[name];
|
|
}
|
|
});
|
|
return response;
|
|
});
|
|
}
|
|
|
|
nock('http://example.com')
|
|
.persist()
|
|
.get('/')
|
|
.reply(200, 'Response from example.com')
|
|
|
|
.post('/echopost')
|
|
.reply(200, function(uri, requestBody) {
|
|
return requestBody;
|
|
})
|
|
|
|
.get('/setcookie')
|
|
.reply(200, '', {
|
|
'Set-Cookie': 'x',
|
|
'Set-Cookie2': 'y',
|
|
'Set-Cookie3': 'z', // This is not a special cookie setting header.
|
|
})
|
|
|
|
.get('/redirecttarget')
|
|
.reply(200, 'redirect target', {
|
|
'Some header': 'value'
|
|
})
|
|
|
|
.head('/redirect')
|
|
.reply(302, '', {
|
|
'Location': '/redirecttarget'
|
|
})
|
|
|
|
.get('/redirect')
|
|
.reply(302, 'redirecting...', {
|
|
'header at redirect': 'should not be here',
|
|
'Location': '/redirecttarget'
|
|
})
|
|
|
|
.get('/redirectposttarget')
|
|
.reply(200, 'post target')
|
|
|
|
.post('/redirectposttarget')
|
|
.reply(200, 'post target (POST)')
|
|
|
|
.post('/redirectpost')
|
|
.reply(302, 'redirecting...', {
|
|
'Location': '/redirectposttarget'
|
|
})
|
|
|
|
.post('/redirect307')
|
|
.reply(307, 'redirecting...', {
|
|
'Location': '/redirectposttarget'
|
|
})
|
|
|
|
.get('/redirect2redirect')
|
|
.reply(302, 'redirecting to redirect...', {
|
|
'Location': '/redirect'
|
|
})
|
|
|
|
.get('/redirectloop')
|
|
.reply(302, 'redirecting ad infinitum...', {
|
|
'Location': '/redirectloop'
|
|
})
|
|
|
|
.get('/proxyerror')
|
|
.replyWithError('throw node')
|
|
;
|
|
|
|
echoheaders('http://example.com');
|
|
echoheaders('http://example.com:1337');
|
|
echoheaders('https://example.com');
|
|
echoheaders('https://example.com:1337');
|
|
|
|
nock('http://robots.txt')
|
|
.get('/')
|
|
.reply(200, 'this is http://robots.txt');
|