From 910f1c45c3d75cbfa50cd515ad7410e628a0c7b9 Mon Sep 17 00:00:00 2001
From: Sharon Wang <sharon.ran.wang@gmail.com>
Date: Tue, 15 Dec 2020 16:58:48 -0500
Subject: [PATCH] test passing

---
 openedx/core/djangoapps/user_authn/cookies.py | 22 +++++++-------
 .../user_authn/tests/test_cookies.py          | 29 +++++++++++++++----
 2 files changed, 36 insertions(+), 15 deletions(-)

diff --git a/openedx/core/djangoapps/user_authn/cookies.py b/openedx/core/djangoapps/user_authn/cookies.py
index e26075b9b37..1fbbad2d8dc 100644
--- a/openedx/core/djangoapps/user_authn/cookies.py
+++ b/openedx/core/djangoapps/user_authn/cookies.py
@@ -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(
         settings.EDXMKTG_USER_INFO_COOKIE_NAME,
         json.dumps(user_info),
@@ -218,6 +219,12 @@ def _set_deprecated_logged_in_cookie(response, cookie_settings):
 
     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):
     """ Returns information that will populate the user info cookie. """
@@ -245,18 +252,13 @@ def _get_user_info_cookie_data(request, user):
     except User.DoesNotExist:
         pass
 
-    # Convert relative URL paths to absolute URIs
-    for url_name, url_path in six.iteritems(header_urls):
-        header_urls[url_name] = request.build_absolute_uri(url_path)
+    header_urls = _convert_to_absolute_uris(request, header_urls)
 
-    
-    image_urls = []
-    if user.profile and user.profile.has_profile_image:
-        image_urls = _get_user_info_cookie_data(request, user)
+    image_urls = {}
+    if user.profile:
+        image_urls = get_profile_image_urls_for_user(user)
 
-    print('****')
-    print(user)
-    print(image_urls)
+    image_urls = _convert_to_absolute_uris(request, image_urls)
 
     user_info = {
         'version': settings.EDXMKTG_USER_INFO_COOKIE_VERSION,
diff --git a/openedx/core/djangoapps/user_authn/tests/test_cookies.py b/openedx/core/djangoapps/user_authn/tests/test_cookies.py
index 7b2f0158d48..0f907ae0739 100644
--- a/openedx/core/djangoapps/user_authn/tests/test_cookies.py
+++ b/openedx/core/djangoapps/user_authn/tests/test_cookies.py
@@ -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.middleware import JwtAuthCookieMiddleware
 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_authn import cookies as cookies_api
 from openedx.core.djangoapps.user_authn.tests.utils import setup_login_oauth_client
 from openedx.core.djangolib.testing.utils import skip_unless_lms
 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):
     def setUp(self):
         super(CookieTests, self).setUp()
         self.user = UserFactory.create()
-        self.user.profile = UserProfileFactory.create()
+        self.user.profile = UserProfileFactory.create(user=self.user)
         self.request = RequestFactory().get('/')
         self.request.user = self.user
         self.request.session = self._get_stub_session()
@@ -32,6 +36,18 @@ class CookieTests(TestCase):
             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):
         expected_header_urls = {
             'logout': reverse('logout'),
@@ -40,9 +56,7 @@ class CookieTests(TestCase):
             'learner_profile': reverse('learner_profile', kwargs={'username': self.user.username}),
         }
 
-        # Convert relative URL paths to absolute URIs
-        for url_name, url_path in six.iteritems(expected_header_urls):
-            expected_header_urls[url_name] = self.request.build_absolute_uri(url_path)
+        expected_header_urls = cookies_api._convert_to_absolute_uris(self.request, expected_header_urls)
 
         return expected_header_urls
 
@@ -86,16 +100,21 @@ class CookieTests(TestCase):
 
     @skip_unless_lms
     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
 
         expected = {
             'version': settings.EDXMKTG_USER_INFO_COOKIE_VERSION,
             'username': self.user.username,
             'header_urls': self._get_expected_header_urls(),
+            'image_urls': self._get_expected_image_urls(),
         }
 
         self.assertDictEqual(actual, expected)
-        self.assertEqual(0,1)
 
     def test_set_logged_in_cookies_anonymous_user(self):
         anonymous_user = AnonymousUserFactory()
-- 
GitLab