47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
var http = require('http')
|
|
, events = require('events')
|
|
, stream = require('stream')
|
|
, assert = require('assert')
|
|
;
|
|
|
|
exports.createServer = function (port) {
|
|
port = port || 6767
|
|
var s = http.createServer(function (req, resp) {
|
|
s.emit(req.url, req, resp);
|
|
})
|
|
s.listen(port)
|
|
s.url = 'http://localhost:'+port
|
|
return s;
|
|
}
|
|
|
|
exports.createPostStream = function (text) {
|
|
var postStream = new stream.Stream();
|
|
postStream.writeable = true;
|
|
postStream.readable = true;
|
|
setTimeout(function () {postStream.emit('data', new Buffer(text)); postStream.emit('end')}, 0);
|
|
return postStream;
|
|
}
|
|
exports.createPostValidator = function (text) {
|
|
var l = function (req, resp) {
|
|
var r = '';
|
|
req.on('data', function (chunk) {r += chunk})
|
|
req.on('end', function () {
|
|
if (r !== text) console.log(r, text);
|
|
assert.equal(r, text)
|
|
resp.writeHead(200, {'content-type':'text/plain'})
|
|
resp.write('OK')
|
|
resp.end()
|
|
})
|
|
}
|
|
return l;
|
|
}
|
|
exports.createGetResponse = function (text, contentType) {
|
|
var l = function (req, resp) {
|
|
contentType = contentType || 'text/plain'
|
|
resp.writeHead(200, {'content-type':contentType})
|
|
resp.write(text)
|
|
resp.end()
|
|
}
|
|
return l;
|
|
}
|