Skip to content
Snippets Groups Projects
Commit 910f1c45 authored by Sharon Wang's avatar Sharon Wang
Browse files

test passing

parent 15c9ad11
No related branches found
No related tags found
No related merge requests found
...@@ -196,6 +196,7 @@ def _set_deprecated_user_info_cookie(response, request, user, cookie_settings): ...@@ -196,6 +196,7 @@ def _set_deprecated_user_info_cookie(response, request, user, cookie_settings):
} }
} }
""" """
user_info = _get_user_info_cookie_data(request, user)
response.set_cookie( response.set_cookie(
settings.EDXMKTG_USER_INFO_COOKIE_NAME, settings.EDXMKTG_USER_INFO_COOKIE_NAME,
json.dumps(user_info), json.dumps(user_info),
...@@ -218,6 +219,12 @@ def _set_deprecated_logged_in_cookie(response, cookie_settings): ...@@ -218,6 +219,12 @@ def _set_deprecated_logged_in_cookie(response, cookie_settings):
return response return response
def _convert_to_absolute_uris(request, urls_obj):
""" Convert relative URL paths to absolute URIs """
for url_name, url_path in six.iteritems(urls_obj):
urls_obj[url_name] = request.build_absolute_uri(url_path)
return urls_obj
def _get_user_info_cookie_data(request, user): def _get_user_info_cookie_data(request, user):
""" Returns information that will populate the user info cookie. """ """ Returns information that will populate the user info cookie. """
...@@ -245,18 +252,13 @@ def _get_user_info_cookie_data(request, user): ...@@ -245,18 +252,13 @@ def _get_user_info_cookie_data(request, user):
except User.DoesNotExist: except User.DoesNotExist:
pass pass
# Convert relative URL paths to absolute URIs header_urls = _convert_to_absolute_uris(request, header_urls)
for url_name, url_path in six.iteritems(header_urls):
header_urls[url_name] = request.build_absolute_uri(url_path)
image_urls = {}
image_urls = [] if user.profile:
if user.profile and user.profile.has_profile_image: image_urls = get_profile_image_urls_for_user(user)
image_urls = _get_user_info_cookie_data(request, user)
print('****') image_urls = _convert_to_absolute_uris(request, image_urls)
print(user)
print(image_urls)
user_info = { user_info = {
'version': settings.EDXMKTG_USER_INFO_COOKIE_VERSION, 'version': settings.EDXMKTG_USER_INFO_COOKIE_VERSION,
......
...@@ -10,19 +10,23 @@ from django.urls import reverse ...@@ -10,19 +10,23 @@ from django.urls import reverse
from edx_rest_framework_extensions.auth.jwt.decoder import jwt_decode_handler from edx_rest_framework_extensions.auth.jwt.decoder import jwt_decode_handler
from edx_rest_framework_extensions.auth.jwt.middleware import JwtAuthCookieMiddleware from edx_rest_framework_extensions.auth.jwt.middleware import JwtAuthCookieMiddleware
from mock import MagicMock, patch from mock import MagicMock, patch
from datetime import date
from openedx.core.djangoapps.user_api.accounts.utils import retrieve_last_sitewide_block_completed from openedx.core.djangoapps.user_api.accounts.utils import retrieve_last_sitewide_block_completed
from openedx.core.djangoapps.user_authn import cookies as cookies_api from openedx.core.djangoapps.user_authn import cookies as cookies_api
from openedx.core.djangoapps.user_authn.tests.utils import setup_login_oauth_client from openedx.core.djangoapps.user_authn.tests.utils import setup_login_oauth_client
from openedx.core.djangolib.testing.utils import skip_unless_lms from openedx.core.djangolib.testing.utils import skip_unless_lms
from common.djangoapps.student.tests.factories import AnonymousUserFactory, UserFactory, UserProfileFactory from common.djangoapps.student.tests.factories import AnonymousUserFactory, UserFactory, UserProfileFactory
from openedx.core.djangoapps.profile_images.tests.helpers import make_image_file
from openedx.core.djangoapps.profile_images.images import create_profile_images
from openedx.core.djangoapps.user_api.accounts.image_helpers import get_profile_image_names
class CookieTests(TestCase): class CookieTests(TestCase):
def setUp(self): def setUp(self):
super(CookieTests, self).setUp() super(CookieTests, self).setUp()
self.user = UserFactory.create() self.user = UserFactory.create()
self.user.profile = UserProfileFactory.create() self.user.profile = UserProfileFactory.create(user=self.user)
self.request = RequestFactory().get('/') self.request = RequestFactory().get('/')
self.request.user = self.user self.request.user = self.user
self.request.session = self._get_stub_session() self.request.session = self._get_stub_session()
...@@ -32,6 +36,18 @@ class CookieTests(TestCase): ...@@ -32,6 +36,18 @@ class CookieTests(TestCase):
get_expiry_age=lambda: max_age, get_expiry_age=lambda: max_age,
) )
def _get_expected_image_urls(self):
expected_image_urls = {
'full': '/static/default_500.png',
'large': '/static/default_120.png',
'medium': '/static/default_50.png',
'small': '/static/default_30.png'
}
expected_image_urls = cookies_api._convert_to_absolute_uris(self.request, expected_image_urls)
return expected_image_urls
def _get_expected_header_urls(self): def _get_expected_header_urls(self):
expected_header_urls = { expected_header_urls = {
'logout': reverse('logout'), 'logout': reverse('logout'),
...@@ -40,9 +56,7 @@ class CookieTests(TestCase): ...@@ -40,9 +56,7 @@ class CookieTests(TestCase):
'learner_profile': reverse('learner_profile', kwargs={'username': self.user.username}), 'learner_profile': reverse('learner_profile', kwargs={'username': self.user.username}),
} }
# Convert relative URL paths to absolute URIs expected_header_urls = cookies_api._convert_to_absolute_uris(self.request, expected_header_urls)
for url_name, url_path in six.iteritems(expected_header_urls):
expected_header_urls[url_name] = self.request.build_absolute_uri(url_path)
return expected_header_urls return expected_header_urls
...@@ -86,16 +100,21 @@ class CookieTests(TestCase): ...@@ -86,16 +100,21 @@ class CookieTests(TestCase):
@skip_unless_lms @skip_unless_lms
def test_get_user_info_cookie_data(self): def test_get_user_info_cookie_data(self):
with make_image_file() as image_file:
create_profile_images(image_file, get_profile_image_names(self.user.username))
self.user.profile.profile_image_uploaded_at = date.today()
self.user.profile.save()
actual = cookies_api._get_user_info_cookie_data(self.request, self.user) # pylint: disable=protected-access actual = cookies_api._get_user_info_cookie_data(self.request, self.user) # pylint: disable=protected-access
expected = { expected = {
'version': settings.EDXMKTG_USER_INFO_COOKIE_VERSION, 'version': settings.EDXMKTG_USER_INFO_COOKIE_VERSION,
'username': self.user.username, 'username': self.user.username,
'header_urls': self._get_expected_header_urls(), 'header_urls': self._get_expected_header_urls(),
'image_urls': self._get_expected_image_urls(),
} }
self.assertDictEqual(actual, expected) self.assertDictEqual(actual, expected)
self.assertEqual(0,1)
def test_set_logged_in_cookies_anonymous_user(self): def test_set_logged_in_cookies_anonymous_user(self):
anonymous_user = AnonymousUserFactory() anonymous_user = AnonymousUserFactory()
......
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