Skip to content

Commit

Permalink
test cookie jars
Browse files Browse the repository at this point in the history
  • Loading branch information
Contra committed Dec 4, 2012
1 parent b502452 commit 977e949
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 7 deletions.
9 changes: 5 additions & 4 deletions lib/main.coffee
Original file line number Original file line Diff line number Diff line change
@@ -1,11 +1,10 @@
request = require 'request' request = require 'request'
async = require 'async' async = require 'async'
qs = require 'qs' qs = require 'qs'
silo = require 'silo'


ignoredHeaders = ["cookie","referer","host","connection","accept-encoding"] ignoredHeaders = ["cookie","referer","host","connection","accept-encoding"]
defaultCookies = defaultCookies = new silo.Memory()
get: (id, cb) -> cb()
set: (id, cookies, cb) -> cb()


module.exports = module.exports =
createProxy: (opt={}) -> createProxy: (opt={}) ->
Expand All @@ -24,11 +23,13 @@ module.exports =
opt.cookies.get id, (err, cookie) -> opt.cookies.get id, (err, cookie) ->
return res.send 500, err if err? return res.send 500, err if err?
jar = request.jar() jar = request.jar()
jar.add cookie if cookie? jar.add request.cookie cookie if cookie?


head = {} head = {}
head[k]=v for k,v of req.headers when not (k.toLowerCase() in ignoredHeaders) head[k]=v for k,v of req.headers when not (k.toLowerCase() in ignoredHeaders)


delete req.body if typeof req.body is 'object'

ropt = ropt =
headers: head headers: head
method: req.method method: req.method
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"coffee-script":"*", "coffee-script":"*",
"async": "*", "async": "*",
"request": "*", "request": "*",
"qs": "*" "qs": "*",
"silo": "*"
}, },
"devDependencies":{ "devDependencies":{
"mocha":"*", "mocha":"*",
Expand Down
24 changes: 22 additions & 2 deletions test/main.coffee
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -17,19 +17,29 @@ describe 'moxy', ->
proxy = moxy.createProxy() proxy = moxy.createProxy()


app = express() app = express()
app.use express.bodyParser()
app.all '/proxy/:id', proxy app.all '/proxy/:id', proxy
app.listen 8008 app.listen 8008


second = false
app2 = express() app2 = express()
app2.use express.cookieParser()
app2.use express.bodyParser()
app2.get '/test', (req, res) -> app2.get '/test', (req, res) ->
should.exist req.header('Client-Header') should.exist req.header('Client-Header')
req.header('Client-Header').should.equal 'wot' req.header('Client-Header').should.equal 'wot'
should.exist req.query.wat should.exist req.query.wat
req.query.wat.should.equal 'dood' req.query.wat.should.equal 'dood'
if second
should.exist req.cookies.wat
req.cookies.wat.should.equal 'dood'

res res
.status(200) .status(200)
.cookie('wat','dood')
.set('Custom-Header', 'test') .set('Custom-Header', 'test')
.send 'hello world' .send('hello world')
second = true


app2.listen 8009 app2.listen 8009


Expand All @@ -45,7 +55,17 @@ describe 'moxy', ->
res.statusCode.should.equal 200 res.statusCode.should.equal 200
res.headers['custom-header'].should.equal 'test' res.headers['custom-header'].should.equal 'test'
body.should.equal 'hello world' body.should.equal 'hello world'
done()
# test cookie jar
request "http://localhost:8008/proxy/test/?surl=http://localhost:8009/test?wat=dood", opt, (err, res, body) ->
should.not.exist err, 'res error'
should.exist res, 'res'
should.exist body, 'body'
should.exist res.headers['custom-header']
res.statusCode.should.equal 200
res.headers['custom-header'].should.equal 'test'
body.should.equal 'hello world'
done()


describe 'use()', -> describe 'use()', ->
it 'should work', (done) -> it 'should work', (done) ->
Expand Down

0 comments on commit 977e949

Please sign in to comment.