Sha256: 87219e6c4670950cd8fbcb266746caaff88dba8ed54ababb75e0a32f3a57da28

Contents?: true

Size: 1.32 KB

Versions: 19

Compression:

Stored size: 1.32 KB

Contents

var server = require('./server')
  , assert = require('assert')
  , request = require('../index')


var s = server.createServer()
var ss = server.createSSLServer()
var sUrl = 'http://localhost:' + s.port
var ssUrl = 'https://localhost:' + ss.port

s.listen(s.port, bouncy(s, ssUrl))
ss.listen(ss.port, bouncy(ss, sUrl))

var hits = {}
var expect = {}
var pending = 0
function bouncy (s, server) { return function () {

  var redirs = { a: 'b'
               , b: 'c'
               , c: 'd'
               , d: 'e'
               , e: 'f'
               , f: 'g'
               , g: 'h'
               , h: 'end' }

  var perm = true
  Object.keys(redirs).forEach(function (p) {
    var t = redirs[p]

    // switch type each time
    var type = perm ? 301 : 302
    perm = !perm
    s.on('/' + p, function (req, res) {
      res.writeHead(type, { location: server + '/' + t })
      res.end()
    })
  })

  s.on('/end', function (req, res) {
    var h = req.headers['x-test-key']
    hits[h] = true
    pending --
    if (pending === 0) done()
  })
}}

for (var i = 0; i < 5; i ++) {
  pending ++
  var val = 'test_' + i
  expect[val] = true
  request({ url: (i % 2 ? sUrl : ssUrl) + '/a'
          , headers: { 'x-test-key': val }
          , rejectUnauthorized: false })
}

function done () {
  assert.deepEqual(hits, expect)
  process.exit(0)
}

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
ela-4.1.6 node_modules/request/tests/test-protocol-changing-redirect.js
ela-4.1.5 node_modules/request/tests/test-protocol-changing-redirect.js
ela-4.1.4 node_modules/request/tests/test-protocol-changing-redirect.js
ela-4.1.3 node_modules/request/tests/test-protocol-changing-redirect.js
ela-4.1.2 node_modules/request/tests/test-protocol-changing-redirect.js
ela-4.1.1 node_modules/request/tests/test-protocol-changing-redirect.js
ela-4.1.0 node_modules/request/tests/test-protocol-changing-redirect.js
ela-4.0.0 node_modules/request/tests/test-protocol-changing-redirect.js
ela-3.4.3 node_modules/request/tests/test-protocol-changing-redirect.js
ela-3.4.2 node_modules/request/tests/test-protocol-changing-redirect.js
ela-3.4.0 node_modules/request/tests/test-protocol-changing-redirect.js
ela-3.3.1 node_modules/request/tests/test-protocol-changing-redirect.js
ela-3.3.0 node_modules/request/tests/test-protocol-changing-redirect.js
ela-3.2.0 node_modules/request/tests/test-protocol-changing-redirect.js
ela-3.1.1 node_modules/request/tests/test-protocol-changing-redirect.js
ela-3.1.0 node_modules/request/tests/test-protocol-changing-redirect.js
ela-3.0.0 node_modules/request/tests/test-protocol-changing-redirect.js
ela-2.0.0 node_modules/request/tests/test-protocol-changing-redirect.js
ela-1.1.0 node_modules/request/tests/test-protocol-changing-redirect.js