forums: add UX for username search results.
JIRA: FOR-627
This commit is contained in:
@@ -351,13 +351,13 @@ class DiscussionTabHomePage(CoursePage, DiscussionPageMixin):
|
||||
def is_browser_on_page(self):
|
||||
return self.q(css=".discussion-body section.home-header").present
|
||||
|
||||
def perform_search(self):
|
||||
def perform_search(self, text="dummy"):
|
||||
self.q(css=".discussion-body .sidebar .search").first.click()
|
||||
EmptyPromise(
|
||||
lambda: self.q(css=".discussion-body .sidebar .search.is-open").present,
|
||||
"waiting for search input to be available"
|
||||
).fulfill()
|
||||
self.q(css="#search-discussions").fill("dummy" + chr(10))
|
||||
self.q(css="#search-discussions").fill(text + chr(10))
|
||||
EmptyPromise(
|
||||
self.is_ajax_finished,
|
||||
"waiting for server to return result"
|
||||
@@ -366,6 +366,9 @@ class DiscussionTabHomePage(CoursePage, DiscussionPageMixin):
|
||||
def get_search_alert_messages(self):
|
||||
return self.q(css=self.ALERT_SELECTOR + " .message").text
|
||||
|
||||
def get_search_alert_links(self):
|
||||
return self.q(css=self.ALERT_SELECTOR + " .link-jump")
|
||||
|
||||
def dismiss_alert_message(self, text):
|
||||
"""
|
||||
dismiss any search alert message containing the specified text.
|
||||
|
||||
@@ -421,9 +421,18 @@ class DiscussionSearchAlertTest(UniqueCourseTest):
|
||||
Tests for spawning and dismissing alerts related to user search actions and their results.
|
||||
"""
|
||||
|
||||
SEARCHED_USERNAME = "gizmo"
|
||||
|
||||
def setUp(self):
|
||||
super(DiscussionSearchAlertTest, self).setUp()
|
||||
CourseFixture(**self.course_info).install()
|
||||
# first auto auth call sets up a user that we will search for in some tests
|
||||
self.searched_user_id = AutoAuthPage(
|
||||
self.browser,
|
||||
username=self.SEARCHED_USERNAME,
|
||||
course_id=self.course_id
|
||||
).visit().get_user_id()
|
||||
# this auto auth call creates the actual session user
|
||||
AutoAuthPage(self.browser, course_id=self.course_id).visit()
|
||||
self.page = DiscussionTabHomePage(self.browser, self.course_id)
|
||||
self.page.visit()
|
||||
@@ -433,12 +442,12 @@ class DiscussionSearchAlertTest(UniqueCourseTest):
|
||||
|
||||
def check_search_alert_messages(self, expected):
|
||||
actual = self.page.get_search_alert_messages()
|
||||
self.assertTrue(all(map(lambda msg, sub: msg.find(sub) >= 0, actual, expected)))
|
||||
self.assertTrue(all(map(lambda msg, sub: msg.lower().find(sub.lower()) >= 0, actual, expected)))
|
||||
|
||||
def test_no_rewrite(self):
|
||||
self.setup_corrected_text(None)
|
||||
self.page.perform_search()
|
||||
self.check_search_alert_messages([])
|
||||
self.check_search_alert_messages(["no threads"])
|
||||
|
||||
def test_rewrite_dismiss(self):
|
||||
self.setup_corrected_text("foo")
|
||||
@@ -458,7 +467,26 @@ class DiscussionSearchAlertTest(UniqueCourseTest):
|
||||
|
||||
self.setup_corrected_text(None)
|
||||
self.page.perform_search()
|
||||
self.check_search_alert_messages([])
|
||||
self.check_search_alert_messages(["no threads"])
|
||||
|
||||
def test_rewrite_and_user(self):
|
||||
self.setup_corrected_text("foo")
|
||||
self.page.perform_search(self.SEARCHED_USERNAME)
|
||||
self.check_search_alert_messages(["foo", self.SEARCHED_USERNAME])
|
||||
|
||||
def test_user_only(self):
|
||||
self.setup_corrected_text(None)
|
||||
self.page.perform_search(self.SEARCHED_USERNAME)
|
||||
self.check_search_alert_messages(["no threads", self.SEARCHED_USERNAME])
|
||||
# make sure clicking the link leads to the user profile page
|
||||
UserProfileViewFixture([]).push()
|
||||
self.page.get_search_alert_links().first.click()
|
||||
DiscussionUserProfilePage(
|
||||
self.browser,
|
||||
self.course_id,
|
||||
self.searched_user_id,
|
||||
self.SEARCHED_USERNAME
|
||||
).wait_for_page()
|
||||
|
||||
|
||||
class DiscussionSortPreferenceTest(UniqueCourseTest):
|
||||
|
||||
Reference in New Issue
Block a user