If user is not above age limit, show restricted learner profile.
TNL-1658
This commit is contained in:
committed by
Andy Armstrong
parent
67848ff67b
commit
a378995f85
@@ -149,3 +149,19 @@ class LearnerProfilePage(FieldsMixin, PageObject):
|
||||
EmptyPromise(lambda: self.field_is_visible('country'), 'Country field is visible').fulfill()
|
||||
EmptyPromise(lambda: self.field_is_visible('language_proficiencies'), 'Language field is visible').fulfill()
|
||||
EmptyPromise(lambda: self.field_is_visible('bio'), 'About Me field is visible').fulfill()
|
||||
|
||||
@property
|
||||
def profile_forced_private_message(self):
|
||||
"""
|
||||
Returns age limit message.
|
||||
"""
|
||||
self.wait_for_ajax()
|
||||
return self.q(css='#u-field-message-account_privacy').text[0]
|
||||
|
||||
@property
|
||||
def age_limit_message_present(self):
|
||||
"""
|
||||
Check if age limit message is present.
|
||||
"""
|
||||
self.wait_for_ajax()
|
||||
return self.q(css='#u-field-message-account_privacy').visible
|
||||
|
||||
@@ -226,6 +226,7 @@ class AccountSettingsPageTest(WebAppTest):
|
||||
"""
|
||||
Test behaviour of "Year of Birth" field.
|
||||
"""
|
||||
self.assertEqual(self.account_settings_page.value_for_dropdown_field('year_of_birth', ''), '')
|
||||
self._test_dropdown_field(
|
||||
u'year_of_birth',
|
||||
u'Year of Birth',
|
||||
|
||||
@@ -52,6 +52,9 @@ class LearnerProfilePageTest(WebAppTest):
|
||||
|
||||
self.other_profile_page = LearnerProfilePage(self.browser, self.USER_2_NAME)
|
||||
|
||||
self.set_birth_year(self.MY_USER, birth_year='1990')
|
||||
self.set_birth_year(self.OTHER_USER, birth_year='1990')
|
||||
|
||||
def authenticate_as_user(self, user):
|
||||
"""
|
||||
Auto authenticate a user.
|
||||
@@ -69,11 +72,13 @@ class LearnerProfilePageTest(WebAppTest):
|
||||
profile_page.value_for_dropdown_field('country', 'United Kingdom')
|
||||
profile_page.value_for_textarea_field('bio', 'Nothing Special')
|
||||
|
||||
def visit_my_profile_page(self, user, privacy=None):
|
||||
def visit_my_profile_page(self, user, privacy=None, authenticate=True):
|
||||
"""
|
||||
Visits a users profile page.
|
||||
"""
|
||||
self.authenticate_as_user(user)
|
||||
if authenticate:
|
||||
self.authenticate_as_user(user)
|
||||
|
||||
self.my_profile_page.visit()
|
||||
self.my_profile_page.wait_for_page()
|
||||
|
||||
@@ -92,10 +97,6 @@ class LearnerProfilePageTest(WebAppTest):
|
||||
self.other_profile_page.wait_for_page()
|
||||
|
||||
if user is self.OTHER_USER and privacy is not None:
|
||||
self.account_settings_page.visit()
|
||||
self.account_settings_page.wait_for_page()
|
||||
self.assertEqual(self.account_settings_page.value_for_dropdown_field('year_of_birth', '1980'), '1980')
|
||||
|
||||
self.other_profile_page.visit()
|
||||
self.other_profile_page.wait_for_page()
|
||||
self.other_profile_page.privacy = privacy
|
||||
@@ -103,6 +104,25 @@ class LearnerProfilePageTest(WebAppTest):
|
||||
if privacy == self.PRIVACY_PUBLIC:
|
||||
self.set_pubilc_profile_fields_data(self.other_profile_page)
|
||||
|
||||
def set_birth_year(self, user, birth_year):
|
||||
"""
|
||||
Set birth year for `user` to the specified value.
|
||||
"""
|
||||
self.authenticate_as_user(user)
|
||||
self.account_settings_page.visit()
|
||||
self.account_settings_page.wait_for_page()
|
||||
self.assertEqual(self.account_settings_page.value_for_dropdown_field('year_of_birth', birth_year), birth_year)
|
||||
|
||||
def verify_profile_forced_private_message(self, birth_year, message=None):
|
||||
"""
|
||||
Verify age limit messages for a user.
|
||||
"""
|
||||
self.set_birth_year(self.MY_USER, birth_year=birth_year)
|
||||
self.visit_my_profile_page(self.MY_USER, authenticate=False)
|
||||
self.assertTrue(self.my_profile_page.privacy_field_visible)
|
||||
self.assertEqual(self.my_profile_page.age_limit_message_present, message is not None)
|
||||
self.assertIn(message, self.my_profile_page.profile_forced_private_message)
|
||||
|
||||
def test_dashboard_learner_profile_link(self):
|
||||
"""
|
||||
Scenario: Verify that my profile link is present on dashboard page and we can navigate to correct page.
|
||||
@@ -212,7 +232,7 @@ class LearnerProfilePageTest(WebAppTest):
|
||||
"""
|
||||
Test behaviour of a textarea field.
|
||||
"""
|
||||
self.visit_my_profile_page(self.MY_USER, privacy=self.PRIVACY_PUBLIC)
|
||||
self.visit_my_profile_page(self.MY_USER, privacy=self.PRIVACY_PUBLIC, )
|
||||
|
||||
self.my_profile_page.value_for_textarea_field(field_id, new_value)
|
||||
self.assertEqual(self.my_profile_page.get_non_editable_mode_value(field_id), displayed_value)
|
||||
@@ -305,3 +325,26 @@ class LearnerProfilePageTest(WebAppTest):
|
||||
|
||||
self.my_profile_page.make_field_editable('bio')
|
||||
self.assertTrue(self.my_profile_page.mode_for_field('bio'), 'edit')
|
||||
|
||||
def test_birth_year_not_set(self):
|
||||
"""
|
||||
Verify message if birth year is not set.
|
||||
|
||||
Given that I am a registered user.
|
||||
And birth year is not set for the user.
|
||||
And i visit my profile page.
|
||||
Then i should see message `Your profile is disabled because you haven't filled in your Year of Birth.`
|
||||
"""
|
||||
message = "You must specify your birth year before you can share your full profile."
|
||||
self.verify_profile_forced_private_message('', message=message)
|
||||
|
||||
def test_user_is_under_age(self):
|
||||
"""
|
||||
Verify message if user is under age.
|
||||
|
||||
Given that I am a registered user.
|
||||
And birth year is set so that age is less than 13.
|
||||
And i visit my profile page.
|
||||
Then i should see message `You must be over 13 to share a full profile.`
|
||||
"""
|
||||
self.verify_profile_forced_private_message('2010', message='You must be over 13 to share a full profile.')
|
||||
|
||||
Reference in New Issue
Block a user