def assert_page_is_not_shown_in_lms(self, page_name): """ Confirms the page is not shown in LMS Arguments: page_name(str): Name of the page not to be shown """ course_info = get_course_info() course_page = CourseInfoPageExtended( self.browser, get_course_key(course_info) ) course_page.visit() pages_in_tab = course_page.get_page_names_in_tab() self.assertNotIn(page_name, pages_in_tab)
def test_drag_and_drop_of_pages(self): """ Verifies that user can drag and drop pages and they appear in the proper order in LMS """ # Get all pages all_pages = self.pages_page.get_all_pages() # Get counts of all pages and all custom pages. count_of_all_pages = len(all_pages) count_of_custom_pages = self.pages_page.get_custom_page_count() # Source and target indices for the pages to be dragged and dropped. source_index = count_of_all_pages - count_of_custom_pages - 1 target_index = source_index - 1 self.pages_page.drag_and_drop(source_index, target_index) temp = all_pages[source_index] all_pages[source_index] = all_pages[target_index] all_pages[target_index] = temp # Assert page order is correct. self.assertEqual( self.pages_page.get_all_pages(), all_pages ) # Open LMS and assert pages are in correct order. course_info = get_course_info() course_page = CourseInfoPageExtended( self.browser, get_course_key(course_info) ) course_page.visit() pages_in_tab = course_page.get_page_names_in_tab() # By default, LMS is opened with Instructor view. # We have to append 'Instructor' to make assertion pass. all_pages.append('Instructor') self.assertEqual(pages_in_tab, all_pages)
class PagesTestWithLms(WebAppTest): """ Course Pages test where we verify on Lms too """ def setUp(self): super(PagesTestWithLms, self).setUp() self.course_info = get_course_info() studio_login = StudioLoginApi() studio_login.authenticate(self.browser) lms_login = LmsLoginApi() lms_login.authenticate(self.browser) self.course_page = CourseInfoPageExtended( self.browser, get_course_key(self.course_info)) self.courseware_page = CoursewarePageExtended( self.browser, get_course_key(self.course_info)) self.pages_page = PagesPageExtended(self.browser, self.course_info['org'], self.course_info['number'], self.course_info['run']) # Login to LMS to avoid authentication issue self.course_page.visit() self.pages_page.visit() def assert_page_is_shown_in_lms(self, page_name): """ Confirms the page is shown in LMS Arguments: page_name(str): Name of the page to be shown """ self.pages_page.click_view_live_button() self.courseware_page.wait_for_page() pages_in_tab = self.courseware_page.get_page_names_in_tab() self.assertIn(page_name, pages_in_tab) def assert_page_is_not_shown_in_lms(self, page_name): """ Confirms the page is not shown in LMS Arguments: page_name(str): Name of the page not to be shown """ self.pages_page.click_view_live_button() self.courseware_page.wait_for_page() pages_in_tab = self.courseware_page.get_page_names_in_tab() self.assertNotIn(page_name, pages_in_tab) @flaky def test_hide_and_show_pages(self): """ Verifies that hide/show toggle button is working for pages. """ # Reset page state self.reset_hide_show_of_page() self.pages_page.visit() # Click hide/show toggle, assert page is not shown. page = self.pages_page.toggle_wiki_page_display() self.assertFalse(self.pages_page.toggle_wiki_page_show_value()) # Assert page is not shown in the LMS. self.assert_page_is_not_shown_in_lms(page) # Return back to tbe pages page and un-check # the toggle to show the page. self.pages_page.visit() page = self.pages_page.toggle_wiki_page_display() self.assertTrue(self.pages_page.toggle_wiki_page_show_value()) # Assert page is shown in the LMS. self.assert_page_is_shown_in_lms(page) # Reset page state self.reset_hide_show_of_page() def reset_hide_show_of_page(self): """ Resets hide/show state of wiki page to default """ self.pages_page.visit() if self.pages_page.toggle_wiki_page_show_value() is False: self.pages_page.toggle_wiki_page_display() self.assertTrue(self.pages_page.toggle_wiki_page_show_value())