-
Notifications
You must be signed in to change notification settings - Fork 9
/
test.js
110 lines (92 loc) · 2.6 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*global describe, it, after, before, beforeEach, afterEach*/
var
ipfilter = require('./index'),
assert = require('assert');
describe('enforcing IP address blacklist restrictions', function(){
beforeEach(function(){
this.ipfilter = ipfilter([ '127.0.0.1' ], { log: false });
this.req = {
session: {},
headers: [],
connection: {
remoteAddress: ''
}
};
});
it('should allow all non-blacklisted ips', function( done ){
this.req.connection.remoteAddress = '127.0.0.2';
this.ipfilter( this.req, {}, function(){
done();
});
});
it('should allow all non-blacklisted forwarded ips', function( done ){
this.req.headers['x-forwarded-for'] = '127.0.0.2';
this.ipfilter( this.req, {}, function(){
done();
});
});
it('should deny all blacklisted ips', function( done ){
this.req.connection.remoteAddress = '127.0.0.1';
var res = {
end: function(msg){
assert.equal( 401, res.statusCode );
done();
}
};
this.ipfilter( this.req, res, function(){});
});
it('should deny all blacklisted forwarded ips', function( done ){
this.req.headers['x-forwarded-for'] = '127.0.0.1';
var res = {
end: function(msg){
assert.equal( 401, res.statusCode );
done();
}
};
this.ipfilter( this.req, res, function(){});
});
});
describe('enforcing IP address whitelist restrictions', function(){
beforeEach(function(){
this.ipfilter = ipfilter([ '127.0.0.1' ], { log: false, mode: 'allow' });
this.req = {
session: {},
headers: [],
connection: {
remoteAddress: ''
}
};
});
it('should allow whitelisted ips', function( done ){
this.req.connection.remoteAddress = '127.0.0.1';
this.ipfilter( this.req, {}, function(){
done();
});
});
it('should allow whitelisted forwarded ips', function( done ){
this.req.headers['x-forwarded-for'] = '127.0.0.1';
this.ipfilter( this.req, {}, function(){
done();
});
});
it('should deny all non-whitelisted ips', function( done ){
this.req.connection.remoteAddress = '127.0.0.2';
var res = {
end: function(msg){
assert.equal( 401, res.statusCode );
done();
}
};
this.ipfilter( this.req, res, function(){});
});
it('should deny all non-whitelisted forwarded ips', function( done ){
this.req.headers['x-forwarded-for'] = '127.0.0.2';
var res = {
end: function(msg){
assert.equal( 401, res.statusCode );
done();
}
};
this.ipfilter( this.req, res, function(){});
});
});