Add test coverage for API version headers in CORS

This is a follow up to change
Idf4650f36952331f02d7512580c21451f3ee3b63 that added the
OpenStack-API-Version and X-OpenStack-Nova-API-Version headers to be
allowed for CORS requests.

Related-Bug: #1931908

Change-Id: Ib98d93f6f4d5ef5d5a637877025f1a7cfaef6bb4
This commit is contained in:
melanie witt 2021-06-16 02:16:26 +00:00
parent b02a95a18b
commit d966546516
1 changed files with 28 additions and 0 deletions

View File

@ -122,3 +122,31 @@ class TestCORSMiddleware(api_sample_base.ApiSampleTestBaseV21):
self.assertEqual(response.status_code, self.exp_version_status)
self.assertNotIn('Access-Control-Allow-Origin', response.headers)
def test_api_version_request_headers(self):
# Verify allow_headers
headers = {
'Origin': 'http://valid.example.com',
'Access-Control-Request-Method': 'GET',
'Access-Control-Request-Headers':
'OpenStack-API-Version, X-OpenStack-Nova-API-Version'
}
response = self._do_options('', strip_version=True, headers=headers)
self.assertEqual(response.status_code, 200)
self.assertIn('Access-Control-Allow-Headers', response.headers)
self.assertIn('OpenStack-API-Version',
response.headers['Access-Control-Allow-Headers'])
self.assertIn('X-OpenStack-Nova-API-Version',
response.headers['Access-Control-Allow-Headers'])
# Verify expose_headers
headers = {'Origin': 'http://valid.example.com'}
response = self._do_get('', strip_version=True, headers=headers)
self.assertEqual(response.status_code, self.exp_version_status)
self.assertIn('Access-Control-Expose-Headers', response.headers)
self.assertIn('OpenStack-API-Version',
response.headers['Access-Control-Expose-Headers'])
self.assertIn('X-OpenStack-Nova-API-Version',
response.headers['Access-Control-Expose-Headers'])