FlashHelperTest.php 3.0 KB

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