diff --git a/addons/test_website/controllers/main.py b/addons/test_website/controllers/main.py index 63333b8157edef9af8be7d95f4c633096aa3ba91..8ce6ed6ac07f384dbae47ceea4c5bb487985b450 100644 --- a/addons/test_website/controllers/main.py +++ b/addons/test_website/controllers/main.py @@ -138,3 +138,7 @@ class WebsiteTest(Home): @http.route(['/test_website/200/<model("test.model"):rec>'], type='http', auth="public", website=True, sitemap=False) def test_model_converter_seoname(self, rec, **kw): return request.make_response('ok') + + @http.route(['/test_website/test_redirect_view_qs'], type='http', auth="public", website=True, sitemap=False) + def test_redirect_view_qs(self, **kw): + return request.render('test_website.test_redirect_view_qs') diff --git a/addons/test_website/data/test_website_data.xml b/addons/test_website/data/test_website_data.xml index 0f9fc54cf73a2288bf4aabff19ad034b21d84aea..dad4d7b7ce948174c6d51d64c922987ff00661f4 100644 --- a/addons/test_website/data/test_website_data.xml +++ b/addons/test_website/data/test_website_data.xml @@ -111,6 +111,9 @@ <!-- `href` is send through `url_for` for non editor users --> <a href="/test_website/country/andorra-1">I am a link</a> </template> + <template id="test_redirect_view_qs"> + <a href="/empty_controller_test?a=a">Home</a> + </template> </data> </odoo> diff --git a/addons/test_website/tests/test_redirect.py b/addons/test_website/tests/test_redirect.py index 38eebcde016a049f980e0fe52608da82244abee7..7f66dd882e46a22eb2296253759a3d1fefe2bb33 100644 --- a/addons/test_website/tests/test_redirect.py +++ b/addons/test_website/tests/test_redirect.py @@ -160,3 +160,17 @@ class TestRedirect(HttpCase): resp = self.url_open("/test_website/308/xx-100", allow_redirects=False) self.assertEqual(resp.status_code, 404) self.assertEqual(resp.text, "CUSTOM 404") + + def test_03_redirect_308_qs(self): + self.env['website.rewrite'].create({ + 'name': 'Test QS Redirect', + 'redirect_type': '308', + 'url_from': '/empty_controller_test', + 'url_to': '/empty_controller_test_redirected', + }) + r = self.url_open('/test_website/test_redirect_view_qs?a=a') + self.assertEqual(r.status_code, 200) + self.assertIn( + 'href="/empty_controller_test_redirected?a=a"', r.text, + "Redirection should have been applied, and query string should not have been duplicated.", + )