Commit df32f109 by Andy Armstrong

Refactor test logic for switching editor tabs

parent be8e9944
...@@ -116,6 +116,18 @@ def edit_component(): ...@@ -116,6 +116,18 @@ def edit_component():
world.css_click('a.edit-button') world.css_click('a.edit-button')
@world.absorb
def select_editor_tab(tab_name):
editor_tabs = world.browser.find_by_css('.editor-tabs a')
expected_tab_text = tab_name.strip().upper()
matching_tabs = [tab for tab in editor_tabs if tab.text.upper() == expected_tab_text]
assert len(matching_tabs) == 1
tab = matching_tabs[0]
tab.click()
world.wait_for_ajax_complete()
def enter_xml_in_advanced_problem(step, text): def enter_xml_in_advanced_problem(step, text):
""" """
Edits an advanced problem (assumes only on page), Edits an advanced problem (assumes only on page),
......
...@@ -209,14 +209,11 @@ def check_text_in_the_captions(_step, text): ...@@ -209,14 +209,11 @@ def check_text_in_the_captions(_step, text):
@step('I see value "([^"]*)" in the field "([^"]*)"$') @step('I see value "([^"]*)" in the field "([^"]*)"$')
def check_transcripts_field(_step, values, field_name): def check_transcripts_field(_step, values, field_name):
editor_tabs = world.browser.find_by_css('.editor-tabs a') world.select_editor_tab('Advanced')
basic_tab = editor_tabs[0]
advanced_tab = editor_tabs[1]
advanced_tab.click()
field_id = '#' + world.browser.find_by_xpath('//label[text()="%s"]' % field_name.strip())[0]['for'] field_id = '#' + world.browser.find_by_xpath('//label[text()="%s"]' % field_name.strip())[0]['for']
values_list = [i.strip() == world.css_value(field_id) for i in values.split('|')] values_list = [i.strip() == world.css_value(field_id) for i in values.split('|')]
assert any(values_list) assert any(values_list)
basic_tab.click() world.select_editor_tab('Basic')
@step('I save changes$') @step('I save changes$')
...@@ -228,13 +225,7 @@ def save_changes(_step): ...@@ -228,13 +225,7 @@ def save_changes(_step):
@step('I open tab "([^"]*)"$') @step('I open tab "([^"]*)"$')
def open_tab(_step, tab_name): def open_tab(_step, tab_name):
editor_tabs = world.browser.find_by_css('.editor-tabs a') world.select_editor_tab(tab_name)
expected_tab_text = tab_name.strip().upper()
matching_tabs = [tab for tab in editor_tabs if tab.text.upper() == expected_tab_text]
assert len(matching_tabs) == 1
tab = matching_tabs[0]
tab.click()
world.wait_for_ajax_complete()
@step('I set value "([^"]*)" to the field "([^"]*)"$') @step('I set value "([^"]*)" to the field "([^"]*)"$')
......
...@@ -114,7 +114,7 @@ def set_show_captions(step, setting): ...@@ -114,7 +114,7 @@ def set_show_captions(step, setting):
world.css_click('a.edit-button') world.css_click('a.edit-button')
world.wait_for(lambda _driver: world.css_visible('a.action-save')) world.wait_for(lambda _driver: world.css_visible('a.action-save'))
world.click_link_by_text('ADVANCED') world.select_editor_tab('Advanced')
world.browser.select('Transcript Display', setting) world.browser.select('Transcript Display', setting)
world.css_click('a.action-save') world.css_click('a.action-save')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment