/node_modules/request/tests/test-follow-all.js

https://bitbucket.org/gagginaspinnata/todo-app-with-angularjs · JavaScript · 35 lines · 28 code · 6 blank · 1 comment · 5 complexity · 496d91366d1e0d8b8a4a42489c74f838 MD5 · raw file

  1. var request = require('../main');
  2. var http = require('http');
  3. var requests = 0;
  4. var assert = require('assert');
  5. var server = http.createServer(function (req, res) {
  6. requests ++;
  7. // redirect everything 3 times, no matter what.
  8. var c = req.headers.cookie;
  9. if (!c) c = 0;
  10. else c = +c.split('=')[1] || 0;
  11. if (c > 3) {
  12. res.end('ok: '+requests);
  13. return;
  14. }
  15. res.setHeader('set-cookie', 'c=' + (c + 1));
  16. res.setHeader('location', req.url);
  17. res.statusCode = 302;
  18. res.end('try again, i guess\n');
  19. });
  20. server.listen(6767);
  21. request.post({ url: 'http://localhost:6767/foo',
  22. followAllRedirects: true,
  23. form: { foo: 'bar' } }, function (er, req, body) {
  24. if (er) throw er;
  25. assert.equal(body, 'ok: 5');
  26. assert.equal(requests, 5);
  27. console.error('ok - ' + process.version);
  28. server.close();
  29. });