/node_modules/request/tests/test-defaults.js

https://bitbucket.org/gagginaspinnata/todo-app-with-angularjs · JavaScript · 99 lines · 80 code · 14 blank · 5 comment · 5 complexity · b50d7b779fa8db3aae39eecf6179bee5 MD5 · raw file

  1. var server = require('./server')
  2. , assert = require('assert')
  3. , request = require('../main.js')
  4. ;
  5. var s = server.createServer();
  6. s.listen(s.port, function () {
  7. var counter = 0;
  8. s.on('/get', function (req, resp) {
  9. assert.equal(req.headers.foo, 'bar');
  10. assert.equal(req.method, 'GET')
  11. resp.writeHead(200, {'Content-Type': 'text/plain'});
  12. resp.end('TESTING!');
  13. });
  14. // test get(string, function)
  15. request.defaults({headers:{foo:"bar"}})(s.url + '/get', function (e, r, b){
  16. if (e) throw e;
  17. assert.deepEqual("TESTING!", b);
  18. counter += 1;
  19. });
  20. s.on('/post', function (req, resp) {
  21. assert.equal(req.headers.foo, 'bar');
  22. assert.equal(req.headers['content-type'], 'application/json');
  23. assert.equal(req.method, 'POST')
  24. resp.writeHead(200, {'Content-Type': 'application/json'});
  25. resp.end(JSON.stringify({foo:'bar'}));
  26. });
  27. // test post(string, object, function)
  28. request.defaults({headers:{foo:"bar"}}).post(s.url + '/post', {json: true}, function (e, r, b){
  29. if (e) throw e;
  30. assert.deepEqual('bar', b.foo);
  31. counter += 1;
  32. });
  33. s.on('/del', function (req, resp) {
  34. assert.equal(req.headers.foo, 'bar');
  35. assert.equal(req.method, 'DELETE')
  36. resp.writeHead(200, {'Content-Type': 'application/json'});
  37. resp.end(JSON.stringify({foo:'bar'}));
  38. });
  39. // test .del(string, function)
  40. request.defaults({headers:{foo:"bar"}, json:true}).del(s.url + '/del', function (e, r, b){
  41. if (e) throw e;
  42. assert.deepEqual('bar', b.foo);
  43. counter += 1;
  44. });
  45. s.on('/head', function (req, resp) {
  46. assert.equal(req.headers.foo, 'bar');
  47. assert.equal(req.method, 'HEAD')
  48. resp.writeHead(200, {'Content-Type': 'text/plain'});
  49. resp.end();
  50. });
  51. // test head.(object, function)
  52. request.defaults({headers:{foo:"bar"}}).head({uri: s.url + '/head'}, function (e, r, b){
  53. if (e) throw e;
  54. counter += 1;
  55. });
  56. s.on('/get_custom', function(req, resp) {
  57. assert.equal(req.headers.foo, 'bar');
  58. assert.equal(req.headers.x, 'y');
  59. resp.writeHead(200, {'Content-Type': 'text/plain'});
  60. resp.end();
  61. });
  62. // test custom request handler function
  63. var defaultRequest = request.defaults({
  64. headers:{foo:"bar"}
  65. , body: 'TESTING!'
  66. }, function(uri, options, callback) {
  67. var params = request.initParams(uri, options, callback);
  68. options = params.options;
  69. options.headers.x = 'y';
  70. return request(params.uri, params.options, params.callback);
  71. });
  72. var msg = 'defaults test failed. head request should throw earlier';
  73. assert.throws(function() {
  74. defaultRequest.head(s.url + '/get_custom', function(e, r, b) {
  75. throw new Error(msg);
  76. });
  77. counter+=1;
  78. }, msg);
  79. defaultRequest.get(s.url + '/get_custom', function(e, r, b) {
  80. if(e) throw e;
  81. counter += 1;
  82. console.log(counter.toString() + " tests passed.");
  83. s.close();
  84. });
  85. })