build: Node.js@12.3
[express.git] / test / req.is.js
bloba2fce178673e51e4c73cc1e53e50aa98b958829c
2 var express = require('..')
3 var request = require('supertest')
5 describe('req.is()', function () {
6   describe('when given a mime type', function () {
7     it('should return the type when matching', function (done) {
8       var app = express()
10       app.use(function (req, res) {
11         res.json(req.is('application/json'))
12       })
14       request(app)
15       .post('/')
16       .type('application/json')
17       .send('{}')
18       .expect(200, '"application/json"', done)
19     })
21     it('should return false when not matching', function (done) {
22       var app = express()
24       app.use(function (req, res) {
25         res.json(req.is('image/jpeg'))
26       })
28       request(app)
29       .post('/')
30       .type('application/json')
31       .send('{}')
32       .expect(200, 'false', done)
33     })
35     it('should ignore charset', function (done) {
36       var app = express()
38       app.use(function (req, res) {
39         res.json(req.is('application/json'))
40       })
42       request(app)
43       .post('/')
44       .type('application/json; charset=UTF-8')
45       .send('{}')
46       .expect(200, '"application/json"', done)
47     })
48   })
50   describe('when content-type is not present', function(){
51     it('should return false', function (done) {
52       var app = express()
54       app.use(function (req, res) {
55         res.json(req.is('application/json'))
56       })
58       request(app)
59       .post('/')
60       .send('{}')
61       .expect(200, 'false', done)
62     })
63   })
65   describe('when given an extension', function(){
66     it('should lookup the mime type', function (done) {
67       var app = express()
69       app.use(function (req, res) {
70         res.json(req.is('json'))
71       })
73       request(app)
74       .post('/')
75       .type('application/json')
76       .send('{}')
77       .expect(200, '"json"', done)
78     })
79   })
81   describe('when given */subtype', function(){
82     it('should return the full type when matching', function (done) {
83       var app = express()
85       app.use(function (req, res) {
86         res.json(req.is('*/json'))
87       })
89       request(app)
90       .post('/')
91       .type('application/json')
92       .send('{}')
93       .expect(200, '"application/json"', done)
94     })
96     it('should return false when not matching', function (done) {
97       var app = express()
99       app.use(function (req, res) {
100         res.json(req.is('*/html'))
101       })
103       request(app)
104       .post('/')
105       .type('application/json')
106       .send('{}')
107       .expect(200, 'false', done)
108     })
110     it('should ignore charset', function (done) {
111       var app = express()
113       app.use(function (req, res) {
114         res.json(req.is('*/json'))
115       })
117       request(app)
118       .post('/')
119       .type('application/json; charset=UTF-8')
120       .send('{}')
121       .expect(200, '"application/json"', done)
122     })
123   })
125   describe('when given type/*', function(){
126     it('should return the full type when matching', function (done) {
127       var app = express()
129       app.use(function (req, res) {
130         res.json(req.is('application/*'))
131       })
133       request(app)
134       .post('/')
135       .type('application/json')
136       .send('{}')
137       .expect(200, '"application/json"', done)
138     })
140     it('should return false when not matching', function (done) {
141       var app = express()
143       app.use(function (req, res) {
144         res.json(req.is('text/*'))
145       })
147       request(app)
148       .post('/')
149       .type('application/json')
150       .send('{}')
151       .expect(200, 'false', done)
152     })
154     it('should ignore charset', function (done) {
155       var app = express()
157       app.use(function (req, res) {
158         res.json(req.is('application/*'))
159       })
161       request(app)
162       .post('/')
163       .type('application/json; charset=UTF-8')
164       .send('{}')
165       .expect(200, '"application/json"', done)
166     })
167   })