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() |