FlashComponentTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. namespace Tools\Test\TestCase\Controller\Component;
  3. use Cake\Core\Configure;
  4. use Cake\Event\Event;
  5. use Cake\Network\Request;
  6. use TestApp\Controller\FlashComponentTestController;
  7. use Tools\TestSuite\TestCase;
  8. /**
  9. */
  10. class FlashComponentTest extends TestCase {
  11. //public $fixtures = array('core.sessions', 'plugin.tools.tools_users', 'plugin.tools.roles');
  12. /**
  13. * @var \TestApp\Controller\FlashComponentTestController
  14. */
  15. public $Controller;
  16. /**
  17. * @return void
  18. */
  19. public function setUp() {
  20. parent::setUp();
  21. Configure::write('App.namespace', 'TestApp');
  22. $this->Controller = new FlashComponentTestController();
  23. $this->Controller->startupProcess();
  24. $this->Controller->request->session()->delete('FlashMessage');
  25. }
  26. /**
  27. * @return void
  28. */
  29. public function tearDown() {
  30. parent::tearDown();
  31. unset($this->Controller->Flash);
  32. unset($this->Controller);
  33. }
  34. /**
  35. * @return void
  36. */
  37. public function testTransientMessage() {
  38. $this->Controller->Flash->transientMessage('xyz', 'success');
  39. $res = Configure::read('FlashMessage');
  40. $this->assertTrue(!empty($res));
  41. $this->assertTrue(isset($res['success'][0]) && $res['success'][0] === 'xyz');
  42. }
  43. /**
  44. * @return void
  45. */
  46. public function testMessage() {
  47. $this->Controller->Flash->message('efg');
  48. $res = $this->Controller->request->session()->read('FlashMessage');
  49. $this->assertTrue(!empty($res));
  50. $this->assertTrue(isset($res['info'][0]));
  51. $this->assertSame('efg', $res['info'][0]);
  52. }
  53. /**
  54. * @return void
  55. */
  56. public function testMagic() {
  57. $this->Controller->Flash->error('Some Error Message');
  58. $res = $this->Controller->request->session()->read('FlashMessage');
  59. $this->assertTrue(!empty($res));
  60. $this->assertTrue(isset($res['error'][0]));
  61. $this->assertSame('Some Error Message', $res['error'][0]);
  62. }
  63. /**
  64. * @return void
  65. */
  66. public function testCoreHook() {
  67. $this->Controller->Flash->set('Some Message');
  68. $res = $this->Controller->request->session()->read('FlashMessage');
  69. $this->assertTrue(!empty($res));
  70. $this->assertTrue(isset($res['info'][0]));
  71. $this->assertSame('Some Message', $res['info'][0]);
  72. }
  73. /**
  74. * @return void
  75. */
  76. public function testAjax() {
  77. $this->Controller->request = $this->getMockBuilder(Request::class)->setMethods(['is'])->getMock();
  78. $this->Controller->Flash->success('yeah');
  79. $this->Controller->Flash->transientMessage('xyz', 'warning');
  80. $this->Controller->request->expects($this->once())
  81. ->method('is')
  82. ->with('ajax')
  83. ->will($this->returnValue(true));
  84. $event = new Event('Controller.startup', $this->Controller);
  85. $this->Controller->Flash->beforeRender($event);
  86. $result = $this->Controller->response->header();
  87. $expected = ['X-Flash' => '{"success":["yeah"],"warning":["xyz"]}'];
  88. $this->assertSame($expected, $result);
  89. }
  90. }