123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- var should = require('should')
- var needle = require('./../')
- describe('follow redirects when read_timeout is set', function () {
- it('clear timeout before following redirect', function (done) {
- var opts = {
- open_timeout: 1000,
- read_timeout: 3000,
- follow: 5,
- user_agent: 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36'
- }
- var timedOut = 0
- var redirects = 0
- var timer = setTimeout(function () {
- var hasRedirects = redirects > 0
- hasRedirects.should.equal(true)
- done()
- }, opts.read_timeout || 3000)
- var resp = needle.get('http://google.com/', opts, function (err, resp, body) {
- var noErr = err === null
- var hasBody = body.length > 0
- noErr.should.equal(true);
- hasBody.should.equal(true);
- });
- resp.on('redirect', function (location) {
- redirects++
- // console.info(' Redirected to ', location)
- })
- resp.on('timeout', function (type) {
- timedOut++
- timedOut.should.equal(0)
- // console.error(' ', type, 'timeout')
- clearTimeout(timer)
- done()
- })
- }).timeout(30000)
- })
|