FlashHelperTest.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. namespace Tools\Test\TestCase\View\Helper;
  3. use Cake\Routing\Router;
  4. use Cake\View\View;
  5. use Tools\TestSuite\TestCase;
  6. use Tools\View\Helper\FlashHelper;
  7. /**
  8. * FlashHelper tests
  9. */
  10. class FlashHelperTest extends TestCase {
  11. /**
  12. * @var array
  13. */
  14. public $fixtures = ['core.sessions'];
  15. /**
  16. * @var \Tools\View\Helper\FlashHelper
  17. */
  18. public $Flash;
  19. /**
  20. * @return void
  21. */
  22. public function setUp() {
  23. parent::setUp();
  24. Router::reload();
  25. $View = new View(null);
  26. $this->Flash = new FlashHelper($View);
  27. }
  28. /**
  29. * FlashHelperTest::testMessage()
  30. *
  31. * @return void
  32. */
  33. public function testMessage() {
  34. $result = $this->Flash->message(h('Foo & bar'), 'success');
  35. $expected = '<div class="flash-messages"><div class="message success">Foo &amp; bar</div></div>';
  36. $this->assertEquals($expected, $result);
  37. }
  38. /**
  39. * FlashHelperTest::testRender()
  40. *
  41. * @return void
  42. */
  43. public function testRender() {
  44. $this->Flash->addTransientMessage(h('Foo & bar'), 'success');
  45. $result = $this->Flash->render();
  46. $expected = '<div class="flash-messages"><div class="message success">Foo &amp; bar</div></div>';
  47. $this->assertEquals($expected, $result);
  48. $this->Flash->addTransientMessage('I am an error', 'error');
  49. $this->Flash->addTransientMessage('I am a warning', 'warning');
  50. $this->Flash->addTransientMessage('I am some info', 'info');
  51. $this->Flash->addTransientMessage('I am also some info');
  52. $this->Flash->addTransientMessage('I am sth custom', 'custom');
  53. $result = $this->Flash->render();
  54. $this->assertTextContains('message error', $result);
  55. $this->assertTextContains('message warning', $result);
  56. $this->assertTextContains('message info', $result);
  57. $this->assertTextContains('message custom', $result);
  58. $result = substr_count($result, 'message info');
  59. $this->assertSame(2, $result);
  60. }
  61. /**
  62. * Test that you can define your own order or just output a subpart of
  63. * the types.
  64. *
  65. * @return void
  66. */
  67. public function testFlashWithTypes() {
  68. $this->Flash->addTransientMessage('I am an error', 'error');
  69. $this->Flash->addTransientMessage('I am a warning', 'warning');
  70. $this->Flash->addTransientMessage('I am some info', 'info');
  71. $this->Flash->addTransientMessage('I am also some info');
  72. $this->Flash->addTransientMessage('I am sth custom', 'custom');
  73. $result = $this->Flash->render(['warning', 'error']);
  74. $expected = '<div class="flash-messages"><div class="message warning">I am a warning</div><div class="message error">I am an error</div></div>';
  75. $this->assertEquals($expected, $result);
  76. $result = $this->Flash->render(['info']);
  77. $expected = '<div class="flash-messages"><div class="message info">I am some info</div><div class="message info">I am also some info</div></div>';
  78. $this->assertEquals($expected, $result);
  79. $result = $this->Flash->render();
  80. $expected = '<div class="flash-messages"><div class="message custom">I am sth custom</div></div>';
  81. $this->assertEquals($expected, $result);
  82. }
  83. /**
  84. * TearDown method
  85. *
  86. * @return void
  87. */
  88. public function tearDown() {
  89. parent::tearDown();
  90. unset($this->Flash);
  91. }
  92. }