mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
3.8 KiB
129 lines
3.8 KiB
var server = require('./server')
|
|
, assert = require('assert')
|
|
, request = require('../index')
|
|
;
|
|
|
|
var s = server.createServer();
|
|
|
|
s.listen(s.port, function () {
|
|
var counter = 0;
|
|
s.on('/get', function (req, resp) {
|
|
assert.equal(req.headers.foo, 'bar');
|
|
assert.equal(req.method, 'GET')
|
|
resp.writeHead(200, {'Content-Type': 'text/plain'});
|
|
resp.end('TESTING!');
|
|
});
|
|
|
|
// test get(string, function)
|
|
request.defaults({headers:{foo:"bar"}})(s.url + '/get', function (e, r, b){
|
|
if (e) throw e;
|
|
assert.deepEqual("TESTING!", b);
|
|
counter += 1;
|
|
});
|
|
|
|
s.on('/post', function (req, resp) {
|
|
assert.equal(req.headers.foo, 'bar');
|
|
assert.equal(req.headers['content-type'], null);
|
|
assert.equal(req.method, 'POST')
|
|
resp.writeHead(200, {'Content-Type': 'application/json'});
|
|
resp.end(JSON.stringify({foo:'bar'}));
|
|
});
|
|
|
|
// test post(string, object, function)
|
|
request.defaults({headers:{foo:"bar"}}).post(s.url + '/post', {json: true}, function (e, r, b){
|
|
if (e) throw e;
|
|
assert.deepEqual('bar', b.foo);
|
|
counter += 1;
|
|
});
|
|
|
|
s.on('/patch', function (req, resp) {
|
|
assert.equal(req.headers.foo, 'bar');
|
|
assert.equal(req.headers['content-type'], null);
|
|
assert.equal(req.method, 'PATCH')
|
|
resp.writeHead(200, {'Content-Type': 'application/json'});
|
|
resp.end(JSON.stringify({foo:'bar'}));
|
|
});
|
|
|
|
// test post(string, object, function)
|
|
request.defaults({headers:{foo:"bar"}}).patch(s.url + '/patch', {json: true}, function (e, r, b){
|
|
if (e) throw e;
|
|
assert.deepEqual('bar', b.foo);
|
|
counter += 1;
|
|
});
|
|
|
|
s.on('/post-body', function (req, resp) {
|
|
assert.equal(req.headers.foo, 'bar');
|
|
assert.equal(req.headers['content-type'], 'application/json');
|
|
assert.equal(req.method, 'POST')
|
|
resp.writeHead(200, {'Content-Type': 'application/json'});
|
|
resp.end(JSON.stringify({foo:'bar'}));
|
|
});
|
|
|
|
// test post(string, object, function) with body
|
|
request.defaults({headers:{foo:"bar"}}).post(s.url + '/post-body', {json: true, body:{bar:"baz"}}, function (e, r, b){
|
|
if (e) throw e;
|
|
assert.deepEqual('bar', b.foo);
|
|
counter += 1;
|
|
});
|
|
|
|
s.on('/del', function (req, resp) {
|
|
assert.equal(req.headers.foo, 'bar');
|
|
assert.equal(req.method, 'DELETE')
|
|
resp.writeHead(200, {'Content-Type': 'application/json'});
|
|
resp.end(JSON.stringify({foo:'bar'}));
|
|
});
|
|
|
|
// test .del(string, function)
|
|
request.defaults({headers:{foo:"bar"}, json:true}).del(s.url + '/del', function (e, r, b){
|
|
if (e) throw e;
|
|
assert.deepEqual('bar', b.foo);
|
|
counter += 1;
|
|
});
|
|
|
|
s.on('/head', function (req, resp) {
|
|
assert.equal(req.headers.foo, 'bar');
|
|
assert.equal(req.method, 'HEAD')
|
|
resp.writeHead(200, {'Content-Type': 'text/plain'});
|
|
resp.end();
|
|
});
|
|
|
|
// test head.(object, function)
|
|
request.defaults({headers:{foo:"bar"}}).head({uri: s.url + '/head'}, function (e, r, b){
|
|
if (e) throw e;
|
|
counter += 1;
|
|
});
|
|
|
|
s.on('/get_custom', function(req, resp) {
|
|
assert.equal(req.headers.foo, 'bar');
|
|
assert.equal(req.headers.x, 'y');
|
|
resp.writeHead(200, {'Content-Type': 'text/plain'});
|
|
resp.end();
|
|
});
|
|
|
|
// test custom request handler function
|
|
var defaultRequest = request.defaults({
|
|
headers:{foo:"bar"}
|
|
, body: 'TESTING!'
|
|
}, function(uri, options, callback) {
|
|
var params = request.initParams(uri, options, callback);
|
|
options = params.options;
|
|
options.headers.x = 'y';
|
|
|
|
return request(params.uri, params.options, params.callback);
|
|
});
|
|
|
|
var msg = 'defaults test failed. head request should throw earlier';
|
|
assert.throws(function() {
|
|
defaultRequest.head(s.url + '/get_custom', function(e, r, b) {
|
|
throw new Error(msg);
|
|
});
|
|
counter+=1;
|
|
}, msg);
|
|
|
|
defaultRequest.get(s.url + '/get_custom', function(e, r, b) {
|
|
if(e) throw e;
|
|
counter += 1;
|
|
console.log(counter.toString() + " tests passed.");
|
|
s.close();
|
|
});
|
|
})
|
|
|