Simplify static page acceptance tests
This commit is contained in:
@@ -5,16 +5,16 @@ Feature: Static Pages
|
||||
Given I have opened a new course in Studio
|
||||
And I go to the static pages page
|
||||
When I add a new page
|
||||
Then I should see a "Empty" static page
|
||||
Then I should see a static page named "Empty"
|
||||
|
||||
Scenario: Users can delete static pages
|
||||
Given I have opened a new course in Studio
|
||||
And I go to the static pages page
|
||||
And I add a new page
|
||||
And I "delete" the "Empty" page
|
||||
And I "delete" the static page
|
||||
Then I am shown a prompt
|
||||
When I confirm the prompt
|
||||
Then I should not see a "Empty" static page
|
||||
Then I should not see any static pages
|
||||
|
||||
# Safari won't update the name properly
|
||||
@skip_safari
|
||||
@@ -22,6 +22,6 @@ Feature: Static Pages
|
||||
Given I have opened a new course in Studio
|
||||
And I go to the static pages page
|
||||
And I add a new page
|
||||
When I "edit" the "Empty" page
|
||||
When I "edit" the static page
|
||||
And I change the name to "New"
|
||||
Then I should see a "New" static page
|
||||
Then I should see a static page named "New"
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
#pylint: disable=W0621
|
||||
|
||||
from lettuce import world, step
|
||||
from nose.tools import assert_true # pylint: disable=E0611
|
||||
from nose.tools import assert_equal # pylint: disable=E0611
|
||||
|
||||
|
||||
@step(u'I go to the static pages page')
|
||||
@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'
|
||||
@@ -13,42 +13,29 @@ def go_to_static(step):
|
||||
world.css_click(static_css)
|
||||
|
||||
|
||||
@step(u'I add a new page')
|
||||
@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 not see a "([^"]*)" static page$')
|
||||
def not_see_page(step, page):
|
||||
# Either there are no pages, or there are pages but
|
||||
# not the one I expect not to exist.
|
||||
|
||||
# Since our only test for deletion right now deletes
|
||||
# the only static page that existed, our success criteria
|
||||
# will be that there are no static pages.
|
||||
# In the future we can refactor if necessary.
|
||||
tabs_css = 'li.component'
|
||||
assert (world.is_css_not_present(tabs_css, wait_time=30))
|
||||
@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 see a "([^"]*)" static page$')
|
||||
def see_page(step, page):
|
||||
|
||||
# Need to retry here because the element
|
||||
# will sometimes exist before the HTML content is loaded
|
||||
exists_func = lambda(driver): page_exists(page)
|
||||
|
||||
world.wait_for(exists_func)
|
||||
assert_true(exists_func(None))
|
||||
@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 "([^"]*)" the "([^"]*)" page$')
|
||||
def click_edit_delete(step, edit_delete, page):
|
||||
button_css = 'a.%s-button' % edit_delete
|
||||
index = get_index(page)
|
||||
assert index is not None
|
||||
world.css_click(button_css, index=index)
|
||||
@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 "([^"]*)"$')
|
||||
@@ -61,16 +48,3 @@ def change_name(step, new_name):
|
||||
world.trigger_event(input_css)
|
||||
save_button = 'a.save-button'
|
||||
world.css_click(save_button)
|
||||
|
||||
|
||||
def get_index(name):
|
||||
page_name_css = 'section[data-type="HTMLModule"]'
|
||||
all_pages = world.css_find(page_name_css)
|
||||
for i in range(len(all_pages)):
|
||||
if world.retry_on_exception(lambda: all_pages[i].html) == '\n {name}\n'.format(name=name):
|
||||
return i
|
||||
return None
|
||||
|
||||
|
||||
def page_exists(page):
|
||||
return get_index(page) is not None
|
||||
|
||||
Reference in New Issue
Block a user