Merge pull request #438 from koajs/strict

make sure helpers return strict string
This commit is contained in:
Yiyu He 2015-04-29 15:25:25 +08:00
commit e21fc8aabb
5 changed files with 18 additions and 18 deletions

View File

@ -301,9 +301,9 @@ module.exports = {
get charset() { get charset() {
var type = this.get('Content-Type'); var type = this.get('Content-Type');
if (!type) return; if (!type) return '';
return contentType.parse(type).parameters.charset; return contentType.parse(type).parameters.charset || '';
}, },
/** /**
@ -315,7 +315,7 @@ module.exports = {
get length() { get length() {
var len = this.get('Content-Length'); var len = this.get('Content-Length');
if (null == len) return; if (len == '') return;
return ~~len; return ~~len;
}, },
@ -362,7 +362,7 @@ module.exports = {
*/ */
get ip() { get ip() {
return this.ips[0] || this.socket.remoteAddress; return this.ips[0] || this.socket.remoteAddress || '';
}, },
/** /**
@ -546,7 +546,7 @@ module.exports = {
get type() { get type() {
var type = this.get('Content-Type'); var type = this.get('Content-Type');
if (!type) return; if (!type) return '';
return type.split(';')[0]; return type.split(';')[0];
}, },
@ -577,9 +577,9 @@ module.exports = {
switch (field = field.toLowerCase()) { switch (field = field.toLowerCase()) {
case 'referer': case 'referer':
case 'referrer': case 'referrer':
return req.headers.referrer || req.headers.referer; return req.headers.referrer || req.headers.referer || '';
default: default:
return req.headers[field]; return req.headers[field] || '';
} }
}, },
@ -607,6 +607,6 @@ module.exports = {
method: this.method, method: this.method,
url: this.url, url: this.url,
header: this.header header: this.header
} };
} }
}; };

View File

@ -367,7 +367,7 @@ module.exports = {
get type() { get type() {
var type = this.get('Content-Type'); var type = this.get('Content-Type');
if (!type) return; if (!type) return '';
return type.split(';')[0]; return type.split(';')[0];
}, },
@ -404,7 +404,7 @@ module.exports = {
*/ */
get: function(field){ get: function(field){
return this.header[field.toLowerCase()]; return this.header[field.toLowerCase()] || '';
}, },
/** /**
@ -512,6 +512,6 @@ module.exports = {
status: this.status, status: this.status,
message: this.message, message: this.message,
header: this.header header: this.header
} };
} }
}; };

View File

@ -4,17 +4,17 @@ var assert = require('assert');
describe('req.charset', function(){ describe('req.charset', function(){
describe('with no content-type present', function(){ describe('with no content-type present', function(){
it('should return null', function(){ it('should return ""', function(){
var req = request(); var req = request();
assert(null == req.charset); assert('' === req.charset);
}) })
}) })
describe('with charset present', function(){ describe('with charset present', function(){
it('should return null', function(){ it('should return ""', function(){
var req = request(); var req = request();
req.header['content-type'] = 'text/plain'; req.header['content-type'] = 'text/plain';
assert(null == req.charset); assert('' === req.charset);
}) })
}) })

View File

@ -11,6 +11,6 @@ describe('req.type', function(){
describe('with no host present', function(){ describe('with no host present', function(){
var req = request(); var req = request();
assert(null == req.type); assert('' === req.type);
}) })
}) })

View File

@ -51,10 +51,10 @@ describe('ctx.type=', function(){
describe('ctx.type', function(){ describe('ctx.type', function(){
describe('with no Content-Type', function(){ describe('with no Content-Type', function(){
it('should return null', function(){ it('should return ""', function(){
var ctx = context(); var ctx = context();
// TODO: this is lame // TODO: this is lame
assert(null == ctx.type); assert('' === ctx.type);
}) })
}) })