Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
186b3bad
Commit
186b3bad
authored
Jun 17, 2016
by
Muddasser
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
course-settings.feature conversion to bokchoy
parent
26d49a75
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
56 additions
and
96 deletions
+56
-96
cms/djangoapps/contentstore/features/course-settings.feature
+0
-95
common/test/acceptance/pages/studio/settings.py
+45
-1
common/test/acceptance/pages/studio/utils.py
+11
-0
common/test/acceptance/tests/studio/test_studio_settings.py
+0
-0
No files found.
cms/djangoapps/contentstore/features/course-settings.feature
deleted
100644 → 0
View file @
26d49a75
@shard_2
Feature
:
CMS.Course Settings
As a course author, I want to be able to configure my course settings.
# Safari has trouble keeps dates on refresh
@skip_safari
Scenario
:
User can set course dates
Given
I have opened a new course in Studio
When
I select Schedule and Details
And
I set course dates
And
I press the
"Save"
notification button
And
I reload the page
Then
I see the set dates
# IE has trouble with saving information
@skip_internetexplorer
Scenario
:
User can clear previously set course dates (except start date)
Given
I have set course dates
And
I clear all the dates except start
And
I press the
"Save"
notification button
And
I reload the page
Then
I see cleared dates
# IE has trouble with saving information
@skip_internetexplorer
Scenario
:
User cannot clear the course start date
Given
I have set course dates
And
I press the
"Save"
notification button
And
I clear the course start date
Then
I receive a warning about course start date
And
I reload the page
And
the previously set start date is shown
# IE has trouble with saving information
# Safari gets CSRF token errors
@skip_internetexplorer
@skip_safari
Scenario
:
User can correct the course start date warning
Given
I have tried to clear the course start
And
I have entered a new course start date
And
I press the
"Save"
notification button
Then
The warning about course start date goes away
And
I reload the page
Then
my new course start date is shown
# Safari does not save + refresh properly through sauce labs
@skip_safari
Scenario
:
Settings are only persisted when saved
Given
I have set course dates
And
I press the
"Save"
notification button
When
I change fields
And
I reload the page
Then
I do not see the changes
# Safari does not save + refresh properly through sauce labs
@skip_safari
Scenario
:
Settings are reset on cancel
Given
I have set course dates
And
I press the
"Save"
notification button
When
I change fields
And
I press the
"Cancel"
notification button
Then
I do not see the changes
# Safari gets CSRF token errors
@skip_safari
Scenario
:
Confirmation is shown on save
Given
I have opened a new course in Studio
When
I select Schedule and Details
And
I change the
"<field>"
field to
"<value>"
And
I press the
"Save"
notification button
Then
I see a confirmation that my changes have been saved
# Lettuce hooks don't get called between each example, so we need
# to run the before.each_scenario hook manually to avoid database
# errors.
And
I reset the database
Examples
:
|
field
|
value
|
|
Course
Start
Time
|
11:00
|
|
Course
Introduction
Video
|
4r7wHMg5Yjg
|
|
Course
Effort
|
200:00
|
# Special case because we have to type in code mirror
Scenario
:
Changes in Course Overview show a confirmation
Given
I have opened a new course in Studio
When
I select Schedule and Details
And
I change the course overview
And
I press the
"Save"
notification button
Then
I see a confirmation that my changes have been saved
Scenario
:
User cannot save invalid settings
Given
I have opened a new course in Studio
When
I select Schedule and Details
And
I change the
"Course Start Date"
field to
""
Then
the save notification button is disabled
common/test/acceptance/pages/studio/settings.py
View file @
186b3bad
...
...
@@ -9,7 +9,10 @@ from bok_choy.javascript import requirejs
from
common.test.acceptance.pages.studio.course_page
import
CoursePage
from
common.test.acceptance.pages.studio.users
import
wait_for_ajax_or_reload
from
common.test.acceptance.pages.studio.utils
import
press_the_notification_button
from
common.test.acceptance.pages.studio.utils
import
(
press_the_notification_button
,
type_in_codemirror
)
@requirejs
(
'js/factories/settings'
)
...
...
@@ -70,6 +73,36 @@ class SettingsPage(CoursePage):
results
=
self
.
get_elements
(
css_selector
=
css_selector
)
return
results
[
0
]
if
results
else
None
def
set_element_values
(
self
,
element_values
):
"""
Set the values of the elements to those specified
in the element_values dict.
"""
for
css
,
value
in
element_values
.
iteritems
():
element
=
self
.
get_element
(
css
)
element
.
clear
()
element
.
send_keys
(
value
)
def
un_focus_input_field
(
self
):
"""
Makes an input field un-focus by
clicking outside of it.
"""
self
.
get_element
(
'.title-2'
)
.
click
()
def
is_element_present
(
self
,
css_selector
):
"""
Returns boolean based on the presence
of an element with css as passed.
"""
return
self
.
q
(
css
=
css_selector
)
.
present
def
change_course_description
(
self
,
change_text
):
"""
Changes the course description
"""
type_in_codemirror
(
self
,
0
,
change_text
,
find_prefix
=
"$"
)
################
# Properties
################
...
...
@@ -208,6 +241,17 @@ class SettingsPage(CoursePage):
# Clicks
################
def
click_button
(
self
,
name
):
"""
Clicks the button
"""
btn_css
=
'div#page-notification button.action-{}'
.
format
(
name
.
lower
())
EmptyPromise
(
lambda
:
self
.
q
(
css
=
btn_css
)
.
visible
,
'{} button is visible'
.
format
(
name
)
)
.
fulfill
()
press_the_notification_button
(
self
,
name
)
################
# Workflows
################
...
...
common/test/acceptance/pages/studio/utils.py
View file @
186b3bad
...
...
@@ -160,6 +160,17 @@ def get_codemirror_value(page, index=0, find_prefix="$"):
)
def
get_input_value
(
page
,
css_selector
):
"""
Returns the value of the field matching the css selector.
"""
page
.
wait_for_element_presence
(
css_selector
,
'Elements matching "{}" selector are present'
.
format
(
css_selector
)
)
return
page
.
q
(
css
=
css_selector
)
.
attrs
(
'value'
)[
0
]
def
set_input_value
(
page
,
css
,
value
):
"""
Sets the text field with the given label (display name) to the specified value.
...
...
common/test/acceptance/tests/studio/test_studio_settings.py
View file @
186b3bad
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment