FlashHelperTest.php 3.0 KB

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