Fix error in req.subdomains on empty host

This commit is contained in:
Douglas Christopher Wilson 2014-09-08 23:45:34 -04:00
parent 7d277c1c15
commit 70767b19ac
3 changed files with 19 additions and 11 deletions

View File

@ -1,3 +1,8 @@
3.x
===
* Fix error in `req.subdomains` on empty host
3.17.0 / 2014-09-08
===================

View File

@ -454,6 +454,9 @@ req.__defineGetter__('auth', function(){
req.__defineGetter__('subdomains', function(){
var host = this.host;
if (!host) return [];
var offset = this.app.get('subdomain offset');
var subdomains = !isIP(host)
? host.split('.').reverse()

View File

@ -15,7 +15,7 @@ describe('req', function(){
request(app)
.get('/')
.set('Host', 'tobi.ferrets.example.com')
.expect(["ferrets","tobi"], done);
.expect(200, ['ferrets', 'tobi'], done);
})
it('should work with IPv4 address', function(done){
@ -28,7 +28,7 @@ describe('req', function(){
request(app)
.get('/')
.set('Host', '127.0.0.1')
.expect([], done);
.expect(200, [], done);
})
it('should work with IPv6 address', function(done){
@ -41,7 +41,7 @@ describe('req', function(){
request(app)
.get('/')
.set('Host', '[::1]')
.expect([], done);
.expect(200, [], done);
})
})
@ -56,7 +56,7 @@ describe('req', function(){
request(app)
.get('/')
.set('Host', 'example.com')
.expect([], done);
.expect(200, [], done);
})
})
@ -71,7 +71,7 @@ describe('req', function(){
request(app)
.get('/')
.expect([], done);
.expect(200, [], done);
})
})
@ -87,7 +87,7 @@ describe('req', function(){
request(app)
.get('/')
.set('X-Forwarded-Host', 'tobi.ferrets.example.com')
.expect(['ferrets', 'tobi'], done);
.expect(200, ['ferrets', 'tobi'], done);
})
})
@ -104,7 +104,7 @@ describe('req', function(){
request(app)
.get('/')
.set('Host', 'tobi.ferrets.sub.example.com')
.expect(["com","example","sub","ferrets","tobi"], done);
.expect(200, ['com', 'example', 'sub', 'ferrets', 'tobi'], done);
})
it('should return an array with the whole IPv4', function (done) {
@ -118,7 +118,7 @@ describe('req', function(){
request(app)
.get('/')
.set('Host', '127.0.0.1')
.expect(['127.0.0.1'], done);
.expect(200, ['127.0.0.1'], done);
})
it('should return an array with the whole IPv6', function (done) {
@ -132,7 +132,7 @@ describe('req', function(){
request(app)
.get('/')
.set('Host', '[::1]')
.expect(['[::1]'], done);
.expect(200, ['[::1]'], done);
})
})
@ -148,7 +148,7 @@ describe('req', function(){
request(app)
.get('/')
.set('Host', 'tobi.ferrets.sub.example.com')
.expect(["ferrets","tobi"], done);
.expect(200, ['ferrets', 'tobi'], done);
})
})
@ -164,7 +164,7 @@ describe('req', function(){
request(app)
.get('/')
.set('Host', 'sub.example.com')
.expect([], done);
.expect(200, [], done);
})
})
})