RefererRedirectComponentTest.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace Tools\Test\TestCase\Controller\Component;
  3. use App\Controller\RefererRedirectComponentTestController;
  4. use Cake\Controller\ComponentRegistry;
  5. use Cake\Core\Configure;
  6. use Cake\Event\Event;
  7. use Cake\Http\Response;
  8. use Cake\Http\ServerRequest;
  9. use Tools\Controller\Component\RefererRedirectComponent;
  10. use Tools\TestSuite\TestCase;
  11. class RefererRedirectComponentTest extends TestCase {
  12. /**
  13. * @var \Cake\Event\Event
  14. */
  15. protected $event;
  16. /**
  17. * @var \App\Controller\RefererRedirectComponentTestController
  18. */
  19. protected $Controller;
  20. /**
  21. * @return void
  22. */
  23. public function setUp(): void {
  24. parent::setUp();
  25. $serverRequest = new ServerRequest();
  26. $serverRequest = $serverRequest->withQueryParams(['ref' => '/somewhere-else']);
  27. $this->event = new Event('Controller.beforeFilter');
  28. $this->Controller = new RefererRedirectComponentTestController($serverRequest);
  29. Configure::write('App.fullBaseUrl', 'http://localhost');
  30. }
  31. /**
  32. * @return void
  33. */
  34. public function tearDown(): void {
  35. parent::tearDown();
  36. unset($this->Controller);
  37. }
  38. /**
  39. * @return void
  40. */
  41. public function testBeforeRedirect() {
  42. $response = new Response();
  43. $componentRegistry = new ComponentRegistry($this->Controller);
  44. $refererRedirectComponent = new RefererRedirectComponent($componentRegistry);
  45. $modifiedResponse = $refererRedirectComponent->beforeRedirect($this->event, ['action' => 'foo'], $response);
  46. $this->assertSame(['/somewhere-else'], $modifiedResponse->getHeader('Location'));
  47. }
  48. }