1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- try {
- require('tough-cookie')
- } catch (e) {
- console.error('tough-cookie must be installed to run this test.')
- console.error('skipping this test. please install tough-cookie and run again if you need to test this feature.')
- process.exit(0)
- }
- var request = require('../index');
- var http = require('http');
- var requests = 0;
- var assert = require('assert');
- var server = http.createServer(function (req, res) {
- requests ++;
- // redirect everything 3 times, no matter what.
- var c = req.headers.cookie;
- if (!c) c = 0;
- else c = +c.split('=')[1] || 0;
- if (c > 3) {
- res.end('ok: '+requests);
- return;
- }
- res.setHeader('set-cookie', 'c=' + (c + 1));
- res.setHeader('location', req.url);
- res.statusCode = 302;
- res.end('try again, i guess\n');
- });
- server.listen(6767);
- request.post({ url: 'http://localhost:6767/foo',
- followAllRedirects: true,
- jar: true,
- form: { foo: 'bar' } }, function (er, req, body) {
- if (er) throw er;
- assert.equal(body, 'ok: 5');
- assert.equal(requests, 5);
- console.error('ok - ' + process.version);
- server.close();
- });
|