1
0

TemplateSwitcherTest.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php declare(strict_types=1);
  2. use PHPUnit\Framework\TestCase;
  3. use PrivateBin\Configuration;
  4. use PrivateBin\TemplateSwitcher;
  5. class TemplateSwitcherTest extends TestCase
  6. {
  7. public function testSetTemplateFallback()
  8. {
  9. $conf = new Configuration;
  10. $existingTemplateFallback = "bootstrap-dark";
  11. $wrongTemplateFallback = "bootstrap-wrong";
  12. TemplateSwitcher::setAvailableTemplates($conf->getSection('available_templates'));
  13. TemplateSwitcher::setTemplateFallback($existingTemplateFallback);
  14. $this->assertEquals($existingTemplateFallback, TemplateSwitcher::getTemplate(), "Correct template fallback");
  15. TemplateSwitcher::setTemplateFallback($wrongTemplateFallback);
  16. $this->assertEquals($existingTemplateFallback, TemplateSwitcher::getTemplate(), "Wrong template fallback");
  17. }
  18. public function testSetAvailableTemplates()
  19. {
  20. $conf = new Configuration;
  21. $availableTemplates = $conf->getSection('available_templates');
  22. TemplateSwitcher::setAvailableTemplates($availableTemplates);
  23. $this->assertEquals($availableTemplates, TemplateSwitcher::getAvailableTemplates(), "Set available templates");
  24. }
  25. public function testGetTemplate()
  26. {
  27. $defaultTemplateFallback = "bootstrap";
  28. $customTemplate = "bootstrap-dark";
  29. $customWrongTemplate = "bootstrap-wrong";
  30. TemplateSwitcher::setTemplateFallback($defaultTemplateFallback);
  31. $_COOKIE['template'] = $customWrongTemplate;
  32. $this->assertEquals($defaultTemplateFallback, TemplateSwitcher::getTemplate(), "Custom wrong template");
  33. $_COOKIE['template'] = $customTemplate;
  34. $this->assertEquals($customTemplate, TemplateSwitcher::getTemplate(), "Custom template");
  35. }
  36. public function testGetAvailableTemplates()
  37. {
  38. $this->assertNotEmpty(TemplateSwitcher::getAvailableTemplates(), "Get available templates");
  39. }
  40. public function testIsTemplateAvailable()
  41. {
  42. $conf = new Configuration;
  43. $existingTemplate = "bootstrap";
  44. $nonExistentTemplate = "bootstrap-wrong";
  45. TemplateSwitcher::setAvailableTemplates($conf->getSection('available_templates'));
  46. $this->assertTrue(TemplateSwitcher::isTemplateAvailable($existingTemplate), "Existing template");
  47. $this->assertFalse(TemplateSwitcher::isTemplateAvailable($nonExistentTemplate), "Non-existent template");
  48. }
  49. }