From 1a8ac737e52cb25a5c346232ee398f5908cee7d7 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Mon, 6 Jul 2020 08:04:35 +0200 Subject: Process main page (linklist) through Slim controller Including a bunch of improvements on the container, and helper used across new controllers. --- tests/legacy/LegacyControllerTest.php | 99 +++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 tests/legacy/LegacyControllerTest.php (limited to 'tests/legacy/LegacyControllerTest.php') diff --git a/tests/legacy/LegacyControllerTest.php b/tests/legacy/LegacyControllerTest.php new file mode 100644 index 00000000..ff4520a3 --- /dev/null +++ b/tests/legacy/LegacyControllerTest.php @@ -0,0 +1,99 @@ +createContainer(); + + $this->controller = new LegacyController($this->container); + } + + /** + * @dataProvider getProcessProvider + */ + public function testProcess(string $legacyRoute, array $queryParameters, string $slimRoute, bool $isLoggedIn): void + { + $request = $this->createMock(Request::class); + $request->method('getQueryParams')->willReturn($queryParameters); + $request + ->method('getParam') + ->willReturnCallback(function (string $key) use ($queryParameters): ?string { + return $queryParameters[$key] ?? null; + }) + ; + $response = new Response(); + + $this->container->loginManager->method('isLoggedIn')->willReturn($isLoggedIn); + + $result = $this->controller->process($request, $response, $legacyRoute); + + static::assertSame('/subfolder' . $slimRoute, $result->getHeader('location')[0]); + } + + public function testProcessNotFound(): void + { + $request = $this->createMock(Request::class); + $response = new Response(); + + $this->expectException(UnknowLegacyRouteException::class); + + $this->controller->process($request, $response, 'nope'); + } + + /** + * @return array[] Parameters: + * - string legacyRoute + * - array queryParameters + * - string slimRoute + * - bool isLoggedIn + */ + public function getProcessProvider(): array + { + return [ + ['post', [], '/admin/shaare', true], + ['post', [], '/login', false], + ['post', ['title' => 'test'], '/admin/shaare?title=test', true], + ['post', ['title' => 'test'], '/login?title=test', false], + ['addlink', [], '/admin/add-shaare', true], + ['addlink', [], '/login', false], + ['login', [], '/login', true], + ['login', [], '/login', false], + ['logout', [], '/logout', true], + ['logout', [], '/logout', false], + ['picwall', [], '/picture-wall', false], + ['picwall', [], '/picture-wall', true], + ['tagcloud', [], '/tags/cloud', false], + ['tagcloud', [], '/tags/cloud', true], + ['taglist', [], '/tags/list', false], + ['taglist', [], '/tags/list', true], + ['daily', [], '/daily', false], + ['daily', [], '/daily', true], + ['daily', ['day' => '123456789', 'discard' => '1'], '/daily?day=123456789', false], + ['rss', [], '/feed/rss', false], + ['rss', [], '/feed/rss', true], + ['rss', ['search' => 'filter123', 'other' => 'param'], '/feed/rss?search=filter123&other=param', false], + ['atom', [], '/feed/atom', false], + ['atom', [], '/feed/atom', true], + ['atom', ['search' => 'filter123', 'other' => 'param'], '/feed/atom?search=filter123&other=param', false], + ['opensearch', [], '/open-search', false], + ['opensearch', [], '/open-search', true], + ['dailyrss', [], '/daily-rss', false], + ['dailyrss', [], '/daily-rss', true], + ]; + } +} -- cgit v1.2.3 From bedbb845eec20363b928b424143787dbe988eefe Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Thu, 13 Aug 2020 11:08:13 +0200 Subject: Move all admin controller into a dedicated group Also handle authentication check in a new middleware for the admin group. --- tests/legacy/LegacyControllerTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tests/legacy/LegacyControllerTest.php') diff --git a/tests/legacy/LegacyControllerTest.php b/tests/legacy/LegacyControllerTest.php index ff4520a3..759a5b2a 100644 --- a/tests/legacy/LegacyControllerTest.php +++ b/tests/legacy/LegacyControllerTest.php @@ -73,8 +73,8 @@ class LegacyControllerTest extends TestCase ['addlink', [], '/login', false], ['login', [], '/login', true], ['login', [], '/login', false], - ['logout', [], '/logout', true], - ['logout', [], '/logout', false], + ['logout', [], '/admin/logout', true], + ['logout', [], '/admin/logout', false], ['picwall', [], '/picture-wall', false], ['picwall', [], '/picture-wall', true], ['tagcloud', [], '/tags/cloud', false], -- cgit v1.2.3 From aca995e09cf9c210ffe45584fbe50dcedb8bdebb Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Tue, 1 Sep 2020 10:12:54 +0200 Subject: Fix support for legacy route login redirection Makes sure that the user is properly redirected to the bookmark form after login, even with legacy routes --- tests/legacy/LegacyControllerTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tests/legacy/LegacyControllerTest.php') diff --git a/tests/legacy/LegacyControllerTest.php b/tests/legacy/LegacyControllerTest.php index 759a5b2a..460fbb3b 100644 --- a/tests/legacy/LegacyControllerTest.php +++ b/tests/legacy/LegacyControllerTest.php @@ -66,11 +66,11 @@ class LegacyControllerTest extends TestCase { return [ ['post', [], '/admin/shaare', true], - ['post', [], '/login', false], + ['post', [], '/login?returnurl=/admin/shaare', false], ['post', ['title' => 'test'], '/admin/shaare?title=test', true], - ['post', ['title' => 'test'], '/login?title=test', false], + ['post', ['title' => 'test'], '/login?returnurl=/admin/shaare?title=test', false], ['addlink', [], '/admin/add-shaare', true], - ['addlink', [], '/login', false], + ['addlink', [], '/login?returnurl=/admin/add-shaare', false], ['login', [], '/login', true], ['login', [], '/login', false], ['logout', [], '/admin/logout', true], -- cgit v1.2.3 From 9e2d47e519783a991962e1fe2c9f28d77756ae49 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Tue, 1 Sep 2020 10:40:18 +0200 Subject: Fix legacy redirection when Shaarli instance is under a subfolder --- tests/legacy/LegacyControllerTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tests/legacy/LegacyControllerTest.php') diff --git a/tests/legacy/LegacyControllerTest.php b/tests/legacy/LegacyControllerTest.php index 460fbb3b..2bbbb1d7 100644 --- a/tests/legacy/LegacyControllerTest.php +++ b/tests/legacy/LegacyControllerTest.php @@ -66,11 +66,11 @@ class LegacyControllerTest extends TestCase { return [ ['post', [], '/admin/shaare', true], - ['post', [], '/login?returnurl=/admin/shaare', false], + ['post', [], '/login?returnurl=/subfolder/admin/shaare', false], ['post', ['title' => 'test'], '/admin/shaare?title=test', true], - ['post', ['title' => 'test'], '/login?returnurl=/admin/shaare?title=test', false], + ['post', ['title' => 'test'], '/login?returnurl=/subfolder/admin/shaare?title=test', false], ['addlink', [], '/admin/add-shaare', true], - ['addlink', [], '/login?returnurl=/admin/add-shaare', false], + ['addlink', [], '/login?returnurl=/subfolder/admin/add-shaare', false], ['login', [], '/login', true], ['login', [], '/login', false], ['logout', [], '/admin/logout', true], -- cgit v1.2.3 From 11aa4a7a29c5a6358584ce0f63c061fdb0704b18 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Tue, 1 Sep 2020 10:40:35 +0200 Subject: Support redirection of legacy route 'do=configure' --- tests/legacy/LegacyControllerTest.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests/legacy/LegacyControllerTest.php') diff --git a/tests/legacy/LegacyControllerTest.php b/tests/legacy/LegacyControllerTest.php index 2bbbb1d7..4e52f3e1 100644 --- a/tests/legacy/LegacyControllerTest.php +++ b/tests/legacy/LegacyControllerTest.php @@ -94,6 +94,8 @@ class LegacyControllerTest extends TestCase ['opensearch', [], '/open-search', true], ['dailyrss', [], '/daily-rss', false], ['dailyrss', [], '/daily-rss', true], + ['configure', [], '/login?returnurl=/subfolder/admin/configure', false], + ['configure', [], '/admin/configure', true], ]; } } -- cgit v1.2.3 From a5a9cf23acd1248585173aa32757d9720b5f2d62 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Tue, 29 Sep 2020 14:41:40 +0200 Subject: Compatibility with PHPUnit 9 --- tests/legacy/LegacyControllerTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/legacy/LegacyControllerTest.php') diff --git a/tests/legacy/LegacyControllerTest.php b/tests/legacy/LegacyControllerTest.php index 4e52f3e1..1a2549a3 100644 --- a/tests/legacy/LegacyControllerTest.php +++ b/tests/legacy/LegacyControllerTest.php @@ -4,8 +4,8 @@ declare(strict_types=1); namespace Shaarli\Legacy; -use PHPUnit\Framework\TestCase; use Shaarli\Front\Controller\Visitor\FrontControllerMockHelper; +use Shaarli\TestCase; use Slim\Http\Request; use Slim\Http\Response; -- cgit v1.2.3