def test_allowAllOrigins(self): options = cors_options.CorsOptions() f = filters.AllowOriginFilter(options) # Test with no Origin request = cors_handler.CorsRequest() response = cors_handler.CorsResponse() error = f.filter(request, response) self.assertIsNone(error) self.assertEquals('*', response.allow_origin) # Test CORS request request = cors_handler.CorsRequest( 'GET', {constants.ORIGIN: 'http://foo.com'}) response = cors_handler.CorsResponse() error = f.filter(request, response) self.assertIsNone(error) self.assertEquals('*', response.allow_origin) # Test CORS preflight request request = cors_handler.CorsRequest( 'OPTIONS', { constants.ORIGIN: 'http://foo.com', constants.ACCESS_CONTROL_REQUEST_METHOD: 'GET' }) response = cors_handler.CorsResponse() error = f.filter(request, response) self.assertIsNone(error) self.assertEquals('*', response.allow_origin)
def test_addHeader(self): options = cors_options.CorsOptions(expose_headers=["Foo"]) response = cors_handler.CorsResponse() f = filters.ExposeHeadersFilter(options) f.filter(None, response) self.assertEquals(1, len(response.expose_headers)) self.assertEquals('Foo', response.expose_headers[0])
def test_validOrigin(self): options = cors_options.CorsOptions(allow_origins=['http://foo.com']) f = filters.AllowOriginFilter(options) request = cors_handler.CorsRequest( 'GET', {constants.ORIGIN: 'http://foo.com'}) response = cors_handler.CorsResponse() error = f.filter(request, response) self.assertIsNone(error) self.assertEquals('http://foo.com', response.allow_origin)
def test_defaultInstance(self): o = cors_options.CorsOptions() self.assertTrue( isinstance(o.origin_validator, validators.BooleanValidator)) self.assertEquals(cors_options.ALL_ORIGINS, o.origin_value) self.assertTrue( isinstance(o.methods_validator, validators.ListValidator)) self.assertEquals(cors_options.DEFAULT_METHODS, o.methods_value) self.assertTrue( isinstance(o.headers_validator, validators.BooleanValidator)) self.assertIsNone(o.headers_value) self.assertEquals([], o.expose_headers) self.assertFalse(o.allow_credentials) self.assertTrue(o.vary) self.assertIsNone(o.max_age)
def test_allowMethods(self): o = cors_options.CorsOptions(allow_methods=['foo']) self.assertTrue( isinstance(o.methods_validator, validators.ListValidator)) self.assertEquals(['foo'], o.methods_value)
def test_invalidMaxAge(self): try: _ = cors_options.CorsOptions(max_age='foo') except: return self.fail('Expected TypeError')
def test_maxAge(self): o = cors_options.CorsOptions(max_age=1200) self.assertEquals(1200, o.max_age)
def test_exposeHeaders(self): o = cors_options.CorsOptions(expose_headers=['Header1']) self.assertEquals(['Header1'], o.expose_headers)
def test_allowCredentials(self): o = cors_options.CorsOptions(allow_credentials=True) self.assertTrue(o.allow_credentials)
def test_allowAllHeaders(self): o = cors_options.CorsOptions(allow_headers=True) self.assertTrue( isinstance(o.headers_validator, validators.BooleanValidator)) self.assertIsNone(o.headers_value)
def test_disallow(self): options = cors_options.CorsOptions(allow_non_cors_requests=False) f = filters.AllowNonCorsRequestFilter(options) error = f.filter(None, None) self.assertIsNotNone(error)
def test_noHeader(self): options = cors_options.CorsOptions(vary=False) response = cors_handler.CorsResponse() filtr = filters.VaryFilter(options) filtr.filter(None, response) self.assertFalse(constants.VARY in response.headers)
def test_addHeader(self): options = cors_options.CorsOptions(vary=True) response = cors_handler.CorsResponse() filtr = filters.VaryFilter(options) filtr.filter(None, response) self.assertEquals(constants.ORIGIN, response.headers[constants.VARY])
def test_addHeader(self): options = cors_options.CorsOptions(max_age=1000) response = cors_handler.CorsResponse() f = filters.MaxAgeFilter(options) f.filter(None, response) self.assertEquals(1000, response.max_age)
def test_noHeader(self): options = cors_options.CorsOptions() response = cors_handler.CorsResponse() f = filters.MaxAgeFilter(options) f.filter(None, response) self.assertIsNone(response.max_age)
def test_allowAllMethods(self): o = cors_options.CorsOptions(allow_methods=True) self.assertTrue( isinstance(o.methods_validator, validators.BooleanValidator)) self.assertIsNone(o.methods_value)
def test_allowHeaders(self): o = cors_options.CorsOptions(allow_headers=['foo']) self.assertTrue( isinstance(o.headers_validator, validators.ListValidator)) self.assertEquals(['foo'], o.headers_value)
def test_addHeader(self): options = cors_options.CorsOptions(allow_credentials=True) response = cors_handler.CorsResponse() f = filters.AllowCredentialsFilter(options) f.filter(None, response) self.assertTrue(response.allow_credentials)
def test_originsList(self): o = cors_options.CorsOptions(allow_origins=['http://foo.com']) self.assertTrue( isinstance(o.origin_validator, validators.ListValidator)) self.assertIsNone(o.origin_value) self.assertTrue(o.vary)
def test_noHeader(self): options = cors_options.CorsOptions() response = cors_handler.CorsResponse() f = filters.ExposeHeadersFilter(options) f.filter(None, response) self.assertEquals(0, len(response.expose_headers))