WebsiteConfigTest.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace OSS\Tests;
  3. use OSS\Model\WebsiteConfig;
  4. use OSS\Core\OssException;
  5. class WebsiteConfigTest extends \PHPUnit_Framework_TestCase
  6. {
  7. private $validXml = <<<BBBB
  8. <?xml version="1.0" encoding="utf-8"?>
  9. <WebsiteConfiguration>
  10. <IndexDocument>
  11. <Suffix>index.html</Suffix>
  12. </IndexDocument>
  13. <ErrorDocument>
  14. <Key>errorDocument.html</Key>
  15. </ErrorDocument>
  16. </WebsiteConfiguration>
  17. BBBB;
  18. private $nullXml = <<<BBBB
  19. <?xml version="1.0" encoding="utf-8"?><WebsiteConfiguration><IndexDocument><Suffix/></IndexDocument><ErrorDocument><Key/></ErrorDocument></WebsiteConfiguration>
  20. BBBB;
  21. private $nullXml2 = <<<BBBB
  22. <?xml version="1.0" encoding="utf-8"?><WebsiteConfiguration><IndexDocument><Suffix></Suffix></IndexDocument><ErrorDocument><Key></Key></ErrorDocument></WebsiteConfiguration>
  23. BBBB;
  24. public function testParseValidXml()
  25. {
  26. $websiteConfig = new WebsiteConfig("index");
  27. $websiteConfig->parseFromXml($this->validXml);
  28. $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($websiteConfig->serializeToXml()));
  29. }
  30. public function testParsenullXml()
  31. {
  32. $websiteConfig = new WebsiteConfig();
  33. $websiteConfig->parseFromXml($this->nullXml);
  34. $this->assertTrue($this->cleanXml($this->nullXml) === $this->cleanXml($websiteConfig->serializeToXml()) ||
  35. $this->cleanXml($this->nullXml2) === $this->cleanXml($websiteConfig->serializeToXml()));
  36. }
  37. public function testWebsiteConstruct()
  38. {
  39. $websiteConfig = new WebsiteConfig("index.html", "errorDocument.html");
  40. $this->assertEquals('index.html', $websiteConfig->getIndexDocument());
  41. $this->assertEquals('errorDocument.html', $websiteConfig->getErrorDocument());
  42. $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($websiteConfig->serializeToXml()));
  43. }
  44. private function cleanXml($xml)
  45. {
  46. return str_replace("\n", "", str_replace("\r", "", $xml));
  47. }
  48. }