GetCorsResultTest.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace OSS\Tests;
  3. use OSS\Core\OssException;
  4. use OSS\Result\GetCorsResult;
  5. use OSS\Http\ResponseCore;
  6. class GetCorsResultTest extends \PHPUnit\Framework\TestCase
  7. {
  8. private $validXml = <<<BBBB
  9. <?xml version="1.0" encoding="utf-8"?>
  10. <CORSConfiguration>
  11. <CORSRule>
  12. <AllowedOrigin>http://www.b.com</AllowedOrigin>
  13. <AllowedOrigin>http://www.a.com</AllowedOrigin>
  14. <AllowedOrigin>http://www.a.com</AllowedOrigin>
  15. <AllowedMethod>GET</AllowedMethod>
  16. <AllowedMethod>PUT</AllowedMethod>
  17. <AllowedMethod>POST</AllowedMethod>
  18. <AllowedHeader>x-oss-test</AllowedHeader>
  19. <AllowedHeader>x-oss-test2</AllowedHeader>
  20. <AllowedHeader>x-oss-test2</AllowedHeader>
  21. <AllowedHeader>x-oss-test3</AllowedHeader>
  22. <ExposeHeader>x-oss-test1</ExposeHeader>
  23. <ExposeHeader>x-oss-test1</ExposeHeader>
  24. <ExposeHeader>x-oss-test2</ExposeHeader>
  25. <MaxAgeSeconds>10</MaxAgeSeconds>
  26. </CORSRule>
  27. <CORSRule>
  28. <AllowedOrigin>http://www.b.com</AllowedOrigin>
  29. <AllowedMethod>GET</AllowedMethod>
  30. <AllowedHeader>x-oss-test</AllowedHeader>
  31. <ExposeHeader>x-oss-test1</ExposeHeader>
  32. <MaxAgeSeconds>110</MaxAgeSeconds>
  33. </CORSRule>
  34. </CORSConfiguration>
  35. BBBB;
  36. public function testParseValidXml()
  37. {
  38. $response = new ResponseCore(array(), $this->validXml, 200);
  39. $result = new GetCorsResult($response);
  40. $this->assertTrue($result->isOK());
  41. $this->assertNotNull($result->getData());
  42. $this->assertNotNull($result->getRawResponse());
  43. $corsConfig = $result->getData();
  44. $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($corsConfig->serializeToXml()));
  45. }
  46. private function cleanXml($xml)
  47. {
  48. return str_replace("\n", "", str_replace("\r", "", $xml));
  49. }
  50. public function testInvalidResponse()
  51. {
  52. $response = new ResponseCore(array(), $this->validXml, 300);
  53. try {
  54. $result = new GetCorsResult($response);
  55. $this->assertTrue(false);
  56. } catch (OssException $e) {
  57. $this->assertTrue(true);
  58. }
  59. }
  60. }