TemplateSwitcherTest.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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->getKey('availabletemplates'));
  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->getKey('availabletemplates');
  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->getKey('availabletemplates'));
  46. $this->assertTrue(TemplateSwitcher::isTemplateAvailable($existingTemplate), 'Existing template');
  47. $this->assertFalse(TemplateSwitcher::isTemplateAvailable($nonExistentTemplate), 'Non-existent template');
  48. }
  49. }