Skip to content
Snippets Groups Projects
Unverified Commit 49abac58 authored by Waheed Ahmed's avatar Waheed Ahmed Committed by GitHub
Browse files

Remove lang cookie for mobile app requests. (#22731)

* Remove lang cookie for mobile app requests.

Responses for mobile app requests must not include language preference cookie.

PROD-1107
parent 8f5a166a
No related merge requests found
......@@ -70,14 +70,13 @@ class LanguagePreferenceMiddleware(object):
pass
# If set, set the user_pref in the LANGUAGE_COOKIE
if user_pref:
if not is_request_from_mobile_app(request):
response.set_cookie(
settings.LANGUAGE_COOKIE,
value=user_pref,
domain=settings.SESSION_COOKIE_DOMAIN,
max_age=COOKIE_DURATION,
)
if user_pref and not is_request_from_mobile_app(request):
response.set_cookie(
settings.LANGUAGE_COOKIE,
value=user_pref,
domain=settings.SESSION_COOKIE_DOMAIN,
max_age=COOKIE_DURATION,
)
else:
response.delete_cookie(
settings.LANGUAGE_COOKIE,
......
......@@ -257,18 +257,18 @@ class TestUserPreferenceMiddleware(CacheIsolationTestCase):
@mock.patch('openedx.core.djangoapps.lang_pref.middleware.is_request_from_mobile_app')
@mock.patch('openedx.core.djangoapps.lang_pref.middleware.get_user_preference')
def test_lang_pref_cookie_must_not_sent_to_mobile(self, mock_get_user_preference, mock_is_mobile_request):
def test_remove_lang_cookie_for_mobile_app(self, mock_get_user_preference, mock_is_mobile_request):
"""
Test to verify language preference cookie must not be set for mobile requests
Test to verify language preference cookie removed for mobile app requests.
"""
mock_get_user_preference.return_value = 'test_value'
mock_is_mobile_request.return_value = True
mock_get_user_preference.return_value = 'en'
mock_is_mobile_request.return_value = False
response = mock.Mock(spec=HttpResponse)
response = self.client.get('/')
self.middleware.process_response(self.request, response)
self.assertFalse(response.cookies.get('openedx-language-preference'))
response = self.middleware.process_response(self.request, response)
response.delete_cookie.assert_not_called()
response.set_cookie.assert_called()
mock_is_mobile_request.return_value = False
response = self.client.get('/')
self.middleware.process_response(self.request, response)
self.assertTrue(response.cookies.get('openedx-language-preference'))
mock_is_mobile_request.return_value = True
response = self.middleware.process_response(self.request, response)
response.delete_cookie.assert_called()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment