From 8f4404401b19465eeec8b2f57a7898421164507f Mon Sep 17 00:00:00 2001 From: Leo Feyer Date: Thu, 23 Jul 2020 16:20:13 +0200 Subject: [PATCH 1/4] Fix the front end preview --- .../Controller/BackendPreviewController.php | 2 +- .../BackendPreviewControllerTest.php | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/core-bundle/src/Controller/BackendPreviewController.php b/core-bundle/src/Controller/BackendPreviewController.php index dcab6569eb2..736b5db2460 100644 --- a/core-bundle/src/Controller/BackendPreviewController.php +++ b/core-bundle/src/Controller/BackendPreviewController.php @@ -90,6 +90,6 @@ public function __invoke(Request $request): Response return new RedirectResponse($targetUrl); } - return new RedirectResponse('/'); + return new RedirectResponse($this->previewScript ?: '/'); } } diff --git a/core-bundle/tests/Controller/BackendPreviewControllerTest.php b/core-bundle/tests/Controller/BackendPreviewControllerTest.php index fd8c9c757ee..53ea6395cc5 100644 --- a/core-bundle/tests/Controller/BackendPreviewControllerTest.php +++ b/core-bundle/tests/Controller/BackendPreviewControllerTest.php @@ -105,7 +105,7 @@ public function testDispatchesPreviewUrlConvertEvent(): void public function testRedirectsToRootPage(): void { $controller = new BackendPreviewController( - 'preview.php', + '', $this->createMock(FrontendPreviewAuthenticator::class), new EventDispatcher(), $this->mockAuthorizationChecker() @@ -118,6 +118,22 @@ public function testRedirectsToRootPage(): void $this->assertSame('/', $response->getTargetUrl()); } + public function testRedirectsToRootPageWitPreviewScript(): void + { + $controller = new BackendPreviewController( + 'preview.php', + $this->createMock(FrontendPreviewAuthenticator::class), + new EventDispatcher(), + $this->mockAuthorizationChecker() + ); + + /** @var RedirectResponse $response */ + $response = $controller($this->mockRequest()); + + $this->assertInstanceOf(RedirectResponse::class, $response); + $this->assertSame('preview.php', $response->getTargetUrl()); + } + /** * @return Request&MockObject */ From 0c321e4f585856f587828ceaafed5db71ddca534 Mon Sep 17 00:00:00 2001 From: Leo Feyer Date: Fri, 24 Jul 2020 09:51:24 +0200 Subject: [PATCH 2/4] Use Request::getBaseUrl() --- core-bundle/src/Controller/BackendPreviewController.php | 2 +- .../tests/Controller/BackendPreviewControllerTest.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core-bundle/src/Controller/BackendPreviewController.php b/core-bundle/src/Controller/BackendPreviewController.php index 736b5db2460..13bdafdba82 100644 --- a/core-bundle/src/Controller/BackendPreviewController.php +++ b/core-bundle/src/Controller/BackendPreviewController.php @@ -90,6 +90,6 @@ public function __invoke(Request $request): Response return new RedirectResponse($targetUrl); } - return new RedirectResponse($this->previewScript ?: '/'); + return new RedirectResponse($request->getBaseUrl().'/'); } } diff --git a/core-bundle/tests/Controller/BackendPreviewControllerTest.php b/core-bundle/tests/Controller/BackendPreviewControllerTest.php index 53ea6395cc5..7ac85d4b764 100644 --- a/core-bundle/tests/Controller/BackendPreviewControllerTest.php +++ b/core-bundle/tests/Controller/BackendPreviewControllerTest.php @@ -105,7 +105,7 @@ public function testDispatchesPreviewUrlConvertEvent(): void public function testRedirectsToRootPage(): void { $controller = new BackendPreviewController( - '', + '/', $this->createMock(FrontendPreviewAuthenticator::class), new EventDispatcher(), $this->mockAuthorizationChecker() @@ -121,7 +121,7 @@ public function testRedirectsToRootPage(): void public function testRedirectsToRootPageWitPreviewScript(): void { $controller = new BackendPreviewController( - 'preview.php', + 'preview.php/', $this->createMock(FrontendPreviewAuthenticator::class), new EventDispatcher(), $this->mockAuthorizationChecker() @@ -131,7 +131,7 @@ public function testRedirectsToRootPageWitPreviewScript(): void $response = $controller($this->mockRequest()); $this->assertInstanceOf(RedirectResponse::class, $response); - $this->assertSame('preview.php', $response->getTargetUrl()); + $this->assertSame('preview.php/', $response->getTargetUrl()); } /** From 9e3c402b66a2bd64c427e1c8cf0d8205d6e43f48 Mon Sep 17 00:00:00 2001 From: Leo Feyer Date: Fri, 24 Jul 2020 10:14:41 +0200 Subject: [PATCH 3/4] Reset the tests --- .../BackendPreviewControllerTest.php | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/core-bundle/tests/Controller/BackendPreviewControllerTest.php b/core-bundle/tests/Controller/BackendPreviewControllerTest.php index 7ac85d4b764..fd8c9c757ee 100644 --- a/core-bundle/tests/Controller/BackendPreviewControllerTest.php +++ b/core-bundle/tests/Controller/BackendPreviewControllerTest.php @@ -105,7 +105,7 @@ public function testDispatchesPreviewUrlConvertEvent(): void public function testRedirectsToRootPage(): void { $controller = new BackendPreviewController( - '/', + 'preview.php', $this->createMock(FrontendPreviewAuthenticator::class), new EventDispatcher(), $this->mockAuthorizationChecker() @@ -118,22 +118,6 @@ public function testRedirectsToRootPage(): void $this->assertSame('/', $response->getTargetUrl()); } - public function testRedirectsToRootPageWitPreviewScript(): void - { - $controller = new BackendPreviewController( - 'preview.php/', - $this->createMock(FrontendPreviewAuthenticator::class), - new EventDispatcher(), - $this->mockAuthorizationChecker() - ); - - /** @var RedirectResponse $response */ - $response = $controller($this->mockRequest()); - - $this->assertInstanceOf(RedirectResponse::class, $response); - $this->assertSame('preview.php/', $response->getTargetUrl()); - } - /** * @return Request&MockObject */ From 3148aeedd35b73fecf6fcdd38fda2b75bca9843b Mon Sep 17 00:00:00 2001 From: Leo Feyer Date: Fri, 24 Jul 2020 10:17:19 +0200 Subject: [PATCH 4/4] Adjust the test --- .../tests/Controller/BackendPreviewControllerTest.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core-bundle/tests/Controller/BackendPreviewControllerTest.php b/core-bundle/tests/Controller/BackendPreviewControllerTest.php index fd8c9c757ee..5da1f5d3e41 100644 --- a/core-bundle/tests/Controller/BackendPreviewControllerTest.php +++ b/core-bundle/tests/Controller/BackendPreviewControllerTest.php @@ -111,11 +111,18 @@ public function testRedirectsToRootPage(): void $this->mockAuthorizationChecker() ); + $request = $this->mockRequest(); + $request + ->expects($this->once()) + ->method('getBaseUrl') + ->willReturn('/preview.php') + ; + /** @var RedirectResponse $response */ - $response = $controller($this->mockRequest()); + $response = $controller($request); $this->assertInstanceOf(RedirectResponse::class, $response); - $this->assertSame('/', $response->getTargetUrl()); + $this->assertSame('/preview.php/', $response->getTargetUrl()); } /**