diff --git a/cms/djangoapps/contentstore/features/static-pages.feature b/cms/djangoapps/contentstore/features/static-pages.feature index 67652ea8f1..525c0cdb83 100644 --- a/cms/djangoapps/contentstore/features/static-pages.feature +++ b/cms/djangoapps/contentstore/features/static-pages.feature @@ -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" diff --git a/cms/djangoapps/contentstore/features/static-pages.py b/cms/djangoapps/contentstore/features/static-pages.py index b904347980..58932ad8e2 100644 --- a/cms/djangoapps/contentstore/features/static-pages.py +++ b/cms/djangoapps/contentstore/features/static-pages.py @@ -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