FlashHelperTest.php 3.1 KB

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