Working Skelleton
This commit is contained in:
+71
@@ -0,0 +1,71 @@
|
||||
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')
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user