1
0

TemplateSwitcherTest.php 2.7 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. $defaultTemplateFallback = 'bootstrap';
  11. $existingTemplateFallback = 'bootstrap-dark';
  12. $wrongBootstrapTemplateFallback = 'bootstrap-wrong';
  13. $wrongTemplateFallback = 'wrong-template';
  14. TemplateSwitcher::setAvailableTemplates($conf->getKey('availabletemplates'));
  15. TemplateSwitcher::setTemplateFallback($wrongBootstrapTemplateFallback);
  16. $this->assertEquals($defaultTemplateFallback, TemplateSwitcher::getTemplate(), 'Wrong bootstrap template fallback');
  17. TemplateSwitcher::setTemplateFallback($wrongTemplateFallback);
  18. $this->assertEquals($defaultTemplateFallback, TemplateSwitcher::getTemplate(), 'Wrong template fallback');
  19. TemplateSwitcher::setTemplateFallback($existingTemplateFallback);
  20. $this->assertEquals($existingTemplateFallback, TemplateSwitcher::getTemplate(), 'Correct template fallback');
  21. }
  22. public function testSetAvailableTemplates()
  23. {
  24. $conf = new Configuration;
  25. $availableTemplates = $conf->getKey('availabletemplates');
  26. TemplateSwitcher::setAvailableTemplates($availableTemplates);
  27. $this->assertEquals($availableTemplates, TemplateSwitcher::getAvailableTemplates(), 'Set available templates');
  28. }
  29. public function testGetTemplate()
  30. {
  31. $defaultTemplateFallback = 'bootstrap';
  32. $customTemplate = 'bootstrap-dark';
  33. $customWrongTemplate = 'bootstrap-wrong';
  34. TemplateSwitcher::setTemplateFallback($defaultTemplateFallback);
  35. $_COOKIE['template'] = $customWrongTemplate;
  36. $this->assertEquals($defaultTemplateFallback, TemplateSwitcher::getTemplate(), 'Custom wrong template');
  37. $_COOKIE['template'] = $customTemplate;
  38. $this->assertEquals($customTemplate, TemplateSwitcher::getTemplate(), 'Custom template');
  39. }
  40. public function testGetAvailableTemplates()
  41. {
  42. $this->assertNotEmpty(TemplateSwitcher::getAvailableTemplates(), 'Get available templates');
  43. }
  44. public function testIsTemplateAvailable()
  45. {
  46. $conf = new Configuration;
  47. $existingTemplate = 'bootstrap';
  48. $nonExistentTemplate = 'bootstrap-wrong';
  49. TemplateSwitcher::setAvailableTemplates($conf->getKey('availabletemplates'));
  50. $this->assertTrue(TemplateSwitcher::isTemplateAvailable($existingTemplate), 'Existing template');
  51. $this->assertFalse(TemplateSwitcher::isTemplateAvailable($nonExistentTemplate), 'Non-existent template');
  52. }
  53. }