diff --git a/cms/djangoapps/contentstore/features/problem-editor.feature b/cms/djangoapps/contentstore/features/problem-editor.feature index e871d5d37b..50c49a1896 100644 --- a/cms/djangoapps/contentstore/features/problem-editor.feature +++ b/cms/djangoapps/contentstore/features/problem-editor.feature @@ -44,17 +44,15 @@ Feature: Problem Editor When I edit and select Settings Then if I set the weight to "abc", it remains unset - # CHROME ONLY, firefox will behave differently, it will display as 2.34 and persist as 2 due to HTML4 Scenario: User cannot type decimal values integer number field Given I have created a Blank Common Problem When I edit and select Settings - Then if I set the max attempts to "2.34", it displays initially as "234", and is persisted as "234" + Then if I set the max attempts to "2.34", it will persist as a valid integer - # CHROME ONLY, Firefox will behave differently, it will display as -3 and persist as 3 due to HTML4 Scenario: User cannot type out of range values in an integer number field Given I have created a Blank Common Problem When I edit and select Settings - Then if I set the max attempts to "-3", it displays initially as "-3", and is persisted as "0" + Then if I set the max attempts to "-3", it will persist as a valid integer Scenario: Settings changes are not saved on Cancel Given I have created a Blank Common Problem diff --git a/cms/djangoapps/contentstore/features/problem-editor.py b/cms/djangoapps/contentstore/features/problem-editor.py index 351ed370cf..d34185f14a 100644 --- a/cms/djangoapps/contentstore/features/problem-editor.py +++ b/cms/djangoapps/contentstore/features/problem-editor.py @@ -133,14 +133,16 @@ def set_the_weight_to_abc(step, bad_weight): world.verify_setting_entry(world.get_setting_entry(PROBLEM_WEIGHT), PROBLEM_WEIGHT, "", False) -@step('if I set the max attempts to "(.*)", it displays initially as "(.*)", and is persisted as "(.*)"') -def set_the_max_attempts(step, max_attempts_set, max_attempts_displayed, max_attempts_persisted): +@step('if I set the max attempts to "(.*)", it will persist as a valid integer$') +def set_the_max_attempts(step, max_attempts_set): #on firefox with selenium, the behaviour is different. eg 2.34 displays as 2.34 and is persisted as 2 index = world.get_setting_entry_index(MAXIMUM_ATTEMPTS) world.css_fill('.wrapper-comp-setting .setting-input', max_attempts_set, index=index) - world.verify_setting_entry(world.get_setting_entry(MAXIMUM_ATTEMPTS), MAXIMUM_ATTEMPTS, max_attempts_displayed, True) + if world.is_firefox(): + world.trigger_event('.wrapper-comp-setting .setting-input', index=index) world.save_component_and_reopen(step) - world.verify_setting_entry(world.get_setting_entry(MAXIMUM_ATTEMPTS), MAXIMUM_ATTEMPTS, max_attempts_persisted, True) + value = int(world.css_value('input.setting-input', index=index)) + assert value >= 0 @step('Edit High Level Source is not visible')