95 lines
2.9 KiB
Python
95 lines
2.9 KiB
Python
#pylint: disable=C0111
|
|
#pylint: disable=W0621
|
|
|
|
from lettuce import world, step
|
|
from nose.tools import assert_equal # pylint: disable=E0611
|
|
|
|
|
|
@step(u'I go to the static pages page$')
|
|
def go_to_static(step):
|
|
menu_css = 'li.nav-course-courseware'
|
|
static_css = 'li.nav-course-courseware-pages a'
|
|
world.css_click(menu_css)
|
|
world.css_click(static_css)
|
|
|
|
|
|
@step(u'I add a new page$')
|
|
def add_page(step):
|
|
button_css = 'a.new-button'
|
|
world.css_click(button_css)
|
|
|
|
|
|
@step(u'I should see a static page named "([^"]*)"$')
|
|
def see_a_static_page_named_foo(step, name):
|
|
pages_css = 'section.xmodule_StaticTabModule'
|
|
page_name_html = world.css_html(pages_css)
|
|
assert_equal(page_name_html, '\n {name}\n'.format(name=name))
|
|
|
|
|
|
@step(u'I should not see any static pages$')
|
|
def not_see_any_static_pages(step):
|
|
pages_css = 'section.xmodule_StaticTabModule'
|
|
assert (world.is_css_not_present(pages_css, wait_time=30))
|
|
|
|
|
|
@step(u'I "(edit|delete)" the static page$')
|
|
def click_edit_or_delete(step, edit_or_delete):
|
|
button_css = 'div.component-actions a.%s-button' % edit_or_delete
|
|
world.css_click(button_css)
|
|
|
|
|
|
@step(u'I change the name to "([^"]*)"$')
|
|
def change_name(step, new_name):
|
|
settings_css = '#settings-mode a'
|
|
world.css_click(settings_css)
|
|
input_css = 'input.setting-input'
|
|
world.css_fill(input_css, new_name)
|
|
if world.is_firefox():
|
|
world.trigger_event(input_css)
|
|
save_button = 'a.save-button'
|
|
world.css_click(save_button)
|
|
|
|
|
|
@step(u'I reorder the tabs')
|
|
def reorder_tabs(_step):
|
|
# For some reason, the drag_and_drop method did not work in this case.
|
|
draggables = world.css_find('.drag-handle')
|
|
source = draggables.first
|
|
target = draggables.last
|
|
source.action_chains.click_and_hold(source._element).perform()
|
|
source.action_chains.move_to_element_with_offset(target._element, 0, 50).perform()
|
|
source.action_chains.release().perform()
|
|
|
|
|
|
@step(u'I have created a static page')
|
|
def create_static_page(step):
|
|
step.given('I have opened a new course in Studio')
|
|
step.given('I go to the static pages page')
|
|
step.given('I add a new page')
|
|
|
|
|
|
@step(u'I have created two different static pages')
|
|
def create_two_pages(step):
|
|
step.given('I have created a static page')
|
|
step.given('I "edit" the static page')
|
|
step.given('I change the name to "First"')
|
|
step.given('I add a new page')
|
|
# Verify order of tabs
|
|
_verify_tab_names('First', 'Empty')
|
|
|
|
|
|
@step(u'the tabs are in the reverse order')
|
|
def tabs_in_reverse_order(step):
|
|
_verify_tab_names('Empty', 'First')
|
|
|
|
|
|
def _verify_tab_names(first, second):
|
|
world.wait_for(
|
|
func=lambda _: len(world.css_find('.xmodule_StaticTabModule')) == 2,
|
|
timeout=200,
|
|
timeout_msg="Timed out waiting for two tabs to be present"
|
|
)
|
|
tabs = world.css_find('.xmodule_StaticTabModule')
|
|
assert tabs[0].text == first
|
|
assert tabs[1].text == second
|