tests: add maxAge option tests for res.sendFile
[express.git] / test / config.js
blob17a02b7ebabe15eaceab8c4265a993a5124b3a94
2 var assert = require('assert');
3 var express = require('..');
5 describe('config', function () {
6   describe('.set()', function () {
7     it('should set a value', function () {
8       var app = express();
9       app.set('foo', 'bar');
10       assert.equal(app.get('foo'), 'bar');
11     })
13     it('should return the app', function () {
14       var app = express();
15       assert.equal(app.set('foo', 'bar'), app);
16     })
18     it('should return the app when undefined', function () {
19       var app = express();
20       assert.equal(app.set('foo', undefined), app);
21     })
23     describe('"etag"', function(){
24       it('should throw on bad value', function(){
25         var app = express();
26         assert.throws(app.set.bind(app, 'etag', 42), /unknown value/);
27       })
29       it('should set "etag fn"', function(){
30         var app = express()
31         var fn = function(){}
32         app.set('etag', fn)
33         assert.equal(app.get('etag fn'), fn)
34       })
35     })
37     describe('"trust proxy"', function(){
38       it('should set "trust proxy fn"', function(){
39         var app = express()
40         var fn = function(){}
41         app.set('trust proxy', fn)
42         assert.equal(app.get('trust proxy fn'), fn)
43       })
44     })
45   })
47   describe('.get()', function(){
48     it('should return undefined when unset', function(){
49       var app = express();
50       assert.strictEqual(app.get('foo'), undefined);
51     })
53     it('should otherwise return the value', function(){
54       var app = express();
55       app.set('foo', 'bar');
56       assert.equal(app.get('foo'), 'bar');
57     })
59     describe('when mounted', function(){
60       it('should default to the parent app', function(){
61         var app = express();
62         var blog = express();
64         app.set('title', 'Express');
65         app.use(blog);
66         assert.equal(blog.get('title'), 'Express');
67       })
69       it('should given precedence to the child', function(){
70         var app = express();
71         var blog = express();
73         app.use(blog);
74         app.set('title', 'Express');
75         blog.set('title', 'Some Blog');
77         assert.equal(blog.get('title'), 'Some Blog');
78       })
80       it('should inherit "trust proxy" setting', function () {
81         var app = express();
82         var blog = express();
84         function fn() { return false }
86         app.set('trust proxy', fn);
87         assert.equal(app.get('trust proxy'), fn);
88         assert.equal(app.get('trust proxy fn'), fn);
90         app.use(blog);
92         assert.equal(blog.get('trust proxy'), fn);
93         assert.equal(blog.get('trust proxy fn'), fn);
94       })
96       it('should prefer child "trust proxy" setting', function () {
97         var app = express();
98         var blog = express();
100         function fn1() { return false }
101         function fn2() { return true }
103         app.set('trust proxy', fn1);
104         assert.equal(app.get('trust proxy'), fn1);
105         assert.equal(app.get('trust proxy fn'), fn1);
107         blog.set('trust proxy', fn2);
108         assert.equal(blog.get('trust proxy'), fn2);
109         assert.equal(blog.get('trust proxy fn'), fn2);
111         app.use(blog);
113         assert.equal(app.get('trust proxy'), fn1);
114         assert.equal(app.get('trust proxy fn'), fn1);
115         assert.equal(blog.get('trust proxy'), fn2);
116         assert.equal(blog.get('trust proxy fn'), fn2);
117       })
118     })
119   })
121   describe('.enable()', function(){
122     it('should set the value to true', function(){
123       var app = express();
124       assert.equal(app.enable('tobi'), app);
125       assert.strictEqual(app.get('tobi'), true);
126     })
127   })
129   describe('.disable()', function(){
130     it('should set the value to false', function(){
131       var app = express();
132       assert.equal(app.disable('tobi'), app);
133       assert.strictEqual(app.get('tobi'), false);
134     })
135   })
137   describe('.enabled()', function(){
138     it('should default to false', function(){
139       var app = express();
140       assert.strictEqual(app.enabled('foo'), false);
141     })
143     it('should return true when set', function(){
144       var app = express();
145       app.set('foo', 'bar');
146       assert.strictEqual(app.enabled('foo'), true);
147     })
148   })
150   describe('.disabled()', function(){
151     it('should default to true', function(){
152       var app = express();
153       assert.strictEqual(app.disabled('foo'), true);
154     })
156     it('should return false when set', function(){
157       var app = express();
158       app.set('foo', 'bar');
159       assert.strictEqual(app.disabled('foo'), false);
160     })
161   })