169 lines
3.7 KiB
JavaScript
169 lines
3.7 KiB
JavaScript
|
|
var express = require('..')
|
|
var request = require('supertest')
|
|
|
|
describe('req.is()', function () {
|
|
describe('when given a mime type', function () {
|
|
it('should return the type when matching', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('application/json'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.type('application/json')
|
|
.send('{}')
|
|
.expect(200, '"application/json"', done)
|
|
})
|
|
|
|
it('should return false when not matching', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('image/jpeg'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.type('application/json')
|
|
.send('{}')
|
|
.expect(200, 'false', done)
|
|
})
|
|
|
|
it('should ignore charset', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('application/json'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.type('application/json; charset=UTF-8')
|
|
.send('{}')
|
|
.expect(200, '"application/json"', done)
|
|
})
|
|
})
|
|
|
|
describe('when content-type is not present', function(){
|
|
it('should return false', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('application/json'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.send('{}')
|
|
.expect(200, 'false', done)
|
|
})
|
|
})
|
|
|
|
describe('when given an extension', function(){
|
|
it('should lookup the mime type', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('json'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.type('application/json')
|
|
.send('{}')
|
|
.expect(200, '"json"', done)
|
|
})
|
|
})
|
|
|
|
describe('when given */subtype', function(){
|
|
it('should return the full type when matching', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('*/json'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.type('application/json')
|
|
.send('{}')
|
|
.expect(200, '"application/json"', done)
|
|
})
|
|
|
|
it('should return false when not matching', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('*/html'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.type('application/json')
|
|
.send('{}')
|
|
.expect(200, 'false', done)
|
|
})
|
|
|
|
it('should ignore charset', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('*/json'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.type('application/json; charset=UTF-8')
|
|
.send('{}')
|
|
.expect(200, '"application/json"', done)
|
|
})
|
|
})
|
|
|
|
describe('when given type/*', function(){
|
|
it('should return the full type when matching', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('application/*'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.type('application/json')
|
|
.send('{}')
|
|
.expect(200, '"application/json"', done)
|
|
})
|
|
|
|
it('should return false when not matching', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('text/*'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.type('application/json')
|
|
.send('{}')
|
|
.expect(200, 'false', done)
|
|
})
|
|
|
|
it('should ignore charset', function (done) {
|
|
var app = express()
|
|
|
|
app.use(function (req, res) {
|
|
res.json(req.is('application/*'))
|
|
})
|
|
|
|
request(app)
|
|
.post('/')
|
|
.type('application/json; charset=UTF-8')
|
|
.send('{}')
|
|
.expect(200, '"application/json"', done)
|
|
})
|
|
})
|
|
})
|