From 68a90821a305867e9b655da2dbfe558d37253990 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Fri, 26 Apr 2019 13:40:58 +0200 Subject: [PATCH] Handle redirection from previous feeds --- app/config/routing.yml | 36 +++++++++++++++++++ .../Controller/FeedControllerTest.php | 33 +++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/app/config/routing.yml b/app/config/routing.yml index a7c0f7e9..d4defca0 100644 --- a/app/config/routing.yml +++ b/app/config/routing.yml @@ -59,3 +59,39 @@ fos_js_routing: 2fa_login_check: path: /2fa_check + +# redirect RSS feed to Atom +rss_to_atom_unread: + path: /{username}/{token}/unread.xml + defaults: + _controller: FrameworkBundle:Redirect:redirect + route: unread_feed + permanent: true + +rss_to_atom_archive: + path: /{username}/{token}/archive.xml + defaults: + _controller: FrameworkBundle:Redirect:redirect + route: archive_feed + permanent: true + +rss_to_atom_starred: + path: /{username}/{token}/starred.xml + defaults: + _controller: FrameworkBundle:Redirect:redirect + route: starred_feed + permanent: true + +rss_to_atom_all: + path: /{username}/{token}/all.xml + defaults: + _controller: FrameworkBundle:Redirect:redirect + route: all_feed + permanent: true + +rss_to_atom_tags: + path: /{username}/{token}/tags/{slug}.xml + defaults: + _controller: FrameworkBundle:Redirect:redirect + route: tag_feed + permanent: true diff --git a/tests/Wallabag/CoreBundle/Controller/FeedControllerTest.php b/tests/Wallabag/CoreBundle/Controller/FeedControllerTest.php index 70f33ebe..d52d7bb8 100644 --- a/tests/Wallabag/CoreBundle/Controller/FeedControllerTest.php +++ b/tests/Wallabag/CoreBundle/Controller/FeedControllerTest.php @@ -225,4 +225,37 @@ class FeedControllerTest extends WallabagCoreTestCase $client->request('GET', '/feed/admin/SUPERTOKEN/tags/foo/3000'); $this->assertSame(302, $client->getResponse()->getStatusCode()); } + + public function dataForRedirect() + { + return [ + [ + '/admin/YZIOAUZIAO/unread.xml', + ], + [ + '/admin/YZIOAUZIAO/starred.xml', + ], + [ + '/admin/YZIOAUZIAO/archive.xml', + ], + [ + '/admin/YZIOAUZIAO/all.xml', + ], + [ + '/admin/YZIOAUZIAO/tags/foo.xml', + ], + ]; + } + + /** + * @dataProvider dataForRedirect + */ + public function testRedirectFromRssToAtom($url) + { + $client = $this->getClient(); + + $client->request('GET', $url); + + $this->assertSame(301, $client->getResponse()->getStatusCode()); + } } -- 2.41.0