build: update example dependencies
[express.git] / test / req.range.js
blob5443c0658d2f558f13850396b8d4d34a83771b38
2 var express = require('..');
3 var request = require('supertest')
5 describe('req', function(){
6   describe('.range(size)', function(){
7     it('should return parsed ranges', function (done) {
8       var app = express()
10       app.use(function (req, res) {
11         res.json(req.range(120))
12       })
14       request(app)
15       .get('/')
16       .set('Range', 'bytes=0-50,51-100')
17       .expect(200, '[{"start":0,"end":50},{"start":51,"end":100}]', done)
18     })
20     it('should cap to the given size', function (done) {
21       var app = express()
23       app.use(function (req, res) {
24         res.json(req.range(75))
25       })
27       request(app)
28       .get('/')
29       .set('Range', 'bytes=0-100')
30       .expect(200, '[{"start":0,"end":74}]', done)
31     })
33     it('should cap to the given size when open-ended', function (done) {
34       var app = express()
36       app.use(function (req, res) {
37         res.json(req.range(75))
38       })
40       request(app)
41       .get('/')
42       .set('Range', 'bytes=0-')
43       .expect(200, '[{"start":0,"end":74}]', done)
44     })
46     it('should have a .type', function (done) {
47       var app = express()
49       app.use(function (req, res) {
50         res.json(req.range(120).type)
51       })
53       request(app)
54       .get('/')
55       .set('Range', 'bytes=0-100')
56       .expect(200, '"bytes"', done)
57     })
59     it('should accept any type', function (done) {
60       var app = express()
62       app.use(function (req, res) {
63         res.json(req.range(120).type)
64       })
66       request(app)
67       .get('/')
68       .set('Range', 'users=0-2')
69       .expect(200, '"users"', done)
70     })
72     it('should return undefined if no range', function (done) {
73       var app = express()
75       app.use(function (req, res) {
76         res.send(String(req.range(120)))
77       })
79       request(app)
80       .get('/')
81       .expect(200, 'undefined', done)
82     })
83   })
85   describe('.range(size, options)', function(){
86     describe('with "combine: true" option', function(){
87       it('should return combined ranges', function (done) {
88         var app = express()
90         app.use(function (req, res) {
91           res.json(req.range(120, {
92             combine: true
93           }))
94         })
96         request(app)
97         .get('/')
98         .set('Range', 'bytes=0-50,51-100')
99         .expect(200, '[{"start":0,"end":100}]', done)
100       })
101     })
102   })