FlashComponentTest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace Tools\Test\TestCase\Controller\Component;
  3. use Cake\Controller\ComponentRegistry;
  4. use Cake\Controller\Component;
  5. use Cake\Controller\Component\FlashComponent;
  6. use Cake\Controller\Controller;
  7. use Cake\Core\Configure;
  8. use Cake\Network\Request;
  9. use Cake\Network\Session;
  10. use Cake\Routing\DispatcherFactory;
  11. use Cake\TestSuite\TestCase;
  12. /**
  13. */
  14. class FlashComponentTest extends TestCase {
  15. //public $fixtures = array('core.sessions', 'plugin.tools.tools_users', 'plugin.tools.roles');
  16. public function setUp() {
  17. parent::setUp();
  18. Configure::write('App.namespace', 'TestApp');
  19. $this->Controller = new FlashComponentTestController();
  20. $this->Controller->startupProcess();
  21. }
  22. public function tearDown() {
  23. parent::tearDown();
  24. unset($this->Controller->Flash);
  25. unset($this->Controller);
  26. }
  27. /**
  28. * FlashComponentTest::testTransientMessage()
  29. *
  30. * @return void
  31. */
  32. public function testTransientMessage() {
  33. $is = $this->Controller->Flash->transientMessage('xyz', 'success');
  34. //$this->assertTrue($is);
  35. $res = Configure::read('messages');
  36. //debug($res);
  37. $this->assertTrue(!empty($res));
  38. $this->assertTrue(isset($res['success'][0]) && $res['success'][0] === 'xyz');
  39. }
  40. /**
  41. * FlashComponentTest::testMessage()
  42. *
  43. * @return void
  44. */
  45. public function testMessage() {
  46. $this->Controller->request->session()->delete('messages');
  47. $is = $this->Controller->Flash->message('efg');
  48. $res = $this->Controller->request->session()->read('messages');
  49. $this->assertTrue(!empty($res));
  50. $this->assertTrue(isset($res['info'][0]) && $res['info'][0] === 'efg');
  51. }
  52. }
  53. /**
  54. * Use Controller instead of AppController to avoid conflicts
  55. */
  56. class FlashComponentTestController extends Controller {
  57. public $components = array('Tools.Flash');
  58. public $failed = false;
  59. public $testHeaders = array();
  60. public function fail() {
  61. $this->failed = true;
  62. }
  63. public function redirect($url, $status = null, $exit = true) {
  64. return $status;
  65. }
  66. public function header($status) {
  67. $this->testHeaders[] = $status;
  68. }
  69. }