OssClientBucketCorsTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace OSS\Tests;
  3. use OSS\Core\OssException;
  4. use OSS\Model\CorsConfig;
  5. use OSS\Model\CorsRule;
  6. use OSS\OssClient;
  7. require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestOssClientBase.php';
  8. class OssClientBucketCorsTest extends TestOssClientBase
  9. {
  10. public function testBucket()
  11. {
  12. $corsConfig = new CorsConfig();
  13. $rule = new CorsRule();
  14. $rule->addAllowedHeader("x-oss-test");
  15. $rule->addAllowedHeader("x-oss-test2");
  16. $rule->addAllowedHeader("x-oss-test2");
  17. $rule->addAllowedHeader("x-oss-test3");
  18. $rule->addAllowedOrigin("http://www.b.com");
  19. $rule->addAllowedOrigin("http://www.a.com");
  20. $rule->addAllowedOrigin("http://www.a.com");
  21. $rule->addAllowedMethod("GET");
  22. $rule->addAllowedMethod("PUT");
  23. $rule->addAllowedMethod("POST");
  24. $rule->addExposeHeader("x-oss-test1");
  25. $rule->addExposeHeader("x-oss-test1");
  26. $rule->addExposeHeader("x-oss-test2");
  27. $rule->setMaxAgeSeconds(10);
  28. $corsConfig->addRule($rule);
  29. $rule = new CorsRule();
  30. $rule->addAllowedHeader("x-oss-test");
  31. $rule->addAllowedMethod("GET");
  32. $rule->addAllowedOrigin("http://www.b.com");
  33. $rule->addExposeHeader("x-oss-test1");
  34. $rule->setMaxAgeSeconds(110);
  35. $corsConfig->addRule($rule);
  36. try {
  37. $this->ossClient->putBucketCors($this->bucket, $corsConfig);
  38. } catch (OssException $e) {
  39. $this->assertFalse(True);
  40. }
  41. try {
  42. Common::waitMetaSync();
  43. $object = "cors/test.txt";
  44. $this->ossClient->putObject($this->bucket, $object, file_get_contents(__FILE__));
  45. $headers = $this->ossClient->optionsObject($this->bucket, $object, "http://www.a.com", "GET", "", null);
  46. $this->assertNotEmpty($headers);
  47. } catch (OssException $e) {
  48. var_dump($e->getMessage());
  49. }
  50. try {
  51. Common::waitMetaSync();
  52. $corsConfig2 = $this->ossClient->getBucketCors($this->bucket);
  53. $this->assertNotNull($corsConfig2);
  54. $this->assertEquals($corsConfig->serializeToXml(), $corsConfig2->serializeToXml());
  55. } catch (OssException $e) {
  56. $this->assertFalse(True);
  57. }
  58. try {
  59. Common::waitMetaSync();
  60. $this->ossClient->deleteBucketCors($this->bucket);
  61. } catch (OssException $e) {
  62. $this->assertFalse(True);
  63. }
  64. try {
  65. Common::waitMetaSync();
  66. $corsConfig3 = $this->ossClient->getBucketCors($this->bucket);
  67. $this->assertNotNull($corsConfig3);
  68. $this->assertNotEquals($corsConfig->serializeToXml(), $corsConfig3->serializeToXml());
  69. } catch (OssException $e) {
  70. $this->assertFalse(True);
  71. }
  72. }
  73. }