72 lines
2.3 KiB
JavaScript
72 lines
2.3 KiB
JavaScript
const crossdomain = require('..')
|
|
|
|
const assert = require('assert')
|
|
const connect = require('connect')
|
|
const request = require('supertest')
|
|
|
|
describe('crossdomain', function () {
|
|
function app (middleware) {
|
|
const result = connect()
|
|
result.use(middleware)
|
|
result.use((req, res) => { res.end('Hello world') })
|
|
return result
|
|
}
|
|
|
|
it('sets X-Permitted-Cross-Domain-Policies: none when called with no arguments', () => {
|
|
return request(app(crossdomain()))
|
|
.get('/')
|
|
.expect('X-Permitted-Cross-Domain-Policies', 'none')
|
|
.expect('Hello world')
|
|
})
|
|
|
|
it('sets X-Permitted-Cross-Domain-Policies: none when called with an empty object', () => {
|
|
return request(app(crossdomain({})))
|
|
.get('/')
|
|
.expect('X-Permitted-Cross-Domain-Policies', 'none')
|
|
.expect('Hello world')
|
|
})
|
|
|
|
it('can explicitly set the policy to "none"', () => {
|
|
return request(app(crossdomain({ permittedPolicies: 'none' })))
|
|
.get('/')
|
|
.expect('X-Permitted-Cross-Domain-Policies', 'none')
|
|
.expect('Hello world')
|
|
})
|
|
|
|
it('can set the policy to "master-only"', () => {
|
|
return request(app(crossdomain({ permittedPolicies: 'master-only' })))
|
|
.get('/')
|
|
.expect('X-Permitted-Cross-Domain-Policies', 'master-only')
|
|
.expect('Hello world')
|
|
})
|
|
|
|
it('can set the policy to "by-content-type"', () => {
|
|
return request(app(crossdomain({ permittedPolicies: 'by-content-type' })))
|
|
.get('/')
|
|
.expect('X-Permitted-Cross-Domain-Policies', 'by-content-type')
|
|
.expect('Hello world')
|
|
})
|
|
|
|
it('can set the policy to "all"', () => {
|
|
return request(app(crossdomain({ permittedPolicies: 'all' })))
|
|
.get('/')
|
|
.expect('X-Permitted-Cross-Domain-Policies', 'all')
|
|
.expect('Hello world')
|
|
})
|
|
|
|
it('cannot set the policy to "by-ftp-filename"', () => {
|
|
assert.throws(() => { crossdomain({ permittedPolicies: 'by-ftp-filename' }) })
|
|
})
|
|
|
|
it('cannot set the policy to invalid values', function () {
|
|
assert.throws(() => { crossdomain({ permittedPolicies: '' }) })
|
|
assert.throws(() => { crossdomain({ permittedPolicies: null }) })
|
|
assert.throws(() => { crossdomain({ permittedPolicies: 'NONE' }) })
|
|
})
|
|
|
|
it('names its function and middleware', function () {
|
|
assert.equal(crossdomain.name, 'crossdomain')
|
|
assert.equal(crossdomain().name, 'crossdomain')
|
|
})
|
|
})
|