| Index: third_party/gsutil/boto/tests/unit/s3/test_cors_configuration.py
|
| diff --git a/third_party/gsutil/boto/tests/unit/s3/test_cors_configuration.py b/third_party/gsutil/boto/tests/unit/s3/test_cors_configuration.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8f6980364ca2c93a60898575ba4e6084c95ecdf6
|
| --- /dev/null
|
| +++ b/third_party/gsutil/boto/tests/unit/s3/test_cors_configuration.py
|
| @@ -0,0 +1,77 @@
|
| +#!/usr/bin/env python
|
| +
|
| +import unittest
|
| +from boto.s3.cors import CORSConfiguration
|
| +
|
| +CORS_BODY_1 = (
|
| + '<CORSConfiguration>'
|
| + '<CORSRule>'
|
| + '<AllowedMethod>PUT</AllowedMethod>'
|
| + '<AllowedMethod>POST</AllowedMethod>'
|
| + '<AllowedMethod>DELETE</AllowedMethod>'
|
| + '<AllowedOrigin>http://www.example.com</AllowedOrigin>'
|
| + '<AllowedHeader>*</AllowedHeader>'
|
| + '<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>'
|
| + '<MaxAgeSeconds>3000</MaxAgeSeconds>'
|
| + '<ID>foobar_rule</ID>'
|
| + '</CORSRule>'
|
| + '</CORSConfiguration>')
|
| +
|
| +CORS_BODY_2 = (
|
| + '<CORSConfiguration>'
|
| + '<CORSRule>'
|
| + '<AllowedMethod>PUT</AllowedMethod>'
|
| + '<AllowedMethod>POST</AllowedMethod>'
|
| + '<AllowedMethod>DELETE</AllowedMethod>'
|
| + '<AllowedOrigin>http://www.example.com</AllowedOrigin>'
|
| + '<AllowedHeader>*</AllowedHeader>'
|
| + '<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>'
|
| + '<MaxAgeSeconds>3000</MaxAgeSeconds>'
|
| + '</CORSRule>'
|
| + '<CORSRule>'
|
| + '<AllowedMethod>GET</AllowedMethod>'
|
| + '<AllowedOrigin>*</AllowedOrigin>'
|
| + '<AllowedHeader>*</AllowedHeader>'
|
| + '<MaxAgeSeconds>3000</MaxAgeSeconds>'
|
| + '</CORSRule>'
|
| + '</CORSConfiguration>')
|
| +
|
| +CORS_BODY_3 = (
|
| + '<CORSConfiguration>'
|
| + '<CORSRule>'
|
| + '<AllowedMethod>GET</AllowedMethod>'
|
| + '<AllowedOrigin>*</AllowedOrigin>'
|
| + '</CORSRule>'
|
| + '</CORSConfiguration>')
|
| +
|
| +
|
| +class TestCORSConfiguration(unittest.TestCase):
|
| +
|
| + def test_one_rule_with_id(self):
|
| + cfg = CORSConfiguration()
|
| + cfg.add_rule(['PUT', 'POST', 'DELETE'],
|
| + 'http://www.example.com',
|
| + allowed_header='*',
|
| + max_age_seconds=3000,
|
| + expose_header='x-amz-server-side-encryption',
|
| + id='foobar_rule')
|
| + self.assertEqual(cfg.to_xml(), CORS_BODY_1)
|
| +
|
| + def test_two_rules(self):
|
| + cfg = CORSConfiguration()
|
| + cfg.add_rule(['PUT', 'POST', 'DELETE'],
|
| + 'http://www.example.com',
|
| + allowed_header='*',
|
| + max_age_seconds=3000,
|
| + expose_header='x-amz-server-side-encryption')
|
| + cfg.add_rule('GET', '*', allowed_header='*', max_age_seconds=3000)
|
| + self.assertEqual(cfg.to_xml(), CORS_BODY_2)
|
| +
|
| + def test_minimal(self):
|
| + cfg = CORSConfiguration()
|
| + cfg.add_rule('GET', '*')
|
| + self.assertEqual(cfg.to_xml(), CORS_BODY_3)
|
| +
|
| +
|
| +if __name__ == "__main__":
|
| + unittest.main()
|
|
|