Esempio n. 1
0
class DashboardTest(WebAppTest):
    """
    Regression tests on LMS Dashboard
    """
    def setUp(self):
        super(DashboardTest, self).setUp()

        studio_login = StudioLoginApi()
        studio_login.authenticate(self.browser)

        lms_login = LmsLoginApi()
        lms_login.authenticate(self.browser)

        self.studio_home_page = DashboardPageExtended(self.browser)
        self.course_info = get_course_info()
        self.studio_course_outline = CourseOutlinePageExtended(
            self.browser, self.course_info['org'], self.course_info['number'],
            self.course_info['run'])
        self.lms_courseware = CoursewarePageExtended(
            self.browser, get_course_key(self.course_info))
        self.course_page = CourseInfoPageExtended(self.browser,
                                                  get_course_info())
        self.dashboard_page = DashboardPageExtended(self.browser)
        self.drupal_course_page = DemoCourseSelectionPage(self.browser)
        self.payment_page = PaymentPage(self.browser)

        self.dashboard_page.visit()

    @skipIf(LMS_BASE_URL != LMS_STAGE_BASE_URL,
            'There is no resume button on sandbox')  # LT-60
    def test_resume_course(self):
        """
        Verifies that user can successfully resume the course
        """
        # Delete any existing sections
        self.studio_course_outline.visit()
        self.studio_course_outline.delete_all_sections()

        # Pre Reqs
        section_name = 'Section :{}'.format(uuid4().hex)
        self.studio_course_outline.add_section_with_name(section_name)
        self.assertIn(
            section_name,
            self.studio_course_outline.q(css='.incontext-editor-value').text)

        subsection_name = 'Subsection :{}'.format(uuid4().hex)
        self.studio_course_outline.add_subsection_with_name(subsection_name)
        self.assertIn(
            subsection_name,
            self.studio_course_outline.q(css='.incontext-editor-value').text)
        # Test
        self.dashboard_page.visit()
        self.dashboard_page.select_course(get_course_display_name())
        self.course_page.wait_for_page()
        self.course_page.click_resume_button()
        self.lms_courseware.wait_for_page()
Esempio n. 2
0
    def setUp(self):
        """
        Common setup for component tests
        """
        super(StudioLmsComponentBaseTest, self).setUp()

        studio_login = StudioLoginApi()
        studio_login.authenticate(self.browser)

        lms_login = LmsLoginApi()
        lms_login.authenticate(self.browser)

        self.unit_container_page = UnitPageExtended(self.browser, None)

        self.studio_home_page = DashboardPageExtended(self.browser)

        self.course_info = get_course_info()

        self.studio_course_outline = CourseOutlinePageExtended(
            self.browser, self.course_info['org'], self.course_info['number'],
            self.course_info['run'])

        self.lms_courseware = CoursewarePageExtended(
            self.browser, get_course_key(self.course_info))
        self.studio_course_outline.visit()
        # Delete any existing sections
        self.studio_course_outline.delete_all_sections()
Esempio n. 3
0
class GradedProblemTest(WebAppTest):
    """
    Regression tests on submitting a graded problem
    """
    tarball_name = 'course.tar.gz'

    def setUp(self):
        super(GradedProblemTest, self).setUp()

        login_api = LmsLoginApi()
        login_api.authenticate(self.browser)

        self.course_info = get_course_info()

        self.lms_courseware = CoursewarePageExtended(
            self.browser,
            get_course_key(self.course_info)
        )

        self.import_page = ImportCoursePageExtended(*self.page_args())
        self.import_page.visit()
        self.import_page.upload_tarball(self.tarball_name)
        self.import_page.wait_for_upload()

        self.course_page = CourseHomePageExtended(
            self.browser,
            get_course_key(self.course_info)
        )
        self.course_page.visit()

    def page_args(self):
        """
        Common arguments for pages to be used in tests.
        """
        return [
            self.browser,
            self.course_info['org'],
            self.course_info['number'],
            self.course_info['run']
        ]

    def test_graded_problem(self):
        """
        Verifies submission of a graded problem
        """
        self.course_page.click_resume_button()
        self.lms_courseware.submit_graded_problem()
    def setUp(self):
        super(GradedProblemTest, self).setUp()

        login_api = LmsLoginApi()
        login_api.authenticate(self.browser)

        self.course_info = get_course_info()

        self.lms_courseware = CoursewarePageExtended(
            self.browser, get_course_key(self.course_info))

        self.import_page = ImportCoursePageExtended(*self.page_args())
        self.import_page.visit()
        self.import_page.upload_tarball(self.tarball_name)
        self.import_page.wait_for_upload()

        self.course_page = CourseHomePageExtended(
            self.browser, get_course_key(self.course_info))
        self.course_page.visit()
class GradedProblemTest(WebAppTest):
    """
    Regression tests on submitting a graded problem
    """
    tarball_name = 'course.tar.gz'

    def setUp(self):
        super(GradedProblemTest, self).setUp()

        login_api = LmsLoginApi()
        login_api.authenticate(self.browser)

        self.course_info = get_course_info()

        self.lms_courseware = CoursewarePageExtended(
            self.browser, get_course_key(self.course_info))

        self.import_page = ImportCoursePageExtended(*self.page_args())
        self.import_page.visit()
        self.import_page.upload_tarball(self.tarball_name)
        self.import_page.wait_for_upload()

        self.course_page = CourseHomePageExtended(
            self.browser, get_course_key(self.course_info))
        self.course_page.visit()

    def page_args(self):
        """
        Common arguments for pages to be used in tests.
        """
        return [
            self.browser, self.course_info['org'], self.course_info['number'],
            self.course_info['run']
        ]

    def test_graded_problem(self):
        """
        Verifies submission of a graded problem
        """
        self.course_page.click_resume_button()
        self.lms_courseware.wait_for_page()
        self.lms_courseware.submit_graded_problem()
Esempio n. 6
0
    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()
Esempio n. 7
0
    def setUp(self):
        super(DashboardTest, self).setUp()

        studio_login = StudioLoginApi()
        studio_login.authenticate(self.browser)

        lms_login = LmsLoginApi()
        lms_login.authenticate(self.browser)

        self.studio_home_page = DashboardPageExtended(self.browser)
        self.course_info = get_course_info()
        self.studio_course_outline = CourseOutlinePageExtended(
            self.browser, self.course_info['org'], self.course_info['number'],
            self.course_info['run'])
        self.lms_courseware = CoursewarePageExtended(
            self.browser, get_course_key(self.course_info))
        self.course_page = CourseInfoPageExtended(self.browser,
                                                  get_course_info())
        self.dashboard_page = DashboardPageExtended(self.browser)
        self.drupal_course_page = DemoCourseSelectionPage(self.browser)
        self.payment_page = PaymentPage(self.browser)

        self.dashboard_page.visit()
Esempio n. 8
0
    def setUp(self):
        super(DashboardTest, self).setUp()

        lms_login = LmsLoginApi()
        lms_login.authenticate(self.browser)

        self.studio_home_page = DashboardPageExtended(self.browser)
        self.course_info = get_course_info()
        self.studio_course_outline = CourseOutlinePageExtended(
            self.browser, self.course_info['org'], self.course_info['number'],
            self.course_info['run']
        )
        self.lms_courseware = CoursewarePageExtended(
            self.browser,
            get_course_key(self.course_info)
        )
        self.course_page = CourseHomePageExtended(
            self.browser, get_course_info()
        )
        self.dashboard_page = DashboardPageExtended(self.browser)

        self.dashboard_page.visit()
Esempio n. 9
0
    def setUp(self):
        super(GradedProblemTest, self).setUp()

        login_api = LmsLoginApi()
        login_api.authenticate(self.browser)

        self.course_info = get_course_info()

        self.lms_courseware = CoursewarePageExtended(
            self.browser,
            get_course_key(self.course_info)
        )

        self.import_page = ImportCoursePageExtended(*self.page_args())
        self.import_page.visit()
        self.import_page.upload_tarball(self.tarball_name)
        self.import_page.wait_for_upload()

        self.course_page = CourseHomePageExtended(
            self.browser,
            get_course_key(self.course_info)
        )
        self.course_page.visit()
Esempio n. 10
0
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())