FlashHelperTest.php 3.0 KB

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