Skip to content

Commit

Permalink
HTTPS tests, for now a copy of the test-body tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jhs committed Dec 4, 2011
1 parent a4a9aa1 commit 10ac6b9
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 1 deletion.
20 changes: 19 additions & 1 deletion tests/server.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
var http = require('http')
var fs = require('fs')
, http = require('http')
, path = require('path')
, https = require('https')
, events = require('events')
, stream = require('stream')
, assert = require('assert')
Expand All @@ -14,6 +17,21 @@ exports.createServer = function (port) {
return s;
}

exports.createSSLServer = function(port) {
port = port || 16767

var options = { 'key' : fs.readFileSync(path.join(__dirname, 'ssl', 'test.key'))
, 'cert': fs.readFileSync(path.join(__dirname, 'ssl', 'test.crt'))
}

var s = https.createServer(options, function (req, resp) {
s.emit(req.url, req, resp);
})
s.port = port
s.url = 'https://localhost:'+port
return s;
}

exports.createPostStream = function (text) {
var postStream = new stream.Stream();
postStream.writeable = true;
Expand Down
86 changes: 86 additions & 0 deletions tests/test-https.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
var server = require('./server')
, assert = require('assert')
, request = require('../main.js')

var s = server.createSSLServer();

var tests =
{ testGet :
{ resp : server.createGetResponse("TESTING!")
, expectBody: "TESTING!"
}
, testGetChunkBreak :
{ resp : server.createChunkResponse(
[ new Buffer([239])
, new Buffer([163])
, new Buffer([191])
, new Buffer([206])
, new Buffer([169])
, new Buffer([226])
, new Buffer([152])
, new Buffer([131])
])
, expectBody: "Ω☃"
}
, testGetJSON :
{ resp : server.createGetResponse('{"test":true}', 'application/json')
, json : true
, expectBody: {"test":true}
}
, testPutString :
{ resp : server.createPostValidator("PUTTINGDATA")
, method : "PUT"
, body : "PUTTINGDATA"
}
, testPutBuffer :
{ resp : server.createPostValidator("PUTTINGDATA")
, method : "PUT"
, body : new Buffer("PUTTINGDATA")
}
, testPutJSON :
{ resp : server.createPostValidator(JSON.stringify({foo: 'bar'}))
, method: "PUT"
, json: {foo: 'bar'}
}
, testPutMultipart :
{ resp: server.createPostValidator(
'--frontier\r\n' +
'content-type: text/html\r\n' +
'\r\n' +
'<html><body>Oh hi.</body></html>' +
'\r\n--frontier\r\n\r\n' +
'Oh hi.' +
'\r\n--frontier--'
)
, method: "PUT"
, multipart:
[ {'content-type': 'text/html', 'body': '<html><body>Oh hi.</body></html>'}
, {'body': 'Oh hi.'}
]
}
}

s.listen(s.port, function () {

var counter = 0

for (i in tests) {
(function () {
var test = tests[i]
s.on('/'+i, test.resp)
test.uri = s.url + '/' + i
request(test, function (err, resp, body) {
if (err) throw err
if (test.expectBody) {
assert.deepEqual(test.expectBody, body)
}
counter = counter - 1;
if (counter === 0) {
console.log(Object.keys(tests).length+" tests passed.")
s.close()
}
})
counter++
})()
}
})

0 comments on commit 10ac6b9

Please sign in to comment.