Files
edx-platform/common/test/acceptance/tests/studio/test_studio_tabs.py
Feanil Patel 9cf2f9f298 Run 2to3 -f future . -w
This will remove imports from __future__ that are no longer needed.

https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
2019-12-30 10:35:30 -05:00

157 lines
6.2 KiB
Python

"""
Acceptance tests for Studio related to the Pages.
"""
from common.test.acceptance.pages.studio.edit_tabs import PagesPage
from common.test.acceptance.tests.studio.base_studio_test import StudioCourseTest
class PagesTest(StudioCourseTest):
"""
Test that Pages functionality is working properly on studio side
"""
shard = 23
def setUp(self, is_staff=True): # pylint: disable=arguments-differ
"""
Install a course with no content using a fixture.
"""
super(PagesTest, self).setUp(is_staff)
self.pages_page = PagesPage(
self.browser,
self.course_info['org'],
self.course_info['number'],
self.course_info['run']
)
self.pages_page.visit()
def test_user_can_add_static_tab(self):
"""
Scenario: Users can add static pages
Given I have opened the pages page in a new course
Then I should not see any static pages
When I add a new static page
Then I should see a static page named "Empty"
"""
self.assertFalse(
self.pages_page.is_static_page_present(),
'Static tab should not be present on the page for a newly created course'
)
self.pages_page.add_static_page()
self.assertTrue(
self.pages_page.is_static_page_present(),
'Static tab should be present on the page'
)
def test_user_can_delete_static_tab(self):
"""
Scenario: Users can delete static pages
Given I have created a static page
When I "delete" the static page
Then I am shown a prompt
When I confirm the prompt
Then I should not see any static pages
"""
self.assertFalse(
self.pages_page.is_static_page_present(),
'Static tab should not be present on the page for a newly created course'
)
self.pages_page.add_static_page()
self.pages_page.delete_static_tab()
self.assertFalse(
self.pages_page.is_static_page_present(),
'Static tab should not be present on the page after the deletion'
)
def test_user_can_edit_static_tab(self):
"""
Scenario: Users can edit static pages
Given I have created a static page
When I "edit" the static page
And I change the name to "New"
Then I should see static page named "New"
"""
self.assertFalse(
self.pages_page.is_static_page_present(),
'Static tab should not be present on the page for a newly created course'
)
self.pages_page.add_static_page()
self.assertNotEqual(self.pages_page.static_tab_titles[0], "New")
self.pages_page.click_edit_static_page()
self.pages_page.open_settings_tab()
self.pages_page.set_field_val("Display Name", "New")
self.pages_page.save()
self.assertEqual(self.pages_page.static_tab_titles[0], "New", "The title of the tab is not updated")
def test_user_can_reorder_static_tabs(self):
"""
Scenario: Users can reorder static pages
Given I have created two different static pages
When I drag the first static page to the last
Then the static pages are switched
And I reload the page
Then the static pages are switched
"""
self.assertFalse(
self.pages_page.is_static_page_present(),
'Static tab should not be present on the page for a newly created course'
)
self.pages_page.add_static_page()
self.pages_page.click_edit_static_page()
self.pages_page.set_field_val("Display Name", "First")
self.pages_page.save()
self.pages_page.add_static_page()
self.pages_page.drag_and_drop()
self.pages_page.refresh_and_wait_for_load()
static_tab_titles = self.pages_page.static_tab_titles
self.assertEqual(
static_tab_titles,
['Empty', 'First'],
u'Order should be:["Empty", "First] but getting {} from the page'.format(static_tab_titles)
)
def test_users_can_toggle_visibility(self):
"""
Scenario: Users can toggle visibility on hideable pages
Given I have opened the pages page in a new course
Then I should see the "wiki" page as "visible"
When I toggle the visibility of the "wiki" page
Then I should see the "wiki" page as "hidden"
And I reload the page
Then I should see the "wiki" page as "hidden"
When I toggle the visibility of the "wiki" page
Then I should see the "wiki" page as "visible"
And I reload the page
Then I should see the "wiki" page as "visible"
"""
tab = 'wiki'
self.assertTrue(self.pages_page.is_tab_visible(tab))
self.pages_page.toggle_tab(tab)
self.assertFalse(self.pages_page.is_tab_visible(tab))
self.pages_page.refresh_and_wait_for_load()
self.assertFalse(self.pages_page.is_tab_visible(tab))
self.pages_page.toggle_tab(tab)
self.assertTrue(self.pages_page.is_tab_visible(tab))
self.pages_page.refresh_and_wait_for_load()
self.assertTrue(self.pages_page.is_tab_visible(tab))
def test_default_order_with_static_pages(self):
"""
Scenario: Users can reorder built-in pages amongst static pages
Given I have created two different static pages
Then the pages are in the default order
"""
expected_order = ['Home', 'Course', 'Discussion', 'Wiki', 'Progress', 'First', 'Empty']
self.assertFalse(
self.pages_page.is_static_page_present(),
'Static tab should not be present on the page for a newly created course'
)
self.pages_page.add_static_page()
self.pages_page.click_edit_static_page()
self.pages_page.set_field_val("Display Name", "First")
self.pages_page.save()
self.pages_page.add_static_page()
tab_names = self.pages_page.built_in_page_titles + self.pages_page.static_tab_titles
self.assertEqual(tab_names, expected_order)