diff --git a/bedrock/firefox/tests/test_base.py b/bedrock/firefox/tests/test_base.py index f9771cad724..0d44328858e 100644 --- a/bedrock/firefox/tests/test_base.py +++ b/bedrock/firefox/tests/test_base.py @@ -475,6 +475,14 @@ def test_fx_31(self, render_mock): template = render_mock.call_args[0][1] eq_(template, ['firefox/australis/whatsnew-no-tour.html']) + @override_settings(DEV=True) + def test_rv_prefix(self, render_mock): + """Prefixed oldversion shouldn't impact version sniffing.""" + req = self.rf.get('/en-US/firefox/whatsnew/?oldversion=rv:10.0') + self.view(req, fx_version='30.0') + template = render_mock.call_args[0][1] + eq_(template, ['firefox/australis/whatsnew-tour.html']) + @override_settings(DEV=False) def test_fx_australis_secure_redirect(self, render_mock): """Should redirect to https: for 29.0.""" @@ -766,6 +774,9 @@ def test_whatsnew_tour_oldversion(self): response = self.client.get(self.url + '?oldversion=4.0', HTTP_USER_AGENT=self.user_agent) self.assertIn(self.expected, response.content) + response = self.client.get(self.url + '?oldversion=rv:10.0', HTTP_USER_AGENT=self.user_agent) + self.assertIn(self.expected, response.content) + response = self.client.get(self.url + '?oldversion=29.0', HTTP_USER_AGENT=self.user_agent) self.assertNotIn(self.expected, response.content) diff --git a/bedrock/firefox/views.py b/bedrock/firefox/views.py index 88dbbe56a78..a1a5ed80e8a 100644 --- a/bedrock/firefox/views.py +++ b/bedrock/firefox/views.py @@ -430,6 +430,9 @@ def get_template_names(self): fc_ctx = funnelcake_param(self.request) f = fc_ctx.get('funnelcake_id', 0) oldversion = self.request.GET.get('oldversion', '') + # old versions of Firefox sent a prefixed version + if oldversion.startswith('rv:'): + oldversion = oldversion[3:] versions = ('29.', '30.', '31.') if version == '29.0a1':