node-mocks-http
Advanced tools
Comparing version 1.0.0 to 1.0.1
@@ -40,2 +40,6 @@ /** | ||
var _redirectUrl = ""; | ||
var _renderView = ""; | ||
var _renderData = {}; | ||
var writableStream = new (options.writableStream || WritableStream)(); | ||
@@ -214,39 +218,82 @@ var eventEmitter = new (options.eventEmitter || EventEmitter)(); | ||
writable: function(){ | ||
return writableStream.writable.apply(this, arguments); | ||
}, | ||
// end: function(){ | ||
// return writableStream.end.apply(this, arguments); | ||
// }, | ||
destroy: function(){ | ||
return writableStream.destroy.apply(this, arguments); | ||
}, | ||
destroySoon: function(){ | ||
return writableStream.destroySoon.apply(this, arguments); | ||
}, | ||
addListener: function(event, listener){ | ||
return eventEmitter.addListener.apply(this, arguments); | ||
}, | ||
on: function(event, listener){ | ||
return eventEmitter.on.apply(this, arguments); | ||
}, | ||
once: function(event, listener){ | ||
return eventEmitter.once.apply(this, arguments); | ||
}, | ||
removeListener: function(event, listener){ | ||
return eventEmitter.removeListener.apply(this, arguments); | ||
}, | ||
removeAllListeners: function(event){ | ||
return eventEmitter.removeAllListeners.apply(this, arguments); | ||
}, | ||
setMaxListeners: function(n){ | ||
return eventEmitter.setMaxListeners.apply(this, arguments) | ||
}, | ||
listeners: function(event){ | ||
return eventEmitter.listeners.apply(this, arguments); | ||
}, | ||
emit: function(event){ | ||
return eventEmitter.emit.apply(this, arguments); | ||
}, | ||
// | ||
/** | ||
* Function: redirect | ||
* | ||
* Redirect to a url with response code | ||
*/ | ||
redirect: function(a, b) { | ||
switch(arguments.length) { | ||
case 1: | ||
_redirectUrl = a; | ||
break; | ||
case 2: | ||
if (typeof a == 'number') { | ||
this.statusCode = a; | ||
_redirectUrl = b; | ||
} | ||
break; | ||
default: | ||
break; | ||
} | ||
}, | ||
/** | ||
* Function: render | ||
* | ||
* Render a view with a callback responding with the | ||
* rendered string. | ||
*/ | ||
render: function(a, b, c) { | ||
_renderView = a; | ||
switch(arguments.length) { | ||
case 2: | ||
break; | ||
case 3: | ||
_renderData = b; | ||
break; | ||
default: | ||
break; | ||
} | ||
}, | ||
writable: function(){ | ||
return writableStream.writable.apply(this, arguments); | ||
}, | ||
// end: function(){ | ||
// return writableStream.end.apply(this, arguments); | ||
// }, | ||
destroy: function(){ | ||
return writableStream.destroy.apply(this, arguments); | ||
}, | ||
destroySoon: function(){ | ||
return writableStream.destroySoon.apply(this, arguments); | ||
}, | ||
addListener: function(event, listener){ | ||
return eventEmitter.addListener.apply(this, arguments); | ||
}, | ||
on: function(event, listener){ | ||
return eventEmitter.on.apply(this, arguments); | ||
}, | ||
once: function(event, listener){ | ||
return eventEmitter.once.apply(this, arguments); | ||
}, | ||
removeListener: function(event, listener){ | ||
return eventEmitter.removeListener.apply(this, arguments); | ||
}, | ||
removeAllListeners: function(event){ | ||
return eventEmitter.removeAllListeners.apply(this, arguments); | ||
}, | ||
setMaxListeners: function(n){ | ||
return eventEmitter.setMaxListeners.apply(this, arguments) | ||
}, | ||
listeners: function(event){ | ||
return eventEmitter.listeners.apply(this, arguments); | ||
}, | ||
emit: function(event){ | ||
return eventEmitter.emit.apply(this, arguments); | ||
}, | ||
//This mock object stores some state as well | ||
@@ -276,4 +323,2 @@ //as some test-analysis functions: | ||
/** | ||
@@ -341,4 +386,43 @@ * Function: _getData | ||
return true; | ||
}, | ||
/** | ||
* Function: _getRedirectUrl | ||
* | ||
* Return redirect url of redirect method | ||
* | ||
* Returns: | ||
* | ||
* Redirect url | ||
*/ | ||
_getRedirectUrl: function() { | ||
return _redirectUrl; | ||
}, | ||
/** | ||
* Function: _getRenderView | ||
* | ||
* Return render view of render method | ||
* | ||
* Returns: | ||
* | ||
* render view | ||
*/ | ||
_getRenderView: function() { | ||
return _renderView; | ||
}, | ||
/** | ||
* Function: _getRenderData | ||
* | ||
* Return render data of render method | ||
* | ||
* Returns: | ||
* | ||
* render data | ||
*/ | ||
_getRenderData: function() { | ||
return _renderData; | ||
} | ||
}; | ||
}; |
@@ -5,3 +5,3 @@ { | ||
"description": "Mock 'http' objects for testing Express routing functions", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"homepage": "http://www.github.com/howardabrams/node-mocks-http", | ||
@@ -8,0 +8,0 @@ "keywords": [ |
@@ -72,2 +72,7 @@ node-mocks-http | ||
v 1.0.1 | ||
------- | ||
* Add support for response redirect and render | ||
v 0.0.9 | ||
@@ -74,0 +79,0 @@ ------- |
@@ -195,1 +195,39 @@ /** | ||
}; | ||
exports['redirect - Redirect to a url with response code'] = function(test) { | ||
var response = httpMocks.createResponse(); | ||
var url = '/index'; | ||
var responseCode = 200; | ||
response.redirect(responseCode, url); | ||
test.equal(response._getRedirectUrl(), url); | ||
test.equal(response._getStatusCode(), responseCode); | ||
test.done(); | ||
}; | ||
exports['redirect - Redirect to a url without response code'] = function(test) { | ||
var response = httpMocks.createResponse(); | ||
var url = '/index'; | ||
response.redirect(url); | ||
test.equal(response._getRedirectUrl(), url); | ||
test.done(); | ||
}; | ||
exports['render - Render to a view with data'] = function(test) { | ||
var response = httpMocks.createResponse(); | ||
var view = 'index'; | ||
var data = { 'name': 'bob' }; | ||
var callback = function() {}; | ||
response.render(view, data, callback); | ||
test.equal(response._getRenderView(), view); | ||
test.deepEqual(response._getRenderData(), data); | ||
test.done(); | ||
}; | ||
exports['render - Render to a view without data'] = function(test) { | ||
var response = httpMocks.createResponse(); | ||
var view = 'index'; | ||
var callback = function() {}; | ||
response.render(view, callback); | ||
test.equal(response._getRenderView(), view); | ||
test.done(); | ||
}; |
34738
883
125