Skip to content

Instantly share code, notes, and snippets.

@singingwolfboy
Created October 2, 2014 20:37
Show Gist options
  • Save singingwolfboy/7b4bdd6413ff4d99fa5d to your computer and use it in GitHub Desktop.
Save singingwolfboy/7b4bdd6413ff4d99fa5d to your computer and use it in GitHub Desktop.
Aspen RC test failures for edx-platform. Compare with https://gist.github.com/clytwynec/60949e505b7fb866c5dd
(configuration)db ~/dev/configuration/vagrant/base/devstack (git)-[openedx/rc/aspen-2014-09-10] mastodon
% vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com/
New release '14.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
*******************************************************************
* _ __ __ *
* _ _| |\ \/ / *
* / -_) _` | > < *
* \___\__,_|/_/\_\ *
* *
* Instructions and troubleshooting: *
* https://github.com/edx/configuration/wiki/edX-Developer-Stack *
*******************************************************************
Last login: Thu Oct 2 16:10:33 2014 from 10.0.2.2
vagrant@precise64:~$ paver test_acceptance
No command 'paver' found, did you mean:
Command 'pager' from package 'most' (universe)
Command 'pager' from package 'w3m' (main)
Command 'pager' from package 'lv' (universe)
Command 'pager' from package 'less' (main)
Command 'pager' from package 'jless' (universe)
Command 'pager' from package 'util-linux' (main)
paver: command not found
vagrant@precise64:~$ sudo su edxapp
edxapp@precise64:~/edx-platform$ paver test_acceptance
---> pavelib.acceptance_test.test_acceptance
---> pavelib.prereqs.install_prereqs
---> pavelib.prereqs.install_ruby_prereqs
bundle install --quiet
---> pavelib.prereqs.install_node_prereqs
test `npm config get registry` = "http://registry.npmjs.org/" || (echo setting registry; npm config set registry http://registry.npmjs.org/)
npm install
npm WARN package.json [email protected] No repository field.
---> pavelib.prereqs.install_python_prereqs
pip install -q --exists-action w -r requirements/edx/pre.txt
pip install -q --exists-action w -r requirements/edx/github.txt
Could not find a tag or branch 'd89aae2a82f2b', assuming commit.
Could not find a tag or branch '88ec8a011e481918fdc9d2682d4017c835acd8be', assuming commit.
Could not find a tag or branch 'cd0b2b31997afccde519fe5b3365e61a9edb143f', assuming commit.
Could not find a tag or branch 'cccc3978ad2df82a78b6f9648fe2e9baddd22f88', assuming commit.
Could not find a tag or branch '776973740bdaad83a3b029f96e415a7d1e8bec2f', assuming commit.
Could not find a tag or branch 'd53fe0e81b623f084e91776bcf6369f8b7b63879', assuming commit.
Could not find a tag or branch '42cb1bb1dc680a60c6452e8bb2b843c2a0382c90', assuming commit.
Could not find a tag or branch '95e69341cebf5a6a9fbf7c4f5439d458898bdc3b', assuming commit.
Could not find a tag or branch 'c5bfa5d361d6685d8c643838fc0055c25f8b7999', assuming commit.
Could not find a tag or branch 'd175715e0fe3367ec0f1ee429c242d603f6e8b10', assuming commit.
Could not find a tag or branch '81a6d713c98d4914af96a0ca624ee7fa4903625e', assuming commit.
Could not find a tag or branch '66dd5a45e5072666ff9a70c768576e9ffd1daa4b', assuming commit.
Could not find a tag or branch '4a259e3548a19e41cc39433caf68ea58d10a27ba', assuming commit.
Could not find a tag or branch '7579d052afcf474ece1239153cffe1c89935bc4f', assuming commit.
Could not find a tag or branch '459aff7b63db8f2c5decd1755706c1a64fb4ebb1', assuming commit.
Could not find a tag or branch '295d93170b2f6e57e3a2b9ba0a52087a4e8712c5', assuming commit.
Could not find a tag or branch '97de68448e5495385ba043d3091f570a699d5b5f', assuming commit.
Could not find a tag or branch '56f048af9b6868613c14aeae760548834c495011', assuming commit.
Could not find a tag or branch 'a3c54afe30375f7a5755ba6f6412a91de23c3b86', assuming commit.
pip install -q --exists-action w -r requirements/edx/local.txt
pip install -q --exists-action w -r requirements/edx/base.txt
Could not find a tag or branch '96e1922348bfe6d99201b9512a9ed946c87b7e0b', assuming commit.
pip install -q --exists-action w -r requirements/edx/post.txt
---> pavelib.utils.test.utils.clean_reports_dir
find /edx/app/edxapp/edx-platform/reports -type f -delete
No system specified, running tests for both cms and lms.
No modulestore specified, running tests for both draft and split.
Setting up for acceptance
---> pavelib.utils.test.utils.clean_test_files
git clean -fqdx test_root/logs test_root/data test_root/staticfiles test_root/uploads
find . -type f -name "*.pyc" -delete
rm -rf test_root/log/auto_screenshots/*
rm -rf /tmp/mako_[cl]ms
cp /edx/app/edxapp/edx-platform/common/test/db_cache/lettuce.db /edx/app/edxapp/edx-platform/test_root/db/test_edx.db
./manage.py lms --settings acceptance migrate --traceback --noinput
Running migrations for djcelery:
- Nothing to migrate.
- Loading initial data for djcelery.
Installed 0 object(s) from 0 fixture(s)
Running migrations for courseware:
- Nothing to migrate.
- Loading initial data for courseware.
Installed 0 object(s) from 0 fixture(s)
Running migrations for student:
- Migrating forwards to 0041_add_dashboard_config.
> student:0041_add_dashboard_config
- Loading initial data for student.
Installed 0 object(s) from 0 fixture(s)
Running migrations for track:
- Nothing to migrate.
- Loading initial data for track.
Installed 0 object(s) from 0 fixture(s)
Running migrations for certificates:
- Nothing to migrate.
- Loading initial data for certificates.
Installed 0 object(s) from 0 fixture(s)
Running migrations for instructor_task:
- Nothing to migrate.
- Loading initial data for instructor_task.
Installed 0 object(s) from 0 fixture(s)
Running migrations for licenses:
- Nothing to migrate.
- Loading initial data for licenses.
Installed 0 object(s) from 0 fixture(s)
Running migrations for bulk_email:
- Nothing to migrate.
- Loading initial data for bulk_email.
Installed 0 object(s) from 0 fixture(s)
Running migrations for external_auth:
- Nothing to migrate.
- Loading initial data for external_auth.
Installed 0 object(s) from 0 fixture(s)
Running migrations for oauth2:
- Migrating forwards to 0004_auto__add_index_accesstoken_token.
> oauth2:0001_initial
> oauth2:0002_auto__chg_field_client_user
> oauth2:0003_auto__add_field_client_name
> oauth2:0004_auto__add_index_accesstoken_token
- Loading initial data for oauth2.
Installed 0 object(s) from 0 fixture(s)
Running migrations for oauth2_provider:
- Migrating forwards to 0001_initial.
> oauth2_provider:0001_initial
- Loading initial data for oauth2_provider.
Installed 0 object(s) from 0 fixture(s)
Running migrations for wiki:
- Nothing to migrate.
- Loading initial data for wiki.
Installed 0 object(s) from 0 fixture(s)
Running migrations for django_notify:
- Nothing to migrate.
- Loading initial data for django_notify.
Installed 0 object(s) from 0 fixture(s)
Running migrations for notifications:
- Nothing to migrate.
- Loading initial data for notifications.
Installed 0 object(s) from 0 fixture(s)
Running migrations for foldit:
- Nothing to migrate.
- Loading initial data for foldit.
Installed 0 object(s) from 0 fixture(s)
Running migrations for django_comment_client:
- Nothing to migrate.
- Loading initial data for django_comment_client.
Installed 0 object(s) from 0 fixture(s)
Running migrations for django_comment_common:
- Nothing to migrate.
- Loading initial data for django_comment_common.
Installed 0 object(s) from 0 fixture(s)
Running migrations for notes:
- Nothing to migrate.
- Loading initial data for notes.
Installed 0 object(s) from 0 fixture(s)
Running migrations for splash:
- Nothing to migrate.
- Loading initial data for splash.
Installed 0 object(s) from 0 fixture(s)
Running migrations for user_api:
- Nothing to migrate.
- Loading initial data for user_api.
Installed 0 object(s) from 0 fixture(s)
Running migrations for shoppingcart:
- Migrating forwards to 0017_auto__add_field_courseregistrationcode_order__chg_field_registrationco.
> shoppingcart:0017_auto__add_field_courseregistrationcode_order__chg_field_registrationco
- Loading initial data for shoppingcart.
Installed 0 object(s) from 0 fixture(s)
Running migrations for course_modes:
- Nothing to migrate.
- Loading initial data for course_modes.
Installed 0 object(s) from 0 fixture(s)
Running migrations for verify_student:
- Nothing to migrate.
- Loading initial data for verify_student.
Installed 0 object(s) from 0 fixture(s)
Running migrations for dark_lang:
- Nothing to migrate.
- Loading initial data for dark_lang.
Installed 0 object(s) from 0 fixture(s)
Running migrations for reverification:
- Nothing to migrate.
- Loading initial data for reverification.
Installed 0 object(s) from 0 fixture(s)
Running migrations for embargo:
- Nothing to migrate.
- Loading initial data for embargo.
Installed 0 object(s) from 0 fixture(s)
Running migrations for course_action_state:
- Nothing to migrate.
- Loading initial data for course_action_state.
Installed 0 object(s) from 0 fixture(s)
Running migrations for linkedin:
- Nothing to migrate.
- Loading initial data for linkedin.
Installed 0 object(s) from 0 fixture(s)
Running migrations for submissions:
- Nothing to migrate.
- Loading initial data for submissions.
Installed 0 object(s) from 0 fixture(s)
Running migrations for assessment:
- Nothing to migrate.
- Loading initial data for assessment.
Installed 0 object(s) from 0 fixture(s)
Running migrations for workflow:
- Nothing to migrate.
- Loading initial data for workflow.
Installed 0 object(s) from 0 fixture(s)
Running migrations for edxval:
- Migrating forwards to 0002_default_profiles.
> edxval:0001_initial
> edxval:0002_default_profiles
- Migration 'edxval:0002_default_profiles' is marked for no-dry-run.
- Loading initial data for edxval.
Installed 0 object(s) from 0 fixture(s)
Setting up for lms acceptance using draft
---> pavelib.assets.update_assets
python manage.py lms --settings=acceptance preprocess_assets
xmodule_assets common/static/xmodule
---> pavelib.assets.compile_coffeescript
node_modules/.bin/coffee --compile `find /edx/app/edxapp/edx-platform/lms /edx/app/edxapp/edx-platform/cms /edx/app/edxapp/edx-platform/common -type f -name "*.coffee"`
sass --style compressed --cache-location /tmp/sass-cache --load-path ./common/static/sass --update -E utf-8 */static
write cms/static/sass/style-app-extend1.css
write cms/static/sass/style-app.css
write cms/static/sass/style-xmodule.css
write lms/static/sass/application-extend1.css
write lms/static/sass/application-extend2.css
write lms/static/sass/application.css
write lms/static/sass/course.css
write lms/static/sass/ie.css
python manage.py lms --settings=acceptance collectstatic --noinput > /dev/null
DEFAULT_STORE=draft ./manage.py lms --settings acceptance harvest --traceback --debug-mode --verbosity 3 --with-xunit --xunit-file /edx/app/edxapp/edx-platform/reports/acceptance/lms.xml
========================================
Running tests for lms acceptance using draft
========================================
Preparing to serve django's admin site static files...
Django's builtin server is running at 0.0.0.0:8003
Feature: LMS.Annotatable Component # lms/djangoapps/courseware/features/annotatable.feature:2
As a student, I want to view an Annotatable component in the LMS # lms/djangoapps/courseware/features/annotatable.feature:3
@shard_2
Scenario: An Annotatable component can be rendered in the LMS# lms/djangoapps/courseware/features/annotatable.feature:5
Given that a course has an annotatable component with 2 annotations # lms/djangoapps/courseware/features/annotatable.py:63
When I view the annotatable component # lms/djangoapps/courseware/features/annotatable.py:84
Then the annotatable component has rendered # lms/djangoapps/courseware/features/annotatable.py:88
And the annotatable component has 2 highlighted passages # lms/djangoapps/courseware/features/annotatable.py:97
Feature: LMS.Verified certificates # lms/djangoapps/courseware/features/certificates.feature:2
As a student, # lms/djangoapps/courseware/features/certificates.feature:3
In order to earn a verified certificate # lms/djangoapps/courseware/features/certificates.feature:4
I want to sign up for a verified certificate course. # lms/djangoapps/courseware/features/certificates.feature:5
@shard_2
Scenario: I can audit a verified certificate course # lms/djangoapps/courseware/features/certificates.feature:7
Given I am logged in # common/djangoapps/terrain/steps.py:163
When I select the audit track # lms/djangoapps/courseware/features/certificates.py:50
Then I should see the course on my dashboard # lms/djangoapps/courseware/features/certificates.py:91
And a "edx.course.enrollment.activated" server event is emitted # lms/djangoapps/courseware/features/events.py:40
@shard_2
Scenario: I can submit photos to verify my identity # lms/djangoapps/courseware/features/certificates.feature:13
Given I am logged in # common/djangoapps/terrain/steps.py:163
When I select the verified track # lms/djangoapps/courseware/features/certificates.py:82
And I go to step "1" # lms/djangoapps/courseware/features/certificates.py:97
And I capture my "face" photo # lms/djangoapps/courseware/features/certificates.py:118
And I approve my "face" photo # lms/djangoapps/courseware/features/certificates.py:133
And I go to step "2" # lms/djangoapps/courseware/features/certificates.py:97
And I capture my "photo_id" photo # lms/djangoapps/courseware/features/certificates.py:118
And I approve my "photo_id" photo # lms/djangoapps/courseware/features/certificates.py:133
And I go to step "3" # lms/djangoapps/courseware/features/certificates.py:97
And I select a contribution amount # lms/djangoapps/courseware/features/certificates.py:158
And I confirm that the details match # lms/djangoapps/courseware/features/certificates.py:163
And I go to step "4" # lms/djangoapps/courseware/features/certificates.py:97
Then I am at the payment page # lms/djangoapps/courseware/features/certificates.py:175
@shard_2
Scenario: I can pay for a verified certificate # lms/djangoapps/courseware/features/certificates.feature:28
Given I have submitted photos to verify my identity # lms/djangoapps/courseware/features/certificates.py:202
When I submit valid payment information # lms/djangoapps/courseware/features/certificates.py:180
Then I see that my payment was successful # lms/djangoapps/courseware/features/certificates.py:224
@shard_2
Scenario: Verified courses display correctly on dashboard # lms/djangoapps/courseware/features/certificates.feature:33
Given I have submitted photos to verify my identity # lms/djangoapps/courseware/features/certificates.py:202
When I submit valid payment information # lms/djangoapps/courseware/features/certificates.py:180
And I navigate to my dashboard # lms/djangoapps/courseware/features/certificates.py:230
Then I see the course on my dashboard # lms/djangoapps/courseware/features/certificates.py:236
And I see that I am on the verified track # lms/djangoapps/courseware/features/certificates.py:263
And I do not see the upsell link on my dashboard # lms/djangoapps/courseware/features/certificates.py:248
And a "edx.course.enrollment.activated" server event is emitted # lms/djangoapps/courseware/features/events.py:40
@shard_2
Scenario: I can return to the verify flow # lms/djangoapps/courseware/features/certificates.feature:59
Given I have submitted photos to verify my identity # lms/djangoapps/courseware/features/certificates.py:202
When I leave the flow and return # lms/djangoapps/courseware/features/certificates.py:269
Then I am at the verified page # lms/djangoapps/courseware/features/certificates.py:274
@shard_2
Scenario: The upsell offer is on the dashboard if I am auditing# lms/djangoapps/courseware/features/certificates.feature:71
Given I am logged in # common/djangoapps/terrain/steps.py:163
When I select the audit track # lms/djangoapps/courseware/features/certificates.py:50
And I navigate to my dashboard # lms/djangoapps/courseware/features/certificates.py:230
Then I see the upsell link on my dashboard # lms/djangoapps/courseware/features/certificates.py:242
@shard_2
Scenario: I can take the upsell offer and pay for it # lms/djangoapps/courseware/features/certificates.feature:77
Given I am logged in # common/djangoapps/terrain/steps.py:163
And I select the audit track # lms/djangoapps/courseware/features/certificates.py:50
And I navigate to my dashboard # lms/djangoapps/courseware/features/certificates.py:230
When I see the upsell link on my dashboard # lms/djangoapps/courseware/features/certificates.py:242
And I select the upsell link on my dashboard # lms/djangoapps/courseware/features/certificates.py:254
And I select the verified track for upgrade # lms/djangoapps/courseware/features/certificates.py:72
And I submit my photos and confirm # lms/djangoapps/courseware/features/certificates.py:210
And I am at the payment page # lms/djangoapps/courseware/features/certificates.py:175
And I submit valid payment information # lms/djangoapps/courseware/features/certificates.py:180
And I navigate to my dashboard # lms/djangoapps/courseware/features/certificates.py:230
Then I see the course on my dashboard # lms/djangoapps/courseware/features/certificates.py:236
And I see that I am on the verified track # lms/djangoapps/courseware/features/certificates.py:263
And a "edx.course.enrollment.activated" server event is emitted # lms/djangoapps/courseware/features/events.py:40
And a "edx.course.enrollment.upgrade.succeeded" server event is emitted # lms/djangoapps/courseware/features/events.py:40
Feature: Change Enrollment Events # lms/djangoapps/courseware/features/change_enrollment.feature:1
As a registered user # lms/djangoapps/courseware/features/change_enrollment.feature:2
I want to change my enrollment mode # lms/djangoapps/courseware/features/change_enrollment.feature:3
Scenario: I can change my enrollment # lms/djangoapps/courseware/features/change_enrollment.feature:6
Given The course "6.002x" exists # lms/djangoapps/courseware/features/common.py:60
And the course "6.002x" has all enrollment modes # lms/djangoapps/courseware/features/change_enrollment.py:13
And I am logged in # common/djangoapps/terrain/steps.py:163
And I visit the courses page # common/djangoapps/terrain/steps.py:66
When I register to audit the course # lms/djangoapps/courseware/features/registration.py:18
Traceback (most recent call last):
File "/edx/app/edxapp/venvs/edxapp/src/lettuce/lettuce/core.py", line 144, in __call__
ret = self.function(self.step, *args, **kw)
File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/features/registration.py", line 27, in i_register_to_audit_the_course
audit_button.click()
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/splinter/element_list.py", line 73, in __getattr__
self.__class__.__name__, name))
AttributeError: 'ElementList' object has no attribute 'click'
And a "edx.course.enrollment.activated" server event is emitted # lms/djangoapps/courseware/features/events.py:40
And a "edx.course.enrollment.mode_changed" server events is emitted # lms/djangoapps/courseware/features/events.py:40
And I visit the dashboard # common/djangoapps/terrain/steps.py:54
And I click on Challenge Yourself # lms/djangoapps/courseware/features/change_enrollment.py:35
And I choose an honor code upgrade # lms/djangoapps/courseware/features/change_enrollment.py:44
Then I should be on the dashboard page # common/djangoapps/terrain/steps.py:60
Then 2 "edx.course.enrollment.mode_changed" server event is emitted # lms/djangoapps/courseware/features/events.py:40
When I unregister for the course numbered "6.002x" # lms/djangoapps/courseware/features/registration.py:48
Then 2 "edx.course.enrollment.mode_changed" server events is emitted # lms/djangoapps/courseware/features/events.py:40
Feature: LMS.Conditional Module # lms/djangoapps/courseware/features/conditional.feature:2
As a student, I want to view a Conditional component in the LMS # lms/djangoapps/courseware/features/conditional.feature:3
@shard_2
Scenario: A Conditional hides content when conditions aren't satisfied# lms/djangoapps/courseware/features/conditional.feature:5
Given that a course has a Conditional conditioned on problem attempted=True # lms/djangoapps/courseware/features/conditional.py:15
And that the conditioned problem has not been attempted # lms/djangoapps/courseware/features/conditional.py:71
When I view the conditional # lms/djangoapps/courseware/features/conditional.py:79
Then the conditional contents are hidden # lms/djangoapps/courseware/features/conditional.py:84
@shard_2
Scenario: A Conditional shows content when conditions are satisfied # lms/djangoapps/courseware/features/conditional.feature:11
Given that a course has a Conditional conditioned on problem attempted=True # lms/djangoapps/courseware/features/conditional.py:15
And that the conditioned problem has been attempted # lms/djangoapps/courseware/features/conditional.py:71
When I view the conditional # lms/djangoapps/courseware/features/conditional.py:79
Then the conditional contents are visible # lms/djangoapps/courseware/features/conditional.py:84
@shard_2
Scenario: A Conditional containing a Poll is updated when the poll is answered# lms/djangoapps/courseware/features/conditional.feature:17
Given that a course has a Conditional conditioned on poll poll_answer=yes # lms/djangoapps/courseware/features/conditional.py:15
When I view the conditional # lms/djangoapps/courseware/features/conditional.py:79
Then the conditional contents are hidden # lms/djangoapps/courseware/features/conditional.py:84
When I answer the conditioned poll "yes" # lms/djangoapps/courseware/features/conditional.py:97
Then the conditional contents are visible # lms/djangoapps/courseware/features/conditional.py:84
Feature: LMS.Events # lms/djangoapps/courseware/features/events.feature:2
As a researcher, I want to be able to track events in the LMS # lms/djangoapps/courseware/features/events.feature:3
@shard_2
Scenario Outline: An event is emitted for each request# lms/djangoapps/courseware/features/events.feature:5
Given: I am registered for the course "6.002x" # lms/djangoapps/courseware/features/common.py:93
And I visit the url "<url>" # common/djangoapps/terrain/steps.py:187
Then a "<url>" server event is emitted # lms/djangoapps/courseware/features/events.py:40
Examples:
| url |
| /dashboard |
| /courses/edx/6.002x/Test_Course/info |
| /courses/edx/6.002x/Test_Course/courseware |
Feature: LMS.Graphical Slider Tool Module # lms/djangoapps/courseware/features/gst.feature:2
As a student, I want to view a Graphical Slider Tool Component # lms/djangoapps/courseware/features/gst.feature:3
@shard_2
Scenario: The slider changes values on the page # lms/djangoapps/courseware/features/gst.feature:5
Given that I have a course with a Graphical Slider Tool # lms/djangoapps/courseware/features/gst.py:34
When I view the Graphical Slider Tool # lms/djangoapps/courseware/features/gst.py:46
Then the displayed value should be 0 # lms/djangoapps/courseware/features/gst.py:52
And I move the slider to the right # lms/djangoapps/courseware/features/gst.py:57
Then the displayed value should be 10 # lms/djangoapps/courseware/features/gst.py:52
Feature: LMS.All the high level tabs should work # lms/djangoapps/courseware/features/high-level-tabs.feature:2
In order to preview the courseware # lms/djangoapps/courseware/features/high-level-tabs.feature:3
As a student # lms/djangoapps/courseware/features/high-level-tabs.feature:4
I want to navigate through the high level tabs # lms/djangoapps/courseware/features/high-level-tabs.feature:5
@shard_1
Scenario: I can navigate to all high - level tabs in a course # lms/djangoapps/courseware/features/high-level-tabs.feature:7
Given: I am registered for the course "6.002x" # lms/djangoapps/courseware/features/common.py:93
And The course "6.002x" has extra tab "Custom Tab" # lms/djangoapps/courseware/features/common.py:109
And I am logged in # common/djangoapps/terrain/steps.py:163
And I click on View Courseware # lms/djangoapps/courseware/features/courseware_common.py:9
When I click on the tabs then the page title should contain the following titles: # lms/djangoapps/courseware/features/high-level-tabs.py:5
| TabName | PageTitle |
| Courseware | 6.002x Courseware |
| Course Info | 6.002x Course Info |
| Custom Tab | Custom Tab |
| Wiki | Wiki |
| Progress | 6.002x Progress |
Feature: LMS.Homepage for web users # lms/djangoapps/courseware/features/homepage.feature:2
In order to get an idea what edX is about # lms/djangoapps/courseware/features/homepage.feature:3
As a an anonymous web user # lms/djangoapps/courseware/features/homepage.feature:4
I want to check the information on the home page # lms/djangoapps/courseware/features/homepage.feature:5
@shard_1
Scenario: User can see the "Login" button# lms/djangoapps/courseware/features/homepage.feature:7
Given I visit the homepage # common/djangoapps/terrain/steps.py:48
Then I should see a link called "Log in" # common/djangoapps/terrain/steps.py:132
@shard_1
Scenario: User can see the "Register Now" button# lms/djangoapps/courseware/features/homepage.feature:11
Given I visit the homepage # common/djangoapps/terrain/steps.py:48
Then I should see a link called "Register Now" # common/djangoapps/terrain/steps.py:132
@shard_1
Scenario: User can see main parts of the page# lms/djangoapps/courseware/features/homepage.feature:15
Given I visit the homepage # common/djangoapps/terrain/steps.py:48
Then I should see the following links and ids # lms/djangoapps/courseware/features/homepage.py:9
| id | Link |
| about | About |
| jobs | Jobs |
| faq | FAQ |
| contact | Contact |
| press | News |
Feature: LMS.Login in as a registered user # lms/djangoapps/courseware/features/login.feature:2
As a registered user # lms/djangoapps/courseware/features/login.feature:3
In order to access my content # lms/djangoapps/courseware/features/login.feature:4
I want to be able to login in to edX # lms/djangoapps/courseware/features/login.feature:5
@shard_1
Scenario: Login to an unactivated account # lms/djangoapps/courseware/features/login.feature:7
Given I am an edX user # common/djangoapps/terrain/steps.py:172
And I am an unactivated user # lms/djangoapps/courseware/features/login.py:9
And I visit the homepage # common/djangoapps/terrain/steps.py:48
When I click the link with the text "Log in" # common/djangoapps/terrain/steps.py:122
And I submit my credentials on the login form # lms/djangoapps/courseware/features/login.py:19
Then I should see the login error message "This account has not been activated" # lms/djangoapps/courseware/features/login.py:30
@skip_firefox @shard_1
Scenario: Login to an activated account # lms/djangoapps/courseware/features/login.feature:17
Given I am an edX user # common/djangoapps/terrain/steps.py:172
And I am an activated user # lms/djangoapps/courseware/features/login.py:14
And I visit the homepage # common/djangoapps/terrain/steps.py:48
When I click the link with the text "Log in" # common/djangoapps/terrain/steps.py:122
And I submit my credentials on the login form # lms/djangoapps/courseware/features/login.py:19
Then I should be on the dashboard page # common/djangoapps/terrain/steps.py:60
@shard_1
Scenario: Logout of a signed in account # lms/djangoapps/courseware/features/login.feature:25
Given I am logged in # common/djangoapps/terrain/steps.py:163
When I click the dropdown arrow # lms/djangoapps/courseware/features/login.py:36
And I click the link with the text "Log Out" # common/djangoapps/terrain/steps.py:122
Then I should see a link with the text "Log in" # common/djangoapps/terrain/steps.py:132
And I should see that the path is "/" # common/djangoapps/terrain/steps.py:83
@shard_1
Scenario: Login with valid redirect # lms/djangoapps/courseware/features/login.feature:32
Given I am an edX user # common/djangoapps/terrain/steps.py:172
And The course "6.002x" exists # lms/djangoapps/courseware/features/common.py:60
And I am registered for the course "6.002x" # lms/djangoapps/courseware/features/common.py:93
And I am not logged in # common/djangoapps/terrain/steps.py:111
And I visit the url "/courses/edx/6.002x/Test_Course/courseware" # common/djangoapps/terrain/steps.py:187
And I should see that the path is "/accounts/login?next=/courses/edx/6.002x/Test_Course/courseware" # common/djangoapps/terrain/steps.py:83
When I submit my credentials on the login form # lms/djangoapps/courseware/features/login.py:19
And I wait for "2" seconds # common/djangoapps/terrain/steps.py:31
Then the page title should contain "6.002x Courseware" # common/djangoapps/terrain/steps.py:95
@shard_1
Scenario: Login with an invalid redirect # lms/djangoapps/courseware/features/login.feature:43
Given I am an edX user # common/djangoapps/terrain/steps.py:172
And I am not logged in # common/djangoapps/terrain/steps.py:111
And I visit the url "/login?next=http://www.google.com/" # common/djangoapps/terrain/steps.py:187
When I submit my credentials on the login form # lms/djangoapps/courseware/features/login.py:19
Then I should be on the dashboard page # common/djangoapps/terrain/steps.py:60
@shard_1
Scenario: Login with a redirect with parameters # lms/djangoapps/courseware/features/login.feature:50
Given I am an edX user # common/djangoapps/terrain/steps.py:172
And I am not logged in # common/djangoapps/terrain/steps.py:111
And I visit the url "/debug/show_parameters?foo=hello&bar=world" # common/djangoapps/terrain/steps.py:187
And I should see that the path is "/accounts/login?next=/debug/show_parameters%3Ffoo%3Dhello%26bar%3Dworld" # common/djangoapps/terrain/steps.py:83
When I submit my credentials on the login form # lms/djangoapps/courseware/features/login.py:19
And I wait for "2" seconds # common/djangoapps/terrain/steps.py:31
Then I should see "foo: u'hello'" somewhere on the page # common/djangoapps/terrain/steps.py:151
And I should see "bar: u'world'" somewhere on the page # common/djangoapps/terrain/steps.py:151
Feature: LMS.LTI component # lms/djangoapps/courseware/features/lti.feature:2
As a student, I want to view LTI component in LMS. # lms/djangoapps/courseware/features/lti.feature:3
@shard_1 @requires_stub_lti
Scenario: LTI component in LMS with no launch_url is not rendered # lms/djangoapps/courseware/features/lti.feature:6
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with no_launch_url fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page |
| False |
Then I view the LTI and error is shown # lms/djangoapps/courseware/features/lti.py:20
@shard_1 @requires_stub_lti
Scenario: LTI component in LMS with incorrect lti_id is rendered incorrectly# lms/djangoapps/courseware/features/lti.feature:14
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with incorrect_lti_id fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page |
| False |
Then I view the LTI but incorrect_signature warning is rendered # lms/djangoapps/courseware/features/lti.py:93
@shard_1 @requires_stub_lti
Scenario: LTI component in LMS is rendered incorrectly # lms/djangoapps/courseware/features/lti.feature:22
Given the course has incorrect LTI credentials # lms/djangoapps/courseware/features/lti.py:113
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page |
| False |
Then I view the LTI but incorrect_signature warning is rendered # lms/djangoapps/courseware/features/lti.py:93
@shard_1 @requires_stub_lti
Scenario: LTI component in LMS is correctly rendered in new page # lms/djangoapps/courseware/features/lti.feature:30
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields # lms/djangoapps/courseware/features/lti.py:123
Then I view the LTI and it is rendered in new page # lms/djangoapps/courseware/features/lti.py:45
@shard_1 @requires_stub_lti
Scenario: LTI component in LMS is correctly rendered in iframe # lms/djangoapps/courseware/features/lti.feature:36
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page |
| False |
Then I view the LTI and it is rendered in iframe # lms/djangoapps/courseware/features/lti.py:45
@shard_1 @requires_stub_lti
Scenario: Graded LTI component in LMS is correctly works # lms/djangoapps/courseware/features/lti.feature:44
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page | weight | is_graded | has_score |
| False | 10 | True | True |
And I submit answer to LTI 1 question # lms/djangoapps/courseware/features/lti.py:323
And I click on the "Progress" tab # lms/djangoapps/courseware/features/courseware_common.py:14
Then I see text "Problem Scores: 5/10" # lms/djangoapps/courseware/features/lti.py:292
And I see graph with total progress "5%" # lms/djangoapps/courseware/features/lti.py:297
Traceback (most recent call last):
File "/edx/app/edxapp/venvs/edxapp/src/lettuce/lettuce/core.py", line 144, in __call__
ret = self.function(self.step, *args, **kw)
File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/features/lti.py", line 305, in see_graph
assert node
AssertionError
Then I click on the "Instructor" tab # lms/djangoapps/courseware/features/courseware_common.py:14
And I click on the "Student Admin" tab # lms/djangoapps/courseware/features/courseware_common.py:14
And I click on the "View Gradebook" link # lms/djangoapps/courseware/features/courseware_common.py:19
And I see in the gradebook table that "HW" is "50" # lms/djangoapps/courseware/features/lti.py:309
And I see in the gradebook table that "Total" is "5" # lms/djangoapps/courseware/features/lti.py:309
@shard_1 @requires_stub_lti
Scenario: Graded LTI component in LMS role's masquerading correctly works# lms/djangoapps/courseware/features/lti.feature:60
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page | has_score |
| False | True |
And I view the LTI and it is rendered in iframe # lms/djangoapps/courseware/features/lti.py:45
And I see in iframe that LTI role is Instructor # lms/djangoapps/courseware/features/lti.py:348
And I switch to Student view # lms/djangoapps/courseware/features/lti.py:363
Then I see in iframe that LTI role is Student # lms/djangoapps/courseware/features/lti.py:348
Traceback (most recent call last):
File "/edx/app/edxapp/venvs/edxapp/src/lettuce/lettuce/core.py", line 144, in __call__
ret = self.function(self.step, *args, **kw)
File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/features/lti.py", line 352, in check_role
with world.browser.get_iframe(iframe_name) as iframe:
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/splinter/driver/webdriver/__init__.py", line 155, in get_iframe
self.driver.switch_to_frame(id)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 506, in switch_to_frame
self._switch_to.frame(frame_reference)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/selenium/webdriver/remote/switch_to.py", line 64, in frame
self._driver.execute(Command.SWITCH_TO_FRAME, {'id': frame_reference})
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 173, in execute
self.error_handler.check_response(response)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 164, in check_response
raise exception_class(message, screen, stacktrace)
NoSuchFrameException: Message: u'no such frame\n (Session info: chrome=30.0.1599.114)\n (Driver info: chromedriver=2.6.232917,platform=Linux 3.2.0-23-generic x86_64)'
@shard_1 @requires_stub_lti
Scenario: Graded LTI component in LMS is correctly works with beta testers# lms/djangoapps/courseware/features/lti.feature:71
Given the course has correct LTI credentials with registered BetaTester # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page | weight | is_graded | has_score |
| False | 10 | True | True |
And I submit answer to LTI 1 question # lms/djangoapps/courseware/features/lti.py:323
And I click on the "Progress" tab # lms/djangoapps/courseware/features/courseware_common.py:14
Then I see text "Problem Scores: 5/10" # lms/djangoapps/courseware/features/lti.py:292
And I see graph with total progress "5%" # lms/djangoapps/courseware/features/lti.py:297
Traceback (most recent call last):
File "/edx/app/edxapp/venvs/edxapp/src/lettuce/lettuce/core.py", line 144, in __call__
ret = self.function(self.step, *args, **kw)
File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/features/lti.py", line 305, in see_graph
assert node
AssertionError
@shard_1 @requires_stub_lti
Scenario: Graded LTI component in LMS is correctly works with LTI2v0 PUT callback# lms/djangoapps/courseware/features/lti.feature:82
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page | weight | is_graded | has_score |
| False | 10 | True | True |
And I submit answer to LTI 2 question # lms/djangoapps/courseware/features/lti.py:323
And I click on the "Progress" tab # lms/djangoapps/courseware/features/courseware_common.py:14
Then I see text "Problem Scores: 8/10" # lms/djangoapps/courseware/features/lti.py:292
And I see graph with total progress "8%" # lms/djangoapps/courseware/features/lti.py:297
Traceback (most recent call last):
File "/edx/app/edxapp/venvs/edxapp/src/lettuce/lettuce/core.py", line 144, in __call__
ret = self.function(self.step, *args, **kw)
File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/features/lti.py", line 305, in see_graph
assert node
AssertionError
Then I click on the "Instructor" tab # lms/djangoapps/courseware/features/courseware_common.py:14
And I click on the "Student Admin" tab # lms/djangoapps/courseware/features/courseware_common.py:14
And I click on the "View Gradebook" link # lms/djangoapps/courseware/features/courseware_common.py:19
And I see in the gradebook table that "HW" is "80" # lms/djangoapps/courseware/features/lti.py:309
And I see in the gradebook table that "Total" is "8" # lms/djangoapps/courseware/features/lti.py:309
And I visit the LTI component # lms/djangoapps/courseware/features/lti.py:274
Then I see LTI component progress with text "(8.0 / 10.0 points)" # lms/djangoapps/courseware/features/lti.py:279
Then I see LTI component feedback with text "This is awesome." # lms/djangoapps/courseware/features/lti.py:279
@shard_1 @requires_stub_lti
Scenario: Graded LTI component in LMS is correctly works with LTI2v0 PUT delete callback# lms/djangoapps/courseware/features/lti.feature:101
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page | weight | is_graded | has_score |
| False | 10 | True | True |
And I submit answer to LTI 2 question # lms/djangoapps/courseware/features/lti.py:323
And I visit the LTI component # lms/djangoapps/courseware/features/lti.py:274
Then I see LTI component progress with text "(8.0 / 10.0 points)" # lms/djangoapps/courseware/features/lti.py:279
Then I see LTI component feedback with text "This is awesome." # lms/djangoapps/courseware/features/lti.py:279
And the LTI provider deletes my grade and feedback # lms/djangoapps/courseware/features/lti.py:337
And I visit the LTI component (have to reload) # lms/djangoapps/courseware/features/lti.py:274
Then I see LTI component progress with text "(10.0 points possible)" # lms/djangoapps/courseware/features/lti.py:279
Then in the LTI component I do not see feedback # lms/djangoapps/courseware/features/lti.py:371
And I click on the "Progress" tab # lms/djangoapps/courseware/features/courseware_common.py:14
Then I see text "Problem Scores: 0/10" # lms/djangoapps/courseware/features/lti.py:292
And I see graph with total progress "0%" # lms/djangoapps/courseware/features/lti.py:297
Then I click on the "Instructor" tab # lms/djangoapps/courseware/features/courseware_common.py:14
And I click on the "Student Admin" tab # lms/djangoapps/courseware/features/courseware_common.py:14
And I click on the "View Gradebook" link # lms/djangoapps/courseware/features/courseware_common.py:19
And I see in the gradebook table that "HW" is "0" # lms/djangoapps/courseware/features/lti.py:309
And I see in the gradebook table that "Total" is "0" # lms/djangoapps/courseware/features/lti.py:309
@shard_1 @requires_stub_lti
Scenario: LTI component that set to hide_launch and open_in_a_new_page shows no button# lms/djangoapps/courseware/features/lti.feature:124
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page | hide_launch |
| False | True |
Then in the LTI component I do not see a launch button # lms/djangoapps/courseware/features/lti.py:371
Then I see LTI component module title with text "LTI (EXTERNAL RESOURCE)" # lms/djangoapps/courseware/features/lti.py:279
@shard_1 @requires_stub_lti
Scenario: LTI component that set to hide_launch and not open_in_a_new_page shows no iframe# lms/djangoapps/courseware/features/lti.feature:133
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| open_in_a_new_page | hide_launch |
| True | True |
Then in the LTI component I do not see an provider iframe # lms/djangoapps/courseware/features/lti.py:371
Then I see LTI component module title with text "LTI (EXTERNAL RESOURCE)" # lms/djangoapps/courseware/features/lti.py:279
@shard_1 @requires_stub_lti
Scenario: LTI component button text is correctly displayed # lms/djangoapps/courseware/features/lti.feature:142
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| button_text |
| Launch Application |
Then I see LTI component button with text "Launch Application" # lms/djangoapps/courseware/features/lti.py:279
@shard_1 @requires_stub_lti
Scenario: LTI component description is correctly displayed # lms/djangoapps/courseware/features/lti.feature:150
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| description |
| Application description |
Then I see LTI component description with text "Application description" # lms/djangoapps/courseware/features/lti.py:279
@shard_1 @requires_stub_lti
Scenario: LTI component requests permission for username and is rejected# lms/djangoapps/courseware/features/lti.feature:158
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| ask_to_send_username |
| True |
Then I view the permission alert # lms/djangoapps/courseware/features/lti.py:65
Then I reject the permission alert and do not view the LTI # lms/djangoapps/courseware/features/lti.py:86
@shard_1 @requires_stub_lti
Scenario: LTI component requests permission for username and displays LTI when accepted# lms/djangoapps/courseware/features/lti.feature:167
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| ask_to_send_username |
| True |
Then I view the permission alert # lms/djangoapps/courseware/features/lti.py:65
Then I accept the permission alert and view the LTI # lms/djangoapps/courseware/features/lti.py:76
@shard_1 @requires_stub_lti
Scenario: LTI component requests permission for email and is rejected# lms/djangoapps/courseware/features/lti.feature:176
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| ask_to_send_email |
| True |
Then I view the permission alert # lms/djangoapps/courseware/features/lti.py:65
Then I reject the permission alert and do not view the LTI # lms/djangoapps/courseware/features/lti.py:86
@shard_1 @requires_stub_lti
Scenario: LTI component requests permission for email and displays LTI when accepted# lms/djangoapps/courseware/features/lti.feature:185
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| ask_to_send_email |
| True |
Then I view the permission alert # lms/djangoapps/courseware/features/lti.py:65
Then I accept the permission alert and view the LTI # lms/djangoapps/courseware/features/lti.py:76
@shard_1 @requires_stub_lti
Scenario: LTI component requests permission for email and username and is rejected# lms/djangoapps/courseware/features/lti.feature:194
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| ask_to_send_email | ask_to_send_username |
| True | True |
Then I view the permission alert # lms/djangoapps/courseware/features/lti.py:65
Then I reject the permission alert and do not view the LTI # lms/djangoapps/courseware/features/lti.py:86
@shard_1 @requires_stub_lti
Scenario: LTI component requests permission for email and username and displays LTI when accepted# lms/djangoapps/courseware/features/lti.feature:203
Given the course has correct LTI credentials with registered Instructor # lms/djangoapps/courseware/features/lti.py:103
And the course has an LTI component with correct fields: # lms/djangoapps/courseware/features/lti.py:123
| ask_to_send_email | ask_to_send_username |
| True | True |
Then I view the permission alert # lms/djangoapps/courseware/features/lti.py:65
Then I accept the permission alert and view the LTI # lms/djangoapps/courseware/features/lti.py:76
Feature: LMS.Navigate Course # lms/djangoapps/courseware/features/navigation.feature:2
As a student in an edX course # lms/djangoapps/courseware/features/navigation.feature:3
In order to access courseware # lms/djangoapps/courseware/features/navigation.feature:4
I want to be able to navigate through the content # lms/djangoapps/courseware/features/navigation.feature:5
@shard_1
Scenario: I can navigate to a section # lms/djangoapps/courseware/features/navigation.feature:7
Given I am viewing a course with multiple sections # lms/djangoapps/courseware/features/navigation.py:12
When I navigate to a section # lms/djangoapps/courseware/features/navigation.py:91
Then I see the content of the section # lms/djangoapps/courseware/features/navigation.py:117
@shard_1
Scenario: I can navigate to subsections # lms/djangoapps/courseware/features/navigation.feature:12
Given I am viewing a section with multiple subsections # lms/djangoapps/courseware/features/navigation.py:44
When I navigate to a subsection # lms/djangoapps/courseware/features/navigation.py:104
Then I see the content of the subsection # lms/djangoapps/courseware/features/navigation.py:122
@shard_1
Scenario: I can navigate to sequences # lms/djangoapps/courseware/features/navigation.feature:17
Given I am viewing a section with multiple sequences # lms/djangoapps/courseware/features/navigation.py:70
When I navigate to an item in a sequence # lms/djangoapps/courseware/features/navigation.py:111
Then I see the content of the sequence item # lms/djangoapps/courseware/features/navigation.py:127
And a "seq_goto" browser event is emitted # lms/djangoapps/courseware/features/events.py:40
@shard_1
Scenario: I can return to the last section I visited# lms/djangoapps/courseware/features/navigation.feature:23
Given I am viewing a course with multiple sections # lms/djangoapps/courseware/features/navigation.py:12
When I navigate to a section # lms/djangoapps/courseware/features/navigation.py:91
And I see the content of the section # lms/djangoapps/courseware/features/navigation.py:117
And I return to the courseware # lms/djangoapps/courseware/features/navigation.py:132
Then I see that I was most recently in the subsection # lms/djangoapps/courseware/features/navigation.py:139
Feature: LMS.Answer problems # lms/djangoapps/courseware/features/problems.feature:2
As a student in an edX course # lms/djangoapps/courseware/features/problems.feature:3
In order to test my understanding of the material # lms/djangoapps/courseware/features/problems.feature:4
I want to answer problems # lms/djangoapps/courseware/features/problems.feature:5
@shard_1 @requires_stub_xqueue
Scenario Outline: I can answer a problem correctly # lms/djangoapps/courseware/features/problems.feature:7
Given External graders respond "correct" # lms/djangoapps/courseware/features/problems.py:42
And I am viewing a "<ProblemType>" problem # lms/djangoapps/courseware/features/problems.py:37
When I answer a "<ProblemType>" problem "correctly" # lms/djangoapps/courseware/features/problems.py:57
Then my "<ProblemType>" answer is marked "correct" # lms/djangoapps/courseware/features/problems.py:150
And The "<ProblemType>" problem displays a "correct" answer # lms/djangoapps/courseware/features/problems.py:92
And a "problem_check" server event is emitted # lms/djangoapps/courseware/features/events.py:40
And a "problem_check" browser event is emitted # lms/djangoapps/courseware/features/events.py:40
Examples:
| ProblemType |
| drop down |
| multiple choice |
| checkbox |
| radio |
| string |
| numerical |
| formula |
| script |
| code |
| radio_text |
| checkbox_text |
| image |
@shard_1 @requires_stub_xqueue
Scenario Outline: I can answer a problem incorrectly # lms/djangoapps/courseware/features/problems.feature:31
Given External graders respond "incorrect" # lms/djangoapps/courseware/features/problems.py:42
And I am viewing a "<ProblemType>" problem # lms/djangoapps/courseware/features/problems.py:37
When I answer a "<ProblemType>" problem "incorrectly" # lms/djangoapps/courseware/features/problems.py:57
Then my "<ProblemType>" answer is marked "incorrect" # lms/djangoapps/courseware/features/problems.py:150
And The "<ProblemType>" problem displays a "incorrect" answer # lms/djangoapps/courseware/features/problems.py:92
Examples:
| ProblemType |
| drop down |
| multiple choice |
| checkbox |
| radio |
| string |
| numerical |
| formula |
| script |
| code |
| radio_text |
| checkbox_text |
| image |
@shard_1 @requires_stub_xqueue
Scenario Outline: I can submit a blank answer # lms/djangoapps/courseware/features/problems.feature:53
Given I am viewing a "<ProblemType>" problem # lms/djangoapps/courseware/features/problems.py:37
When I check a problem # lms/djangoapps/courseware/features/problems.py:81
Then my "<ProblemType>" answer is marked "incorrect" # lms/djangoapps/courseware/features/problems.py:150
And The "<ProblemType>" problem displays a "blank" answer # lms/djangoapps/courseware/features/problems.py:92
Examples:
| ProblemType |
| drop down |
| multiple choice |
| checkbox |
| radio |
| string |
| numerical |
| formula |
| script |
| radio_text |
| checkbox_text |
| image |
@shard_1 @requires_stub_xqueue
Scenario Outline: I can reset a problem # lms/djangoapps/courseware/features/problems.feature:74
Given I am viewing a "<ProblemType>" problem # lms/djangoapps/courseware/features/problems.py:37
And I answer a "<ProblemType>" problem "<Correctness>ly" # lms/djangoapps/courseware/features/problems.py:57
When I reset the problem # lms/djangoapps/courseware/features/problems.py:107
Then my "<ProblemType>" answer is marked "unanswered" # lms/djangoapps/courseware/features/problems.py:150
And The "<ProblemType>" problem displays a "blank" answer # lms/djangoapps/courseware/features/problems.py:92
Examples:
| ProblemType | Correctness |
| drop down | correct |
| drop down | incorrect |
| multiple choice | correct |
| multiple choice | incorrect |
| checkbox | correct |
| checkbox | incorrect |
| radio | correct |
| radio | incorrect |
| string | correct |
| string | incorrect |
| numerical | correct |
| numerical | incorrect |
| formula | correct |
| formula | incorrect |
| script | correct |
| script | incorrect |
| radio_text | correct |
| radio_text | incorrect |
| checkbox_text | correct |
| checkbox_text | incorrect |
| image | correct |
| image | incorrect |
@shard_1 @requires_stub_xqueue
Scenario: I can answer a problem with one attempt correctly and not reset# lms/djangoapps/courseware/features/problems.feature:107
Given I am viewing a "multiple choice" problem with "1" attempt # lms/djangoapps/courseware/features/problems.py:27
When I answer a "multiple choice" problem "correctly" # lms/djangoapps/courseware/features/problems.py:57
Then The "Reset" button does not appear # lms/djangoapps/courseware/features/problems.py:123
@shard_1 @requires_stub_xqueue
Scenario: I can answer a problem with multiple attempts correctly and still reset the problem# lms/djangoapps/courseware/features/problems.feature:112
Given I am viewing a "multiple choice" problem with "3" attempts # lms/djangoapps/courseware/features/problems.py:27
Then I should see "You have used 0 of 3 submissions" somewhere in the page # common/djangoapps/terrain/steps.py:151
When I answer a "multiple choice" problem "correctly" # lms/djangoapps/courseware/features/problems.py:57
Then The "Reset" button does appear # lms/djangoapps/courseware/features/problems.py:123
@shard_1 @requires_stub_xqueue
Scenario: I can view how many attempts I have left on a problem# lms/djangoapps/courseware/features/problems.feature:118
Given I am viewing a "multiple choice" problem with "3" attempts # lms/djangoapps/courseware/features/problems.py:27
Then I should see "You have used 0 of 3 submissions" somewhere in the page # common/djangoapps/terrain/steps.py:151
When I answer a "multiple choice" problem "incorrectly" # lms/djangoapps/courseware/features/problems.py:57
And I reset the problem # lms/djangoapps/courseware/features/problems.py:107
Then I should see "You have used 1 of 3 submissions" somewhere in the page # common/djangoapps/terrain/steps.py:151
When I answer a "multiple choice" problem "incorrectly" # lms/djangoapps/courseware/features/problems.py:57
And I reset the problem # lms/djangoapps/courseware/features/problems.py:107
Then I should see "You have used 2 of 3 submissions" somewhere in the page # common/djangoapps/terrain/steps.py:151
And The "Final Check" button does appear # lms/djangoapps/courseware/features/problems.py:123
When I answer a "multiple choice" problem "correctly" # lms/djangoapps/courseware/features/problems.py:57
Then The "Reset" button does not appear # lms/djangoapps/courseware/features/problems.py:123
@shard_1 @requires_stub_xqueue
Scenario: I can view and hide the answer if the problem has it:# lms/djangoapps/courseware/features/problems.feature:131
Given I am viewing a "numerical" that shows the answer "always" # lms/djangoapps/courseware/features/problems.py:32
When I press the button with the label "Show Answer" # lms/djangoapps/courseware/features/problems.py:115
Then the Show/Hide button label is "Hide Answer" # lms/djangoapps/courseware/features/problems.py:132
And I should see "4.14159" somewhere in the page # common/djangoapps/terrain/steps.py:151
When I press the button with the label "Hide Answer" # lms/djangoapps/courseware/features/problems.py:115
Then the Show/Hide button label is "Show Answer" # lms/djangoapps/courseware/features/problems.py:132
And I should not see "4.14159" anywhere on the page # common/djangoapps/terrain/steps.py:151
@shard_1 @requires_stub_xqueue
Scenario Outline: I can see my score on a problem when I answer it and after I reset it# lms/djangoapps/courseware/features/problems.feature:140
Given I am viewing a "<ProblemType>" problem # lms/djangoapps/courseware/features/problems.py:37
When I answer a "<ProblemType>" problem "<Correctness>ly" # lms/djangoapps/courseware/features/problems.py:57
Then I should see a score of "<Score>" # lms/djangoapps/courseware/features/problems.py:140
When I reset the problem # lms/djangoapps/courseware/features/problems.py:107
Then I should see a score of "<Points Possible>" # lms/djangoapps/courseware/features/problems.py:140
Examples:
| ProblemType | Correctness | Score | Points Possible |
| drop down | correct | 1/1 point | 1 point possible |
| drop down | incorrect | 1 point possible | 1 point possible |
| multiple choice | correct | 1/1 point | 1 point possible |
| multiple choice | incorrect | 1 point possible | 1 point possible |
| checkbox | correct | 1/1 point | 1 point possible |
| checkbox | incorrect | 1 point possible | 1 point possible |
| radio | correct | 1/1 point | 1 point possible |
| radio | incorrect | 1 point possible | 1 point possible |
| string | correct | 1/1 point | 1 point possible |
| string | incorrect | 1 point possible | 1 point possible |
| numerical | correct | 1/1 point | 1 point possible |
| numerical | incorrect | 1 point possible | 1 point possible |
| formula | correct | 1/1 point | 1 point possible |
| formula | incorrect | 1 point possible | 1 point possible |
| script | correct | 2/2 points | 2 points possible |
| script | incorrect | 2 points possible | 2 points possible |
| image | correct | 1/1 point | 1 point possible |
| image | incorrect | 1 point possible | 1 point possible |
@shard_1 @requires_stub_xqueue
Scenario Outline: I can see my score on a problem to which I submit a blank answer# lms/djangoapps/courseware/features/problems.feature:168
Given I am viewing a "<ProblemType>" problem # lms/djangoapps/courseware/features/problems.py:37
When I check a problem # lms/djangoapps/courseware/features/problems.py:81
Then I should see a score of "<Points Possible>" # lms/djangoapps/courseware/features/problems.py:140
Examples:
| ProblemType | Points Possible |
| drop down | 1 point possible |
| multiple choice | 1 point possible |
| checkbox | 1 point possible |
| radio | 1 point possible |
| string | 1 point possible |
| numerical | 1 point possible |
| formula | 1 point possible |
| script | 2 points possible |
| image | 1 point possible |
@shard_1 @requires_stub_xqueue
Scenario Outline: I can reset the correctness of a problem after changing my answer# lms/djangoapps/courseware/features/problems.feature:186
Given I am viewing a "<ProblemType>" problem # lms/djangoapps/courseware/features/problems.py:37
Then my "<ProblemType>" answer is marked "unanswered" # lms/djangoapps/courseware/features/problems.py:150
When I answer a "<ProblemType>" problem "<InitialCorrectness>ly" # lms/djangoapps/courseware/features/problems.py:57
And I input an answer on a "<ProblemType>" problem "<OtherCorrectness>ly" # lms/djangoapps/courseware/features/problems.py:71
Then my "<ProblemType>" answer is marked "unanswered" # lms/djangoapps/courseware/features/problems.py:150
And I reset the problem # lms/djangoapps/courseware/features/problems.py:107
Examples:
| ProblemType | InitialCorrectness | OtherCorrectness |
| drop down | correct | incorrect |
| drop down | incorrect | correct |
| checkbox | correct | incorrect |
| checkbox | incorrect | correct |
| string | correct | incorrect |
| string | incorrect | correct |
| numerical | correct | incorrect |
| numerical | incorrect | correct |
| formula | correct | incorrect |
| formula | incorrect | correct |
| script | correct | incorrect |
| script | incorrect | correct |
@shard_1 @requires_stub_xqueue
Scenario Outline: I can reset the correctness of a radiogroup problem after changing my answer# lms/djangoapps/courseware/features/problems.feature:214
Given I am viewing a "<ProblemType>" problem # lms/djangoapps/courseware/features/problems.py:37
When I answer a "<ProblemType>" problem "<InitialCorrectness>ly" # lms/djangoapps/courseware/features/problems.py:57
Then my "<ProblemType>" answer is marked "<InitialCorrectness>" # lms/djangoapps/courseware/features/problems.py:150
And I input an answer on a "<ProblemType>" problem "<OtherCorrectness>ly" # lms/djangoapps/courseware/features/problems.py:71
Then my "<ProblemType>" answer is NOT marked "<InitialCorrectness>" # lms/djangoapps/courseware/features/problems.py:150
And my "<ProblemType>" answer is NOT marked "<OtherCorrectness>" # lms/djangoapps/courseware/features/problems.py:150
And I reset the problem # lms/djangoapps/courseware/features/problems.py:107
Examples:
| ProblemType | InitialCorrectness | OtherCorrectness |
| multiple choice | correct | incorrect |
| multiple choice | incorrect | correct |
| radio | correct | incorrect |
| radio | incorrect | correct |
@shard_1 @requires_stub_xqueue
Scenario Outline: I can reset the correctness of a problem after submitting a blank answer# lms/djangoapps/courseware/features/problems.feature:231
Given I am viewing a "<ProblemType>" problem # lms/djangoapps/courseware/features/problems.py:37
When I check a problem # lms/djangoapps/courseware/features/problems.py:81
And I input an answer on a "<ProblemType>" problem "correctly" # lms/djangoapps/courseware/features/problems.py:71
Then my "<ProblemType>" answer is marked "unanswered" # lms/djangoapps/courseware/features/problems.py:150
Examples:
| ProblemType |
| drop down |
| multiple choice |
| checkbox |
| radio |
| string |
| numerical |
| formula |
| script |
Feature: LMS.Register for a course # lms/djangoapps/courseware/features/registration.feature:2
As a registered user # lms/djangoapps/courseware/features/registration.feature:3
In order to access my class content # lms/djangoapps/courseware/features/registration.feature:4
I want to register for a class on the edX website # lms/djangoapps/courseware/features/registration.feature:5
@shard_1
Scenario: I can register for a course # lms/djangoapps/courseware/features/registration.feature:7
Given The course "6.002x" exists # lms/djangoapps/courseware/features/common.py:60
And I am logged in # common/djangoapps/terrain/steps.py:163
And I visit the courses page # common/djangoapps/terrain/steps.py:66
When I register for the course "6.002x" # lms/djangoapps/courseware/features/registration.py:10
Then I should see the course numbered "6.002x" in my dashboard # lms/djangoapps/courseware/features/registration.py:39
And a "edx.course.enrollment.activated" server event is emitted # lms/djangoapps/courseware/features/events.py:40
@shard_1
Scenario: I can unregister for a course # lms/djangoapps/courseware/features/registration.feature:15
Given I am registered for the course "6.002x" # lms/djangoapps/courseware/features/common.py:93
And I visit the dashboard # common/djangoapps/terrain/steps.py:54
Then I should see the course numbered "6.002x" in my dashboard # lms/djangoapps/courseware/features/registration.py:39
When I unregister for the course numbered "6.002x" # lms/djangoapps/courseware/features/registration.py:48
Then I should be on the dashboard page # common/djangoapps/terrain/steps.py:60
And I should see an empty dashboard message # lms/djangoapps/courseware/features/registration.py:33
And I should NOT see the course numbered "6.002x" in my dashboard # lms/djangoapps/courseware/features/registration.py:39
And a "edx.course.enrollment.deactivated" server event is emitted # lms/djangoapps/courseware/features/events.py:40
Feature: LMS.Sign in # lms/djangoapps/courseware/features/signup.feature:2
In order to use the edX content # lms/djangoapps/courseware/features/signup.feature:3
As a new user # lms/djangoapps/courseware/features/signup.feature:4
I want to signup for a student account # lms/djangoapps/courseware/features/signup.feature:5
@skip_firefox @shard_2
Scenario: Sign up from the homepage # lms/djangoapps/courseware/features/signup.feature:9
Given I visit the homepage # common/djangoapps/terrain/steps.py:48
When I click the link with the text "Register Now" # common/djangoapps/terrain/steps.py:122
And I fill in "email" on the registration form with "[email protected]" # lms/djangoapps/courseware/features/signup.py:8
And I fill in "password" on the registration form with "test" # lms/djangoapps/courseware/features/signup.py:8
And I fill in "username" on the registration form with "robot2" # lms/djangoapps/courseware/features/signup.py:8
And I fill in "name" on the registration form with "Robot Two" # lms/djangoapps/courseware/features/signup.py:8
And I check the checkbox named "terms_of_service" # lms/djangoapps/courseware/features/signup.py:25
And I check the checkbox named "honor_code" # lms/djangoapps/courseware/features/signup.py:25
And I submit the registration form # lms/djangoapps/courseware/features/signup.py:17
Then I should see "THANKS FOR REGISTERING!" in the dashboard banner # lms/djangoapps/courseware/features/signup.py:31
Feature: LMS.Debug staff info links # lms/djangoapps/courseware/features/staff_debug_info.feature:2
As a course staff in an edX course # lms/djangoapps/courseware/features/staff_debug_info.feature:3
In order to test my understanding of the material # lms/djangoapps/courseware/features/staff_debug_info.feature:4
I want to click on staff debug info links # lms/djangoapps/courseware/features/staff_debug_info.feature:5
@shard_1
Scenario: I can reset student attempts # lms/djangoapps/courseware/features/staff_debug_info.feature:7
When i am staff member for the course "model_course" # lms/djangoapps/courseware/features/staff_debug_info.py:13
And I am viewing a "multiple choice" problem # lms/djangoapps/courseware/features/problems.py:37
And I can view staff debug info # lms/djangoapps/courseware/features/staff_debug_info.py:29
Then I can reset student attempts # lms/djangoapps/courseware/features/staff_debug_info.py:36
Then I cannot see delete student state link # lms/djangoapps/courseware/features/staff_debug_info.py:43
Then I cannot see rescore student submission link # lms/djangoapps/courseware/features/staff_debug_info.py:49
Feature: LMS.Video component # lms/djangoapps/courseware/features/video.feature:2
As a student, I want to view course videos in LMS # lms/djangoapps/courseware/features/video.feature:3
@shard_2 @requires_stub_youtube
Scenario: Verify that each video in each sub-section includes a transcript for non-Youtube countries# lms/djangoapps/courseware/features/video.feature:6
Given youtube server is up and response time is 2 seconds # lms/djangoapps/courseware/features/video.py:388
And I am registered for the course "test_course" # lms/djangoapps/courseware/features/common.py:93
And I have a "subs_OEoXaMPEzfM.srt.sjson" transcript file in assets # lms/djangoapps/courseware/features/video.py:555
And I have a "subs_b7xgknqkQk8.srt.sjson" transcript file in assets # lms/djangoapps/courseware/features/video.py:555
And I have a "chinese_transcripts.srt" transcript file in assets # lms/djangoapps/courseware/features/video.py:555
And it has videos "A, B" in "Youtube_HTML5" mode in position "1" of sequential: # lms/djangoapps/courseware/features/video.py:353
| sub |
| OEoXaMPEzfM |
| b7xgknqkQk8 |
And a video "C" in "Youtube_HTML5" mode in position "2" of sequential: # lms/djangoapps/courseware/features/video.py:353
| transcripts |
| {u'zh': u'chinese_transcripts.srt'} |
And a video "D" in "Youtube_HTML5" mode in position "3" of sequential # lms/djangoapps/courseware/features/video.py:353
preview.localhost - - [02/Oct/2014 15:56:45] "GET /gizmo.mp4?1412279805107 HTTP/1.1" 200 -
preview.localhost - - [02/Oct/2014 15:56:45] "GET /gizmo.mp4?1412279805202 HTTP/1.1" 200 -
And I open the section with videos # lms/djangoapps/courseware/features/video.py:360
Then videos have rendered in "HTML5" mode # lms/djangoapps/courseware/features/video.py:404
And I see text in the captions: # lms/djangoapps/courseware/features/video.py:477
| text |
| Hi, welcome to Edx. |
| Equal transcripts |
preview.localhost - - [02/Oct/2014 15:56:46] "GET /gizmo.mp4?1412279806334 HTTP/1.1" 200 -
When I open video "C" # lms/djangoapps/courseware/features/video.py:377
Then the video has rendered in "HTML5" mode # lms/djangoapps/courseware/features/video.py:393
And I make sure captions are opened # lms/djangoapps/courseware/features/video.py:439
And I see "好 各位同学" text in the captions # lms/djangoapps/courseware/features/video.py:469
preview.localhost - - [02/Oct/2014 15:56:53] "GET /gizmo.mp4?1412279813536 HTTP/1.1" 200 -
When I open video "D" # lms/djangoapps/courseware/features/video.py:377
Then the video has rendered in "HTML5" mode # lms/djangoapps/courseware/features/video.py:393
And the video does not show the captions # lms/djangoapps/courseware/features/video.py:626
Feature: LMS.World Cloud component # lms/djangoapps/courseware/features/word_cloud.feature:2
As a student, I want to view Word Cloud component in LMS. # lms/djangoapps/courseware/features/word_cloud.feature:3
@shard_2
Scenario: Word Cloud component in LMS is rendered with empty result# lms/djangoapps/courseware/features/word_cloud.feature:5
Given the course has a Word Cloud component # lms/djangoapps/courseware/features/word_cloud.py:16
Then I view the word cloud and it has rendered # lms/djangoapps/courseware/features/word_cloud.py:11
When I press the Save button # lms/djangoapps/courseware/features/word_cloud.py:25
Then I see the empty result # lms/djangoapps/courseware/features/word_cloud.py:31
@shard_2
Scenario: Word Cloud component in LMS is rendered with result# lms/djangoapps/courseware/features/word_cloud.feature:11
Given the course has a Word Cloud component # lms/djangoapps/courseware/features/word_cloud.py:16
Then I view the word cloud and it has rendered # lms/djangoapps/courseware/features/word_cloud.py:11
When I fill inputs # lms/djangoapps/courseware/features/word_cloud.py:36
And I press the Save button # lms/djangoapps/courseware/features/word_cloud.py:25
Then I see the result with words count # lms/djangoapps/courseware/features/word_cloud.py:45
18 features (16 passed)
169 scenarios (164 passed)
895 steps (5 failed, 22 skipped, 868 passed)
List of failed scenarios:
Scenario: I can change my enrollment # lms/djangoapps/courseware/features/change_enrollment.feature:6
@shard_1 @requires_stub_lti
Scenario: Graded LTI component in LMS is correctly works # lms/djangoapps/courseware/features/lti.feature:44
@shard_1 @requires_stub_lti
Scenario: Graded LTI component in LMS role's masquerading correctly works# lms/djangoapps/courseware/features/lti.feature:60
@shard_1 @requires_stub_lti
Scenario: Graded LTI component in LMS is correctly works with beta testers# lms/djangoapps/courseware/features/lti.feature:71
@shard_1 @requires_stub_lti
Scenario: Graded LTI component in LMS is correctly works with LTI2v0 PUT callback# lms/djangoapps/courseware/features/lti.feature:82
Feature: LMS.Instructor Dash Bulk Email # lms/djangoapps/instructor/features/bulk_email.feature:2
As an instructor or course staff, # lms/djangoapps/instructor/features/bulk_email.feature:3
In order to communicate with students and staff # lms/djangoapps/instructor/features/bulk_email.feature:4
I want to send email to staff and students in a course. # lms/djangoapps/instructor/features/bulk_email.feature:5
@shard_2
Scenario Outline: Send bulk email # lms/djangoapps/instructor/features/bulk_email.feature:7
Given there is a course with a staff, instructor and student # lms/djangoapps/instructor/features/bulk_email.py:18
And I am logged in to the course as "<Role>" # lms/djangoapps/instructor/features/bulk_email.py:73
Installed 1 object(s) from 1 fixture(s)
When I send email to "<Recipient>" # lms/djangoapps/instructor/features/bulk_email.py:100
Then Email is sent to "<Recipient>" # lms/djangoapps/instructor/features/bulk_email.py:148
Examples:
| Role | Recipient |
| instructor | myself |
Installed 1 object(s) from 1 fixture(s)
| instructor | course staff |
Installed 1 object(s) from 1 fixture(s)
| instructor | students, staff, and instructors |
Installed 1 object(s) from 1 fixture(s)
| staff | myself |
Installed 1 object(s) from 1 fixture(s)
| staff | course staff |
Installed 1 object(s) from 1 fixture(s)
| staff | students, staff, and instructors |
Feature: LMS.Instructor Dash Data Download # lms/djangoapps/instructor/features/data_download.feature:2
As an instructor or course staff, # lms/djangoapps/instructor/features/data_download.feature:3
In order to manage my class # lms/djangoapps/instructor/features/data_download.feature:4
I want to view and download data information about my students. # lms/djangoapps/instructor/features/data_download.feature:5
@shard_2
Scenario Outline: List enrolled students' profile information # lms/djangoapps/instructor/features/data_download.feature:12
Given I am "<Role>" for a course # lms/djangoapps/instructor/features/common.py:29
When I click "List enrolled students' profile information" # lms/djangoapps/instructor/features/common.py:84
Then I see a table of student profiles # lms/djangoapps/instructor/features/data_download.py:16
Examples:
| Role |
| instructor |
| staff |
@shard_2
Scenario Outline: List enrolled students' profile information for a large course# lms/djangoapps/instructor/features/data_download.feature:21
Given I am "<Role>" for a very large course # lms/djangoapps/instructor/features/common.py:19
When I visit the "Data Download" tab # lms/djangoapps/instructor/features/common.py:123
Then I do not see a button to 'List enrolled students' profile information' # lms/djangoapps/instructor/features/data_download.py:44
Examples:
| Role |
| instructor |
| staff |
@shard_2
Scenario Outline: View the grading configuration # lms/djangoapps/instructor/features/data_download.feature:30
Given I am "<Role>" for a course # lms/djangoapps/instructor/features/common.py:29
When I click "Grading Configuration" # lms/djangoapps/instructor/features/common.py:84
Then I see the grading configuration for the course # lms/djangoapps/instructor/features/data_download.py:49
Examples:
| Role |
| instructor |
| staff |
@shard_2
Scenario Outline: Generate & download a grade report # lms/djangoapps/instructor/features/data_download.feature:39
Given I am "<Role>" for a course # lms/djangoapps/instructor/features/common.py:29
When I click "Generate Grade Report" # lms/djangoapps/instructor/features/common.py:84
Then I see a grade report csv file in the reports table # lms/djangoapps/instructor/features/data_download.py:72
Examples:
| Role |
| instructor |
| staff |
2 features (2 passed)
14 scenarios (14 passed)
48 steps (48 passed)
Cleaning up after lms acceptance using draft
---> pavelib.utils.test.utils.clean_mongo
mongo localhost:27017 /edx/app/edxapp/edx-platform/scripts/delete-mongo-test-dbs.js
MongoDB shell version: 2.4.7
connecting to: localhost:27017/test
Setting up for cms acceptance using draft
---> pavelib.assets.update_assets
python manage.py cms --settings=acceptance preprocess_assets
xmodule_assets common/static/xmodule
---> pavelib.assets.compile_coffeescript
node_modules/.bin/coffee --compile `find /edx/app/edxapp/edx-platform/lms /edx/app/edxapp/edx-platform/cms /edx/app/edxapp/edx-platform/common -type f -name "*.coffee"`
sass --style compressed --cache-location /tmp/sass-cache --load-path ./common/static/sass --update -E utf-8 */static
python manage.py cms --settings=acceptance collectstatic --noinput > /dev/null
DEFAULT_STORE=draft ./manage.py cms --settings acceptance harvest --traceback --debug-mode --verbosity 3 --with-xunit --xunit-file /edx/app/edxapp/edx-platform/reports/acceptance/cms.xml
========================================
Running tests for cms acceptance using draft
========================================
Preparing to serve django's admin site static files...
Django's builtin server is running at 0.0.0.0:8003
Feature: CMS.Advanced (manual) course policy # cms/djangoapps/contentstore/features/advanced_settings.feature:2
In order to specify course policy settings for which no custom user interface exists # cms/djangoapps/contentstore/features/advanced_settings.feature:3
I want to be able to manually enter JSON key /value pairs # cms/djangoapps/contentstore/features/advanced_settings.feature:4
@shard_1
Scenario: A course author sees default advanced settings # cms/djangoapps/contentstore/features/advanced_settings.feature:7
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
When I select the Advanced Settings # cms/djangoapps/contentstore/features/advanced_settings.py:17
Then I see default advanced settings # cms/djangoapps/contentstore/features/advanced_settings.py:61
@shard_1
Scenario: Add new entries, and they appear alphabetically after save # cms/djangoapps/contentstore/features/advanced_settings.feature:12
Given I am on the Advanced Course Settings page in Studio # cms/djangoapps/contentstore/features/advanced_settings.py:35
Then the settings are alphabetized # cms/djangoapps/contentstore/features/advanced_settings.py:68
@skip_sauce @shard_1
Scenario: Test cancel editing key value # cms/djangoapps/contentstore/features/advanced_settings.feature:18
Given I am on the Advanced Course Settings page in Studio # cms/djangoapps/contentstore/features/advanced_settings.py:35
When I edit the value of a policy key # cms/djangoapps/contentstore/features/advanced_settings.py:41
And I press the "Cancel" notification button # cms/djangoapps/contentstore/features/common.py:87
Then the policy key value is unchanged # cms/djangoapps/contentstore/features/advanced_settings.py:96
And I reload the page # common/djangoapps/terrain/steps.py:36
Then the policy key value is unchanged # cms/djangoapps/contentstore/features/advanced_settings.py:96
@skip_sauce @shard_1
Scenario: Test editing key value # cms/djangoapps/contentstore/features/advanced_settings.feature:28
Given I am on the Advanced Course Settings page in Studio # cms/djangoapps/contentstore/features/advanced_settings.py:35
When I edit the value of a policy key and save # cms/djangoapps/contentstore/features/advanced_settings.py:46
Then the policy key value is changed # cms/djangoapps/contentstore/features/advanced_settings.py:101
And I reload the page # common/djangoapps/terrain/steps.py:36
Then the policy key value is changed # cms/djangoapps/contentstore/features/advanced_settings.py:101
@skip_sauce @shard_1
Scenario: Test how multi-line input appears # cms/djangoapps/contentstore/features/advanced_settings.feature:37
Given I am on the Advanced Course Settings page in Studio # cms/djangoapps/contentstore/features/advanced_settings.py:35
When I create a JSON object as a value for "Discussion Topic Mapping" # cms/djangoapps/contentstore/features/advanced_settings.py:51
Then it is displayed as formatted # cms/djangoapps/contentstore/features/advanced_settings.py:78
And I reload the page # common/djangoapps/terrain/steps.py:36
Then it is displayed as formatted # cms/djangoapps/contentstore/features/advanced_settings.py:78
@skip_sauce @shard_1
Scenario: Test error if value supplied is of the wrong type # cms/djangoapps/contentstore/features/advanced_settings.feature:46
Given I am on the Advanced Course Settings page in Studio # cms/djangoapps/contentstore/features/advanced_settings.py:35
When I create a JSON object as a value for "Course Display Name" # cms/djangoapps/contentstore/features/advanced_settings.py:51
Then I get an error on save # cms/djangoapps/contentstore/features/advanced_settings.py:83
And I reload the page # common/djangoapps/terrain/steps.py:36
Then the policy key value is unchanged # cms/djangoapps/contentstore/features/advanced_settings.py:96
@skip_sauce @shard_1
Scenario: Test automatic quoting of non-JSON values # cms/djangoapps/contentstore/features/advanced_settings.feature:56
Given I am on the Advanced Course Settings page in Studio # cms/djangoapps/contentstore/features/advanced_settings.py:35
When I create a non-JSON value not in quotes # cms/djangoapps/contentstore/features/advanced_settings.py:56
Then it is displayed as a string # cms/djangoapps/contentstore/features/advanced_settings.py:91
And I reload the page # common/djangoapps/terrain/steps.py:36
Then it is displayed as a string # cms/djangoapps/contentstore/features/advanced_settings.py:91
@skip_sauce @shard_1
Scenario: Confirmation is shown on save # cms/djangoapps/contentstore/features/advanced_settings.feature:65
Given I am on the Advanced Course Settings page in Studio # cms/djangoapps/contentstore/features/advanced_settings.py:35
When I edit the value of a policy key # cms/djangoapps/contentstore/features/advanced_settings.py:41
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
Then I see a confirmation that my changes have been saved # cms/djangoapps/contentstore/features/common.py:124
@shard_1
Scenario: Deprecated Settings are not shown by default # cms/djangoapps/contentstore/features/advanced_settings.feature:71
Given I am on the Advanced Course Settings page in Studio # cms/djangoapps/contentstore/features/advanced_settings.py:35
Then deprecated settings are not shown # cms/djangoapps/contentstore/features/advanced_settings.py:106
@shard_1
Scenario: Deprecated Settings can be toggled # cms/djangoapps/contentstore/features/advanced_settings.feature:75
Given I am on the Advanced Course Settings page in Studio # cms/djangoapps/contentstore/features/advanced_settings.py:35
When I toggle the display of deprecated settings # cms/djangoapps/contentstore/features/advanced_settings.py:115
Then deprecated settings are then shown # cms/djangoapps/contentstore/features/advanced_settings.py:106
And I toggle the display of deprecated settings # cms/djangoapps/contentstore/features/advanced_settings.py:115
Then deprecated settings are not shown # cms/djangoapps/contentstore/features/advanced_settings.py:106
Feature: CMS.Course checklists # cms/djangoapps/contentstore/features/checklists.feature:2
@shard_1
Scenario: A course author sees checklists defined by edX # cms/djangoapps/contentstore/features/checklists.feature:4
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
When I select Checklists from the Tools menu # cms/djangoapps/contentstore/features/checklists.py:12
Then I see the four default edX checklists # cms/djangoapps/contentstore/features/checklists.py:26
@shard_1
Scenario: A course author can mark tasks as complete # cms/djangoapps/contentstore/features/checklists.feature:9
Given I have opened Checklists # cms/djangoapps/contentstore/features/checklists.py:20
Then I can check and uncheck tasks in a checklist # cms/djangoapps/contentstore/features/checklists.py:36
And I reload the page # common/djangoapps/terrain/steps.py:36
Then the tasks are correctly selected # cms/djangoapps/contentstore/features/checklists.py:50
@skip_firefox @skip_internetexplorer @skip_safari @shard_1
Scenario: A task can link to a location within Studio# cms/djangoapps/contentstore/features/checklists.feature:19
Given I have opened Checklists # cms/djangoapps/contentstore/features/checklists.py:20
When I select a link to the course outline # cms/djangoapps/contentstore/features/checklists.py:59
Then I am brought to the course outline page # cms/djangoapps/contentstore/features/checklists.py:64
And I press the browser back button # common/djangoapps/terrain/steps.py:43
Then I am brought back to the course outline in the correct state # cms/djangoapps/contentstore/features/checklists.py:70
@skip_firefox @skip_internetexplorer @skip_safari @shard_1
Scenario: A task can link to a location outside Studio# cms/djangoapps/contentstore/features/checklists.feature:30
Given I have opened Checklists # cms/djangoapps/contentstore/features/checklists.py:20
When I select a link to help page # cms/djangoapps/contentstore/features/checklists.py:78
Then I am brought to the help page in a new window # cms/djangoapps/contentstore/features/checklists.py:83
Feature: CMS.Component Adding # cms/djangoapps/contentstore/features/component.feature:2
As a course author, I want to be able to add a wide variety of components # cms/djangoapps/contentstore/features/component.feature:3
@shard_1
Scenario: I can add single step components # cms/djangoapps/contentstore/features/component.feature:5
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
When I add this type of single step component: # cms/djangoapps/contentstore/features/component.py:15
| Component |
| Discussion |
| Video |
Then I see this type of single step component: # cms/djangoapps/contentstore/features/component.py:27
| Component |
| Discussion |
| Video |
@shard_1
Scenario: I can add HTML components # cms/djangoapps/contentstore/features/component.feature:16
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
When I add this type of HTML component: # cms/djangoapps/contentstore/features/component.py:37
| Component |
| Text |
| Announcement |
| Zooming Image |
| Raw HTML |
Then I see HTML components in this order: # cms/djangoapps/contentstore/features/component.py:48
| Component |
| Text |
| Announcement |
| Zooming Image |
| Raw HTML |
@shard_1
Scenario: I can add Latex HTML components # cms/djangoapps/contentstore/features/component.feature:31
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
Given I have enabled latex compiler # cms/djangoapps/contentstore/features/problem-editor.py:244
When I add this type of HTML component: # cms/djangoapps/contentstore/features/component.py:37
| Component |
| E-text Written in LaTeX |
Then I see HTML components in this order: # cms/djangoapps/contentstore/features/component.py:48
| Component |
| E-text Written in LaTeX |
@shard_1
Scenario: I can add Common Problem components # cms/djangoapps/contentstore/features/component.feature:41
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
When I add this type of Problem component: # cms/djangoapps/contentstore/features/component.py:37
| Component |
| Blank Common Problem |
| Checkboxes |
| Dropdown |
| Multiple Choice |
| Numerical Input |
| Text Input |
Traceback (most recent call last):
File "/edx/app/edxapp/venvs/edxapp/src/lettuce/lettuce/core.py", line 144, in __call__
ret = self.function(self.step, *args, **kw)
File "/edx/app/edxapp/edx-platform/cms/djangoapps/contentstore/features/component.py", line 43, in add_a_multi_step_component
is_advanced=bool(is_advanced),
File "/edx/app/edxapp/edx-platform/cms/djangoapps/contentstore/features/component_settings_editor_helpers.py", line 45, in create_component_instance
click_component_from_menu(category, component_type, is_advanced)
File "/edx/app/edxapp/edx-platform/cms/djangoapps/contentstore/features/component_settings_editor_helpers.py", line 102, in click_component_from_menu
ignored_exceptions=AssertionError
File "/edx/app/edxapp/edx-platform/common/djangoapps/terrain/ui_helpers.py", line 657, in retry_on_exception
assert_true(attempt < max_attempts, 'Ran out of attempts to execute {}'.format(func))
File "/usr/lib/python2.7/unittest/case.py", line 420, in assertTrue
raise self.failureException(msg)
AssertionError: Ran out of attempts to execute <function <lambda> at 0x7333758>
Then I see Problem components in this order: # cms/djangoapps/contentstore/features/component.py:48
| Component |
| Blank Common Problem |
| Checkboxes |
| Dropdown |
| Multiple Choice |
| Numerical Input |
| Text Input |
@shard_1
Scenario Outline: I can add Advanced Problem components # cms/djangoapps/contentstore/features/component.feature:60
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
When I add a "<Component>" "Advanced Problem" component # cms/djangoapps/contentstore/features/component.py:88
Then I see a "<Component>" Problem component # cms/djangoapps/contentstore/features/component.py:77
And I reset the database # cms/djangoapps/contentstore/features/common.py:110
Examples:
| Component |
| Blank Advanced Problem |
| Circuit Schematic Builder |
| Custom Python-Evaluated Input |
| Drag and Drop |
| Image Mapped Input |
| Math Expression Input |
| Problem with Adaptive Hint |
@shard_1
Scenario: I see a prompt on delete # cms/djangoapps/contentstore/features/component.feature:92
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
And I add a "Discussion" "single step" component # cms/djangoapps/contentstore/features/component.py:88
And I delete a component # cms/djangoapps/contentstore/features/component.py:131
Then I am shown a prompt # cms/djangoapps/contentstore/features/common.py:314
@shard_1
Scenario: I can delete Components # cms/djangoapps/contentstore/features/component.feature:98
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
And I add a "Discussion" "single step" component # cms/djangoapps/contentstore/features/component.py:88
And I add a "Text" "HTML" component # cms/djangoapps/contentstore/features/component.py:88
And I add a "Blank Common Problem" "Problem" component # cms/djangoapps/contentstore/features/component.py:88
And I add a "Blank Advanced Problem" "Advanced Problem" component # cms/djangoapps/contentstore/features/component.py:88
And I delete all components # cms/djangoapps/contentstore/features/component.py:95
Then I see no components # cms/djangoapps/contentstore/features/component.py:126
@shard_1
Scenario: I can duplicate a component # cms/djangoapps/contentstore/features/component.feature:107
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
And I add a "Blank Common Problem" "Problem" component # cms/djangoapps/contentstore/features/component.py:88
And I add a "Multiple Choice" "Problem" component # cms/djangoapps/contentstore/features/component.py:88
And I duplicate the first component # cms/djangoapps/contentstore/features/component.py:142
Then I see a Problem component with display name "Duplicate of 'Blank Common Problem'" in position "1" # cms/djangoapps/contentstore/features/component.py:154
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I see a Problem component with display name "Blank Common Problem" in position "0" # cms/djangoapps/contentstore/features/component.py:154
And I see a Problem component with display name "Duplicate of 'Blank Common Problem'" in position "1" # cms/djangoapps/contentstore/features/component.py:154
And I see a Problem component with display name "Multiple Choice" in position "2" # cms/djangoapps/contentstore/features/component.py:154
@shard_1
Scenario: I can set the display name of a component # cms/djangoapps/contentstore/features/component.feature:118
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
When I add a "Text" "HTML" component # cms/djangoapps/contentstore/features/component.py:88
Then I see the display name is "Text" # cms/djangoapps/contentstore/features/component.py:164
When I change the display name to "I'm the Cuddliest!" # cms/djangoapps/contentstore/features/component.py:171
Then I see the display name is "I'm the Cuddliest!" # cms/djangoapps/contentstore/features/component.py:164
@shard_1
Scenario: If a component has no display name, the category is displayed # cms/djangoapps/contentstore/features/component.feature:125
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
When I add a "Blank Advanced Problem" "Advanced Problem" component # cms/djangoapps/contentstore/features/component.py:88
Then I see the display name is "Blank Advanced Problem" # cms/djangoapps/contentstore/features/component.py:164
When I change the display name to "" # cms/djangoapps/contentstore/features/component.py:171
Then I see the display name is "problem" # cms/djangoapps/contentstore/features/component.py:164
When I unset the display name # cms/djangoapps/contentstore/features/component.py:179
Then I see the display name is "Blank Advanced Problem" # cms/djangoapps/contentstore/features/component.py:164
Feature: Course export # cms/djangoapps/contentstore/features/course-export.feature:2
I want to export my course to a tar.gz file to share with others or check into source control # cms/djangoapps/contentstore/features/course-export.feature:3
@shard_1
Scenario: User is directed to unit with bad XML when export fails # cms/djangoapps/contentstore/features/course-export.feature:5
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
When I add a "Blank Advanced Problem" "Advanced Problem" component # cms/djangoapps/contentstore/features/component.py:88
And I edit and enter bad XML # cms/djangoapps/contentstore/features/course-export.py:26
And I export the course # cms/djangoapps/contentstore/features/course-export.py:20
Then I get an error dialog # cms/djangoapps/contentstore/features/course-export.py:46
And I can click to go to the unit with the error # cms/djangoapps/contentstore/features/course-export.py:51
Feature: CMS.Course Outline # cms/djangoapps/contentstore/features/course-outline.feature:2
In order to quickly view the details of a course's section and set release dates and grading # cms/djangoapps/contentstore/features/course-outline.feature:3
As a course author # cms/djangoapps/contentstore/features/course-outline.feature:4
I want to use the course outline page # cms/djangoapps/contentstore/features/course-outline.feature:5
@shard_1
Scenario: The default layout for the outline page is to show sections in expanded view# cms/djangoapps/contentstore/features/course-outline.feature:7
Given I have a course with multiple sections # cms/djangoapps/contentstore/features/course-outline.py:30
When I navigate to the course outline page # cms/djangoapps/contentstore/features/course-outline.py:52
Then I see the "Collapse All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:83
And all sections are expanded # cms/djangoapps/contentstore/features/course-outline.py:120
@shard_1
Scenario: Expand /collapse for a course with no sections # cms/djangoapps/contentstore/features/course-outline.feature:13
Given I have a course with no sections # cms/djangoapps/contentstore/features/course-outline.py:13
When I navigate to the course outline page # cms/djangoapps/contentstore/features/course-outline.py:52
Then I do not see the "Collapse All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:92
@shard_1
Scenario: Collapse link appears after creating first section of a course # cms/djangoapps/contentstore/features/course-outline.feature:18
Given I have a course with no sections # cms/djangoapps/contentstore/features/course-outline.py:13
When I navigate to the course outline page # cms/djangoapps/contentstore/features/course-outline.py:52
And I add a section # cms/djangoapps/contentstore/features/course-outline.py:66
Then I see the "Collapse All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:83
And all sections are expanded # cms/djangoapps/contentstore/features/course-outline.py:120
@shard_1
Scenario: Collapse link is removed after last section of a course is deleted # cms/djangoapps/contentstore/features/course-outline.feature:25
Given I have a course with 1 section # cms/djangoapps/contentstore/features/course-outline.py:19
And I navigate to the course outline page # cms/djangoapps/contentstore/features/course-outline.py:52
And I press the section delete icon # cms/djangoapps/contentstore/features/course-outline.py:71
When I will confirm all alerts # cms/djangoapps/contentstore/features/course-outline.py:77
Then I do not see the "Collapse All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:92
@shard_1
Scenario: Collapsing all sections when all sections are expanded # cms/djangoapps/contentstore/features/course-outline.feature:32
Given I navigate to the outline page of a course with multiple sections # cms/djangoapps/contentstore/features/course-outline.py:60
And all sections are expanded # cms/djangoapps/contentstore/features/course-outline.py:120
When I click the "Collapse All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:101
Then I see the "Expand All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:83
And all sections are collapsed # cms/djangoapps/contentstore/features/course-outline.py:120
@shard_1
Scenario: Collapsing all sections when 1 or more sections are already collapsed # cms/djangoapps/contentstore/features/course-outline.feature:39
Given I navigate to the outline page of a course with multiple sections # cms/djangoapps/contentstore/features/course-outline.py:60
And all sections are expanded # cms/djangoapps/contentstore/features/course-outline.py:120
When I collapse the first section # cms/djangoapps/contentstore/features/course-outline.py:111
And I click the "Collapse All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:101
Then I see the "Expand All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:83
And all sections are collapsed # cms/djangoapps/contentstore/features/course-outline.py:120
@shard_1
Scenario: Expanding all sections when all sections are collapsed # cms/djangoapps/contentstore/features/course-outline.feature:47
Given I navigate to the outline page of a course with multiple sections # cms/djangoapps/contentstore/features/course-outline.py:60
And I click the "Collapse All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:101
When I click the "Expand All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:101
Then I see the "Collapse All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:83
And all sections are expanded # cms/djangoapps/contentstore/features/course-outline.py:120
@shard_1
Scenario: Expanding all sections when 1 or more sections are already expanded # cms/djangoapps/contentstore/features/course-outline.feature:54
Given I navigate to the outline page of a course with multiple sections # cms/djangoapps/contentstore/features/course-outline.py:60
And I click the "Collapse All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:101
When I expand the first section # cms/djangoapps/contentstore/features/course-outline.py:111
And I click the "Expand All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:101
Then I see the "Collapse All Sections" link # cms/djangoapps/contentstore/features/course-outline.py:83
And all sections are expanded # cms/djangoapps/contentstore/features/course-outline.py:120
Feature: CMS.Course Settings # cms/djangoapps/contentstore/features/course-settings.feature:2
As a course author, I want to be able to configure my course settings. # cms/djangoapps/contentstore/features/course-settings.feature:3
@skip_safari @shard_2
Scenario: User can set course dates # cms/djangoapps/contentstore/features/course-settings.feature:7
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
When I select Schedule and Details # cms/djangoapps/contentstore/features/course-settings.py:30
And I set course dates # cms/djangoapps/contentstore/features/course-settings.py:47
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I see the set dates # cms/djangoapps/contentstore/features/course-settings.py:188
@skip_internetexplorer @shard_2
Scenario: User can clear previously set course dates (except start date)# cms/djangoapps/contentstore/features/course-settings.feature:17
Given I have set course dates # cms/djangoapps/contentstore/features/course-settings.py:40
And I clear all the dates except start # cms/djangoapps/contentstore/features/course-settings.py:58
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I see cleared dates # cms/djangoapps/contentstore/features/course-settings.py:65
@skip_internetexplorer @shard_2
Scenario: User cannot clear the course start date# cms/djangoapps/contentstore/features/course-settings.feature:26
Given I have set course dates # cms/djangoapps/contentstore/features/course-settings.py:40
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
And I clear the course start date # cms/djangoapps/contentstore/features/course-settings.py:80
Then I receive a warning about course start date # cms/djangoapps/contentstore/features/course-settings.py:85
And I reload the page # common/djangoapps/terrain/steps.py:36
And the previously set start date is shown # cms/djangoapps/contentstore/features/course-settings.py:92
@skip_internetexplorer @skip_safari @shard_2
Scenario: User can correct the course start date warning# cms/djangoapps/contentstore/features/course-settings.feature:38
Given I have tried to clear the course start # cms/djangoapps/contentstore/features/course-settings.py:98
And I have entered a new course start date # cms/djangoapps/contentstore/features/course-settings.py:105
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
Then The warning about course start date goes away # cms/djangoapps/contentstore/features/course-settings.py:110
And I reload the page # common/djangoapps/terrain/steps.py:36
Then my new course start date is shown # cms/djangoapps/contentstore/features/course-settings.py:117
@skip_safari @shard_2
Scenario: Settings are only persisted when saved # cms/djangoapps/contentstore/features/course-settings.feature:48
Given I have set course dates # cms/djangoapps/contentstore/features/course-settings.py:40
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
When I change fields # cms/djangoapps/contentstore/features/course-settings.py:124
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I do not see the changes # cms/djangoapps/contentstore/features/course-settings.py:188
@skip_safari @shard_2
Scenario: Settings are reset on cancel # cms/djangoapps/contentstore/features/course-settings.feature:57
Given I have set course dates # cms/djangoapps/contentstore/features/course-settings.py:40
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
When I change fields # cms/djangoapps/contentstore/features/course-settings.py:124
And I press the "Cancel" notification button # cms/djangoapps/contentstore/features/common.py:87
Then I do not see the changes # cms/djangoapps/contentstore/features/course-settings.py:188
@skip_safari @shard_2
Scenario Outline: Confirmation is shown on save # cms/djangoapps/contentstore/features/course-settings.feature:66
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
When I select Schedule and Details # cms/djangoapps/contentstore/features/course-settings.py:30
And I change the "<field>" field to "<value>" # cms/djangoapps/contentstore/features/common.py:102
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
Then I see a confirmation that my changes have been saved # cms/djangoapps/contentstore/features/common.py:124
And I reset the database # cms/djangoapps/contentstore/features/common.py:110
Examples:
| field | value |
| Course Start Time | 11:00 |
| Course Introduction Video | 4r7wHMg5Yjg |
| Course Effort | 200:00 |
| Course Image URL | image.jpg |
@shard_2
Scenario: Changes in Course Overview show a confirmation # cms/djangoapps/contentstore/features/course-settings.feature:85
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
When I select Schedule and Details # cms/djangoapps/contentstore/features/course-settings.py:30
And I change the course overview # cms/djangoapps/contentstore/features/course-settings.py:132
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
Then I see a confirmation that my changes have been saved # cms/djangoapps/contentstore/features/common.py:124
@shard_2
Scenario: User cannot save invalid settings # cms/djangoapps/contentstore/features/course-settings.feature:92
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
When I select Schedule and Details # cms/djangoapps/contentstore/features/course-settings.py:30
And I change the "Course Start Date" field to "" # cms/djangoapps/contentstore/features/common.py:102
Then the save notification button is disabled # cms/djangoapps/contentstore/features/common.py:272
@shard_2
Scenario: User can upload course image # cms/djangoapps/contentstore/features/course-settings.feature:98
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
When I select Schedule and Details # cms/djangoapps/contentstore/features/course-settings.py:30
And I click the "Upload Course Image" button # cms/djangoapps/contentstore/features/course-settings.py:137
And I upload a new course image # cms/djangoapps/contentstore/features/course-settings.py:143
Then I should see the new course image # cms/djangoapps/contentstore/features/course-settings.py:148
And the image URL should be present in the field # cms/djangoapps/contentstore/features/course-settings.py:161
Feature: CMS.Course Team # cms/djangoapps/contentstore/features/course-team.feature:2
As a course author, I want to be able to add others to my team # cms/djangoapps/contentstore/features/course-team.feature:3
@shard_2
Scenario: Admins can add other users # cms/djangoapps/contentstore/features/course-team.feature:5
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And the user "alice" exists # cms/djangoapps/contentstore/features/common.py:370
And I am viewing the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
When I add "alice" to the course team # cms/djangoapps/contentstore/features/course-team.py:16
And "alice" logs in # cms/djangoapps/contentstore/features/common.py:351
Then she does see the course on her page # cms/djangoapps/contentstore/features/course-team.py:67
@shard_2
Scenario: Added admins cannot delete or add other users # cms/djangoapps/contentstore/features/course-team.feature:13
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And the user "bob" exists # cms/djangoapps/contentstore/features/common.py:370
And I am viewing the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
When I add "bob" to the course team # cms/djangoapps/contentstore/features/course-team.py:16
And "bob" logs in # cms/djangoapps/contentstore/features/common.py:351
And he selects the new course # cms/djangoapps/contentstore/features/common.py:81
And he views the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
Then he cannot delete users # cms/djangoapps/contentstore/features/course-team.py:94
And he cannot add users # cms/djangoapps/contentstore/features/course-team.py:104
@shard_2
Scenario: Admins can delete other users # cms/djangoapps/contentstore/features/course-team.feature:24
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And the user "carol" exists # cms/djangoapps/contentstore/features/common.py:370
And I am viewing the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
When I add "carol" to the course team # cms/djangoapps/contentstore/features/course-team.py:16
And I delete "carol" from the course team # cms/djangoapps/contentstore/features/course-team.py:33
And "carol" logs in # cms/djangoapps/contentstore/features/common.py:351
Then she does not see the course on her page # cms/djangoapps/contentstore/features/course-team.py:67
@shard_2
Scenario: Admins cannot add users that do not exist # cms/djangoapps/contentstore/features/course-team.feature:33
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I am viewing the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
When I add "dennis" to the course team # cms/djangoapps/contentstore/features/course-team.py:16
Then I should see "Could not find user by email address" somewhere on the page # common/djangoapps/terrain/steps.py:151
@shard_2
Scenario: Admins should be able to make other people into admins # cms/djangoapps/contentstore/features/course-team.feature:39
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And the user "emily" exists # cms/djangoapps/contentstore/features/common.py:370
And I am viewing the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
And I add "emily" to the course team # cms/djangoapps/contentstore/features/course-team.py:16
When I make "emily" a course team admin # cms/djangoapps/contentstore/features/course-team.py:49
And "emily" logs in # cms/djangoapps/contentstore/features/common.py:351
And she selects the new course # cms/djangoapps/contentstore/features/common.py:81
And she views the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
Then "emily" should be marked as an admin # cms/djangoapps/contentstore/features/course-team.py:79
And she can add users # cms/djangoapps/contentstore/features/course-team.py:104
And she can delete users # cms/djangoapps/contentstore/features/course-team.py:94
@shard_2
Scenario: Admins should be able to remove other admins # cms/djangoapps/contentstore/features/course-team.feature:52
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And the user "frank" exists as a course admin # cms/djangoapps/contentstore/features/common.py:370
And I am viewing the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
When I remove admin rights from "frank" # cms/djangoapps/contentstore/features/course-team.py:56
And "frank" logs in # cms/djangoapps/contentstore/features/common.py:351
And he selects the new course # cms/djangoapps/contentstore/features/common.py:81
And he views the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
Then "frank" should not be marked as an admin # cms/djangoapps/contentstore/features/course-team.py:79
And he cannot add users # cms/djangoapps/contentstore/features/course-team.py:104
And he cannot delete users # cms/djangoapps/contentstore/features/course-team.py:94
@shard_2
Scenario: Admins should be able to give course ownership to someone else# cms/djangoapps/contentstore/features/course-team.feature:64
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And the user "gina" exists # cms/djangoapps/contentstore/features/common.py:370
And I am viewing the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
When I add "gina" to the course team # cms/djangoapps/contentstore/features/course-team.py:16
And I make "gina" a course team admin # cms/djangoapps/contentstore/features/course-team.py:49
And I remove admin rights from myself # cms/djangoapps/contentstore/features/course-team.py:56
And "gina" logs in # cms/djangoapps/contentstore/features/common.py:351
And she selects the new course # cms/djangoapps/contentstore/features/common.py:81
And she views the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
And she deletes me from the course team # cms/djangoapps/contentstore/features/course-team.py:41
And I am logged into studio # cms/djangoapps/contentstore/features/common.py:35
Then I do not see the course on my page # cms/djangoapps/contentstore/features/course-team.py:67
@shard_2
Scenario: Admins should be able to remove their own admin rights # cms/djangoapps/contentstore/features/course-team.feature:78
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And the user "harry" exists as a course admin # cms/djangoapps/contentstore/features/common.py:370
And I am viewing the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
Then I should be marked as an admin # cms/djangoapps/contentstore/features/course-team.py:89
And I can add users # cms/djangoapps/contentstore/features/course-team.py:104
And I can delete users # cms/djangoapps/contentstore/features/course-team.py:94
When I remove admin rights from myself # cms/djangoapps/contentstore/features/course-team.py:56
Then I should not be marked as an admin # cms/djangoapps/contentstore/features/course-team.py:89
And I cannot add users # cms/djangoapps/contentstore/features/course-team.py:104
And I cannot delete users # cms/djangoapps/contentstore/features/course-team.py:94
And I cannot make myself a course team admin # cms/djangoapps/contentstore/features/course-team.py:114
Feature: CMS.Course updates # cms/djangoapps/contentstore/features/course-updates.feature:2
As a course author, I want to be able to provide updates to my students # cms/djangoapps/contentstore/features/course-updates.feature:3
@skip_internetexplorer @shard_2
Scenario: Users can add updates # cms/djangoapps/contentstore/features/course-updates.feature:7
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the course updates page # cms/djangoapps/contentstore/features/course-updates.py:11
When I add a new update with the text "Hello" # cms/djangoapps/contentstore/features/course-updates.py:19
Then I should see the update "Hello" # cms/djangoapps/contentstore/features/course-updates.py:26
And I see a "saving" notification # cms/djangoapps/contentstore/features/course-updates.py:136
@skip_internetexplorer @shard_2
Scenario: Users can edit updates # cms/djangoapps/contentstore/features/course-updates.feature:16
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the course updates page # cms/djangoapps/contentstore/features/course-updates.py:11
When I add a new update with the text "Hello" # cms/djangoapps/contentstore/features/course-updates.py:19
And I modify the text to "Goodbye" # cms/djangoapps/contentstore/features/course-updates.py:39
Then I should see the update "Goodbye" # cms/djangoapps/contentstore/features/course-updates.py:26
And I see a "saving" notification # cms/djangoapps/contentstore/features/course-updates.py:136
@shard_2
Scenario: Users can delete updates # cms/djangoapps/contentstore/features/course-updates.feature:24
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the course updates page # cms/djangoapps/contentstore/features/course-updates.py:11
And I add a new update with the text "Hello" # cms/djangoapps/contentstore/features/course-updates.py:19
And I delete the update # cms/djangoapps/contentstore/features/course-updates.py:56
And I confirm the prompt # cms/djangoapps/contentstore/features/common.py:309
Then I should not see the update "Hello" # cms/djangoapps/contentstore/features/course-updates.py:33
And I see a "deleting" notification # cms/djangoapps/contentstore/features/course-updates.py:136
@shard_2
Scenario: Users can edit update dates # cms/djangoapps/contentstore/features/course-updates.feature:33
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the course updates page # cms/djangoapps/contentstore/features/course-updates.py:11
And I add a new update with the text "Hello" # cms/djangoapps/contentstore/features/course-updates.py:19
When I edit the date to "June 1, 2013" # cms/djangoapps/contentstore/features/course-updates.py:62
Then I should see the date "June 1, 2013" # cms/djangoapps/contentstore/features/course-updates.py:75
And I see a "saving" notification # cms/djangoapps/contentstore/features/course-updates.py:136
@skip_internetexplorer @shard_2
Scenario: Users can change handouts # cms/djangoapps/contentstore/features/course-updates.feature:43
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the course updates page # cms/djangoapps/contentstore/features/course-updates.py:11
When I modify the handout to "<ol>Test</ol>" # cms/djangoapps/contentstore/features/course-updates.py:81
Then I see the handout "Test" # cms/djangoapps/contentstore/features/course-updates.py:88
And I see a "saving" notification # cms/djangoapps/contentstore/features/course-updates.py:136
@shard_2
Scenario: Text outside of tags is preserved # cms/djangoapps/contentstore/features/course-updates.feature:50
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the course updates page # cms/djangoapps/contentstore/features/course-updates.py:11
When I add a new update with the text "before <strong>middle</strong> after" # cms/djangoapps/contentstore/features/course-updates.py:19
Then I should see the update "before <strong>middle</strong> after" # cms/djangoapps/contentstore/features/course-updates.py:26
And when I reload the page # common/djangoapps/terrain/steps.py:36
Then I should see the update "before <strong>middle</strong> after" # cms/djangoapps/contentstore/features/course-updates.py:26
@shard_2
Scenario: Static links are rewritten when previewing a course update # cms/djangoapps/contentstore/features/course-updates.feature:58
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the course updates page # cms/djangoapps/contentstore/features/course-updates.py:11
When I add a new update with the text "<img src='/static/my_img.jpg'/>" # cms/djangoapps/contentstore/features/course-updates.py:19
Then I should see the update "/c4x/MITx/999/asset/my_img.jpg" # cms/djangoapps/contentstore/features/course-updates.py:26
And I change the update from "/static/my_img.jpg" to "<img src='/static/modified.jpg'/>" # cms/djangoapps/contentstore/features/course-updates.py:46
Then I should see the update "/c4x/MITx/999/asset/modified.jpg" # cms/djangoapps/contentstore/features/course-updates.py:26
And when I reload the page # common/djangoapps/terrain/steps.py:36
Then I should see the update "/c4x/MITx/999/asset/modified.jpg" # cms/djangoapps/contentstore/features/course-updates.py:26
@shard_2
Scenario: Static links are rewritten when previewing handouts # cms/djangoapps/contentstore/features/course-updates.feature:69
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the course updates page # cms/djangoapps/contentstore/features/course-updates.py:11
When I modify the handout to "<ol><img src='/static/my_img.jpg'/></ol>" # cms/djangoapps/contentstore/features/course-updates.py:81
Then I see the handout "/c4x/MITx/999/asset/my_img.jpg" # cms/djangoapps/contentstore/features/course-updates.py:88
And I change the handout from "/static/my_img.jpg" to "<img src='/static/modified.jpg'/>" # cms/djangoapps/contentstore/features/course-updates.py:51
Then I see the handout "/c4x/MITx/999/asset/modified.jpg" # cms/djangoapps/contentstore/features/course-updates.py:88
And when I reload the page # common/djangoapps/terrain/steps.py:36
Then I see the handout "/c4x/MITx/999/asset/modified.jpg" # cms/djangoapps/contentstore/features/course-updates.py:88
@shard_2
Scenario: Users cannot save handouts with bad html until edit or update it properly# cms/djangoapps/contentstore/features/course-updates.feature:80
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the course updates page # cms/djangoapps/contentstore/features/course-updates.py:11
When I modify the handout to "<p><a href=>[LINK TEXT]</a></p>" # cms/djangoapps/contentstore/features/course-updates.py:81
Then I see the handout error text # cms/djangoapps/contentstore/features/course-updates.py:94
And I see handout save button disabled # cms/djangoapps/contentstore/features/course-updates.py:100
When I edit the handout to "<p><a href='https://www.google.com.pk/'>home</a></p>" # cms/djangoapps/contentstore/features/course-updates.py:106
Then I see handout save button re-enabled # cms/djangoapps/contentstore/features/course-updates.py:111
When I save handout edit # cms/djangoapps/contentstore/features/course-updates.py:117
Then I see the handout "https://www.google.com.pk/" # cms/djangoapps/contentstore/features/course-updates.py:88
And when I reload the page # common/djangoapps/terrain/steps.py:36
Then I see the handout "https://www.google.com.pk/" # cms/djangoapps/contentstore/features/course-updates.py:88
Feature: CMS.Create Course # cms/djangoapps/contentstore/features/courses.feature:2
In order offer a course on the edX platform # cms/djangoapps/contentstore/features/courses.feature:3
As a course author # cms/djangoapps/contentstore/features/courses.feature:4
I want to create courses # cms/djangoapps/contentstore/features/courses.feature:5
@shard_2
Scenario: Create a course # cms/djangoapps/contentstore/features/courses.feature:7
Given There are no courses # cms/djangoapps/contentstore/features/courses.py:11
And I am logged into Studio # cms/djangoapps/contentstore/features/common.py:35
When I click the New Course button # cms/djangoapps/contentstore/features/courses.py:17
And I fill in the new course information # cms/djangoapps/contentstore/features/courses.py:22
And I press the "Create" button # common/djangoapps/terrain/steps.py:72
Then the Courseware page has loaded in Studio # cms/djangoapps/contentstore/features/courses.py:50
And I see a link for adding a new section # cms/djangoapps/contentstore/features/courses.py:68
@shard_2
Scenario: Error message when org/course/run tuple is too long # cms/djangoapps/contentstore/features/courses.feature:16
Given There are no courses # cms/djangoapps/contentstore/features/courses.py:11
And I am logged into Studio # cms/djangoapps/contentstore/features/common.py:35
When I click the New Course button # cms/djangoapps/contentstore/features/courses.py:17
And I create a course with "course name", "012345678901234567890123456789", "012345678901234567890123456789", and "0123456" # cms/djangoapps/contentstore/features/courses.py:27
Then I see an error about the length of the org/course/run tuple # cms/djangoapps/contentstore/features/courses.py:43
And the "Create" button is disabled # cms/djangoapps/contentstore/features/common.py:279
@shard_2
Scenario: Course name is not included in the "too long" computation # cms/djangoapps/contentstore/features/courses.feature:24
Given There are no courses # cms/djangoapps/contentstore/features/courses.py:11
And I am logged into Studio # cms/djangoapps/contentstore/features/common.py:35
When I click the New Course button # cms/djangoapps/contentstore/features/courses.py:17
And I create a course with "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", "org", "coursenum", and "run" # cms/djangoapps/contentstore/features/courses.py:27
And I press the "Create" button # common/djangoapps/terrain/steps.py:72
Then the Courseware page has loaded in Studio # cms/djangoapps/contentstore/features/courses.py:50
Feature: CMS.Discussion Component Editor # cms/djangoapps/contentstore/features/discussion-editor.feature:2
As a course author, I want to be able to create discussion components. # cms/djangoapps/contentstore/features/discussion-editor.feature:3
@shard_2
Scenario: User can view discussion component metadata # cms/djangoapps/contentstore/features/discussion-editor.feature:5
Given I have created a Discussion Tag # cms/djangoapps/contentstore/features/discussion-editor.py:8
And I edit the component # cms/djangoapps/contentstore/features/video.py:108
Then I see three alphabetized settings and their expected values # cms/djangoapps/contentstore/features/discussion-editor.py:17
@skip_safari @shard_2
Scenario: User can modify display name # cms/djangoapps/contentstore/features/discussion-editor.feature:12
Given I have created a Discussion Tag # cms/djangoapps/contentstore/features/discussion-editor.py:8
And I edit the component # cms/djangoapps/contentstore/features/video.py:108
Then I can modify the display name # cms/djangoapps/contentstore/features/problem-editor.py:110
And my display name change is persisted on save # cms/djangoapps/contentstore/features/problem-editor.py:119
Feature: CMS.Course Grading # cms/djangoapps/contentstore/features/grading.feature:2
As a course author, I want to be able to configure how my course is graded # cms/djangoapps/contentstore/features/grading.feature:3
@shard_1
Scenario: Users can add grading ranges # cms/djangoapps/contentstore/features/grading.feature:5
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I add "1" new grade # cms/djangoapps/contentstore/features/grading.py:21
Then I see I now have "3" grades # cms/djangoapps/contentstore/features/grading.py:37
@shard_1
Scenario: Users can only have up to 5 grading ranges # cms/djangoapps/contentstore/features/grading.feature:11
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I add "6" new grades # cms/djangoapps/contentstore/features/grading.py:21
Then I see I now have "5" grades # cms/djangoapps/contentstore/features/grading.py:37
@shard_1
Scenario: Users can delete grading ranges # cms/djangoapps/contentstore/features/grading.feature:18
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I add "1" new grade # cms/djangoapps/contentstore/features/grading.py:21
And I delete a grade # cms/djangoapps/contentstore/features/grading.py:28
Then I see I now have "2" grades # cms/djangoapps/contentstore/features/grading.py:37
@skip_internetexplorer @skip_safari @shard_1
Scenario: Users can move grading ranges# cms/djangoapps/contentstore/features/grading.feature:28
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I move a grading section # cms/djangoapps/contentstore/features/grading.py:44
Then I see that the grade range has changed # cms/djangoapps/contentstore/features/grading.py:51
@shard_1
Scenario: Users can modify Assignment types # cms/djangoapps/contentstore/features/grading.feature:34
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I change assignment type "Homework" to "New Type" # cms/djangoapps/contentstore/features/grading.py:59
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
And I go back to the main course page # cms/djangoapps/contentstore/features/grading.py:70
Then I do see the assignment name "New Type" # cms/djangoapps/contentstore/features/grading.py:84
And I do not see the assignment name "Homework" # cms/djangoapps/contentstore/features/grading.py:84
@shard_1
Scenario: Users can delete Assignment types # cms/djangoapps/contentstore/features/grading.feature:43
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I delete the assignment type "Homework" # cms/djangoapps/contentstore/features/grading.py:103
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
And I go back to the main course page # cms/djangoapps/contentstore/features/grading.py:70
Then I do not see the assignment name "Homework" # cms/djangoapps/contentstore/features/grading.py:84
@shard_1
Scenario: Users can add Assignment types # cms/djangoapps/contentstore/features/grading.feature:51
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I add a new assignment type "New Type" # cms/djangoapps/contentstore/features/grading.py:109
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
And I go back to the main course page # cms/djangoapps/contentstore/features/grading.py:70
Then I do see the assignment name "New Type" # cms/djangoapps/contentstore/features/grading.py:84
@shard_1
Scenario: Users can set weight to Assignment types # cms/djangoapps/contentstore/features/grading.feature:60
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I add a new assignment type "New Type" # cms/djangoapps/contentstore/features/grading.py:109
And I set the assignment weight to "7" # cms/djangoapps/contentstore/features/grading.py:118
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
Then the assignment weight is displayed as "7" # cms/djangoapps/contentstore/features/grading.py:128
And I reload the page # common/djangoapps/terrain/steps.py:36
Then the assignment weight is displayed as "7" # cms/djangoapps/contentstore/features/grading.py:128
@shard_1
Scenario: Settings are only persisted when saved # cms/djangoapps/contentstore/features/grading.feature:70
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I change assignment type "Homework" to "New Type" # cms/djangoapps/contentstore/features/grading.py:59
Then I do not see the changes persisted on refresh # cms/djangoapps/contentstore/features/grading.py:134
@shard_1
Scenario: Settings are reset on cancel # cms/djangoapps/contentstore/features/grading.feature:76
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I change assignment type "Homework" to "New Type" # cms/djangoapps/contentstore/features/grading.py:59
And I press the "Cancel" notification button # cms/djangoapps/contentstore/features/common.py:87
Then I see the assignment type "Homework" # cms/djangoapps/contentstore/features/grading.py:141
@shard_1
Scenario: Confirmation is shown on save # cms/djangoapps/contentstore/features/grading.feature:83
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I change assignment type "Homework" to "New Type" # cms/djangoapps/contentstore/features/grading.py:59
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
Then I see a confirmation that my changes have been saved # cms/djangoapps/contentstore/features/common.py:124
@shard_1
Scenario: User cannot save invalid settings # cms/djangoapps/contentstore/features/grading.feature:90
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I change assignment type "Homework" to "" # cms/djangoapps/contentstore/features/grading.py:59
Then the save notification button is disabled # cms/djangoapps/contentstore/features/common.py:272
@skip_internetexplorer @skip_safari @shard_1
Scenario: User can edit grading range names# cms/djangoapps/contentstore/features/grading.feature:99
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I change the highest grade range to "Good" # cms/djangoapps/contentstore/features/grading.py:149
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I see the highest grade range is "Good" # cms/djangoapps/contentstore/features/grading.py:156
@shard_1
Scenario: User cannot edit failing grade range name # cms/djangoapps/contentstore/features/grading.feature:107
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
Then I cannot edit the "Fail" grade range # cms/djangoapps/contentstore/features/grading.py:163
@shard_1
Scenario: User can set a grace period greater than one day # cms/djangoapps/contentstore/features/grading.feature:112
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I change the grace period to "48:00" # cms/djangoapps/contentstore/features/grading.py:182
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I see the grace period is "48:00" # cms/djangoapps/contentstore/features/grading.py:198
@shard_1
Scenario: Grace periods of more than 59 minutes are wrapped to the correct time# cms/djangoapps/contentstore/features/grading.feature:120
Given I have populated a new course in Studio # cms/djangoapps/contentstore/features/common.py:61
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
When I change the grace period to "01:99" # cms/djangoapps/contentstore/features/grading.py:182
And I press the "Save" notification button # cms/djangoapps/contentstore/features/common.py:87
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I see the grace period is "02:39" # cms/djangoapps/contentstore/features/grading.py:198
Feature: CMS.Help # cms/djangoapps/contentstore/features/help.feature:2
As a course author, I am able to access online help # cms/djangoapps/contentstore/features/help.feature:3
@shard_1
Scenario: Users can access online help on course listing page# cms/djangoapps/contentstore/features/help.feature:5
Given There are no courses # cms/djangoapps/contentstore/features/courses.py:11
And I am logged into Studio # cms/djangoapps/contentstore/features/common.py:35
Then I should see online help for "get_started" # cms/djangoapps/contentstore/features/help.py:10
@shard_1
Scenario: Users can access online help within a course# cms/djangoapps/contentstore/features/help.feature:11
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I click the course link in My Courses # cms/djangoapps/contentstore/features/courses.py:37
Then I should see online help for "outline" # cms/djangoapps/contentstore/features/help.py:10
And I go to the course updates page # cms/djangoapps/contentstore/features/course-updates.py:11
Then I should see online help for "updates" # cms/djangoapps/contentstore/features/help.py:10
And I go to the pages page # cms/djangoapps/contentstore/features/pages.py:13
Then I should see online help for "pages" # cms/djangoapps/contentstore/features/help.py:10
And I go to the files and uploads page # cms/djangoapps/contentstore/features/upload.py:20
Then I should see online help for "files" # cms/djangoapps/contentstore/features/help.py:10
And I go to the textbooks page # cms/djangoapps/contentstore/features/textbooks.py:13
Then I should see online help for "textbooks" # cms/djangoapps/contentstore/features/help.py:10
And I select Schedule and Details # cms/djangoapps/contentstore/features/course-settings.py:30
Then I should see online help for "setting_up" # cms/djangoapps/contentstore/features/help.py:10
And I am viewing the grading settings # cms/djangoapps/contentstore/features/grading.py:14
Then I should see online help for "grading" # cms/djangoapps/contentstore/features/help.py:10
And I am viewing the course team settings # cms/djangoapps/contentstore/features/course-team.py:9
Then I should see online help for "course-team" # cms/djangoapps/contentstore/features/help.py:10
And I select the Advanced Settings # cms/djangoapps/contentstore/features/advanced_settings.py:17
Then I should see online help for "index" # cms/djangoapps/contentstore/features/help.py:10
And I select Checklists from the Tools menu # cms/djangoapps/contentstore/features/checklists.py:12
Then I should see online help for "checklist" # cms/djangoapps/contentstore/features/help.py:10
And I go to the import page # cms/djangoapps/contentstore/features/course_import.py:22
Then I should see online help for "import" # cms/djangoapps/contentstore/features/help.py:10
And I go to the export page # cms/djangoapps/contentstore/features/course-export.py:13
Then I should see online help for "export" # cms/djangoapps/contentstore/features/help.py:10
@shard_1
Scenario: Users can access online help on the unit page# cms/djangoapps/contentstore/features/help.feature:51
Given I am in Studio editing a new unit # cms/djangoapps/contentstore/features/common.py:265
Then I should see online help for "units" # cms/djangoapps/contentstore/features/help.py:10
Feature: CMS.HTML Editor # cms/djangoapps/contentstore/features/html-editor.feature:2
As a course author, I want to be able to create HTML blocks. # cms/djangoapps/contentstore/features/html-editor.feature:3
@shard_2
Scenario: User can view metadata # cms/djangoapps/contentstore/features/html-editor.feature:5
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
And I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then I see the HTML component settings # cms/djangoapps/contentstore/features/html-editor.py:34
@skip_safari @shard_2
Scenario: User can modify display name # cms/djangoapps/contentstore/features/html-editor.feature:12
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
And I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then I can modify the display name # cms/djangoapps/contentstore/features/problem-editor.py:110
And my display name change is persisted on save # cms/djangoapps/contentstore/features/problem-editor.py:119
@shard_2
Scenario: Edit High Level source is available for LaTeX html # cms/djangoapps/contentstore/features/html-editor.feature:18
Given I have created an E-text Written in LaTeX # cms/djangoapps/contentstore/features/html-editor.py:44
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then Edit High Level Source is visible # cms/djangoapps/contentstore/features/problem-editor.py:232
@shard_2
Scenario: TinyMCE image plugin sets urls correctly # cms/djangoapps/contentstore/features/html-editor.feature:23
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
When I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
And I add an image with static link "/static/image.jpg" via the Image Plugin Icon # cms/djangoapps/contentstore/features/html-editor.py:60
Then the src link is rewritten to the asset link "image.jpg" # cms/djangoapps/contentstore/features/html-editor.py:133
And the link is shown as "/static/image.jpg" in the Image Plugin # cms/djangoapps/contentstore/features/html-editor.py:68
@shard_2
Scenario: TinyMCE link plugin sets urls correctly # cms/djangoapps/contentstore/features/html-editor.feature:30
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
When I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
And I add a link with static link "/static/image.jpg" via the Link Plugin Icon # cms/djangoapps/contentstore/features/html-editor.py:76
Then the href link is rewritten to the asset link "image.jpg" # cms/djangoapps/contentstore/features/html-editor.py:141
And the link is shown as "/static/image.jpg" in the Link Plugin # cms/djangoapps/contentstore/features/html-editor.py:85
@shard_2
Scenario: TinyMCE and CodeMirror preserve style tags # cms/djangoapps/contentstore/features/html-editor.feature:37
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
When I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
And type "<p class='title'>pages</p><style><!-- .title { color: red; } --></style>" in the code editor and press OK # cms/djangoapps/contentstore/features/html-editor.py:100
And I save the page # cms/djangoapps/contentstore/features/html-editor.py:118
Then the page text contains: # cms/djangoapps/contentstore/features/html-editor.py:123
| """ |
| <p class="title">pages</p> |
| <style><!-- |
| .title { color: red; } |
| --></style> |
| """ |
@shard_2
Scenario: TinyMCE and CodeMirror preserve span tags # cms/djangoapps/contentstore/features/html-editor.feature:50
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
When I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
And type "<span>Test</span>" in the code editor and press OK # cms/djangoapps/contentstore/features/html-editor.py:100
And I save the page # cms/djangoapps/contentstore/features/html-editor.py:118
Then the page text contains: # cms/djangoapps/contentstore/features/html-editor.py:123
| """ |
| <span>Test</span> |
| """ |
@shard_2
Scenario: TinyMCE and CodeMirror preserve math tags # cms/djangoapps/contentstore/features/html-editor.feature:60
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
When I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
And type "<math><msup><mi>x</mi><mn>2</mn></msup></math>" in the code editor and press OK # cms/djangoapps/contentstore/features/html-editor.py:100
And I save the page # cms/djangoapps/contentstore/features/html-editor.py:118
Then the page text contains: # cms/djangoapps/contentstore/features/html-editor.py:123
| """ |
| <math><msup><mi>x</mi><mn>2</mn></msup></math> |
| """ |
@shard_2
Scenario: TinyMCE toolbar buttons are as expected # cms/djangoapps/contentstore/features/html-editor.feature:70
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
When I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
Then the expected toolbar buttons are displayed # cms/djangoapps/contentstore/features/html-editor.py:149
@shard_2
Scenario: Static links are converted when switching between code editor and WYSIWYG views # cms/djangoapps/contentstore/features/html-editor.feature:75
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
When I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
And type "<img src="/static/image.jpg">" in the code editor and press OK # cms/djangoapps/contentstore/features/html-editor.py:100
Then the src link is rewritten to the asset link "image.jpg" # cms/djangoapps/contentstore/features/html-editor.py:133
And the code editor displays "<p><img src="/static/image.jpg" /></p>" # cms/djangoapps/contentstore/features/html-editor.py:111
@shard_2
Scenario: Code format toolbar button wraps text with code tags # cms/djangoapps/contentstore/features/html-editor.feature:82
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
When I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
And I set the text to "display as code" and I select the text # cms/djangoapps/contentstore/features/html-editor.py:187
And I select the code toolbar button # cms/djangoapps/contentstore/features/html-editor.py:197
And I save the page # cms/djangoapps/contentstore/features/html-editor.py:118
Then the page text contains: # cms/djangoapps/contentstore/features/html-editor.py:123
| """ |
| <p><code>display as code</code></p> |
| """ |
@shard_2
Scenario: Raw HTML component does not change text # cms/djangoapps/contentstore/features/html-editor.feature:93
Given I have created a raw HTML component # cms/djangoapps/contentstore/features/html-editor.py:24
When I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
And type "<li>zzzz<ol>" into the Raw Editor # cms/djangoapps/contentstore/features/html-editor.py:203
And I save the page # cms/djangoapps/contentstore/features/html-editor.py:118
Then the page text contains: # cms/djangoapps/contentstore/features/html-editor.py:123
| """ |
| <li>zzzz<ol> |
| """ |
And I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
Then the Raw Editor contains exactly: # cms/djangoapps/contentstore/features/html-editor.py:128
| """ |
| <li>zzzz<ol> |
| """ |
@shard_2
Scenario: Font selection dropdown contains Default font and tinyMCE builtin fonts # cms/djangoapps/contentstore/features/html-editor.feature:108
Given I have created a Blank HTML Page # cms/djangoapps/contentstore/features/html-editor.py:14
When I edit the page # cms/djangoapps/contentstore/features/html-editor.py:55
And I click font selection dropdown # cms/djangoapps/contentstore/features/html-editor.py:218
Then I should see a list of available fonts # cms/djangoapps/contentstore/features/html-editor.py:225
And "Default" option sets "'Open Sans', Verdana, Arial, Helvetica, sans-serif" font family # cms/djangoapps/contentstore/features/html-editor.py:233
And all standard tinyMCE fonts should be available # cms/djangoapps/contentstore/features/html-editor.py:239
Feature: CMS.Pages # cms/djangoapps/contentstore/features/pages.feature:2
As a course author, I want to be able to add pages # cms/djangoapps/contentstore/features/pages.feature:3
@shard_2
Scenario: Users can add static pages # cms/djangoapps/contentstore/features/pages.feature:5
Given I have opened the pages page in a new course # cms/djangoapps/contentstore/features/pages.py:68
Then I should not see any static pages # cms/djangoapps/contentstore/features/pages.py:34
When I add a new static page # cms/djangoapps/contentstore/features/pages.py:21
Then I should see a static page named "Empty" # cms/djangoapps/contentstore/features/pages.py:27
@shard_2
Scenario: Users can delete static pages # cms/djangoapps/contentstore/features/pages.feature:11
Given I have created a static page # cms/djangoapps/contentstore/features/pages.py:62
When I "delete" the static page # cms/djangoapps/contentstore/features/pages.py:40
Then I am shown a prompt # cms/djangoapps/contentstore/features/common.py:314
When I confirm the prompt # cms/djangoapps/contentstore/features/common.py:309
Then I should not see any static pages # cms/djangoapps/contentstore/features/pages.py:34
@skip_safari @shard_2
Scenario: Users can edit static pages # cms/djangoapps/contentstore/features/pages.feature:20
Given I have created a static page # cms/djangoapps/contentstore/features/pages.py:62
When I "edit" the static page # cms/djangoapps/contentstore/features/pages.py:40
And I change the name to "New" # cms/djangoapps/contentstore/features/pages.py:46
Then I should see a static page named "New" # cms/djangoapps/contentstore/features/pages.py:27
@skip_safari @shard_2
Scenario: Users can reorder static pages# cms/djangoapps/contentstore/features/pages.feature:28
Given I have created two different static pages # cms/djangoapps/contentstore/features/pages.py:74
When I drag the first static page to the last # cms/djangoapps/contentstore/features/pages.py:57
Then the static pages are switched # cms/djangoapps/contentstore/features/pages.py:84
And I reload the page # common/djangoapps/terrain/steps.py:36
Then the static pages are switched # cms/djangoapps/contentstore/features/pages.py:84
@shard_2
Scenario: Users can reorder built-in pages # cms/djangoapps/contentstore/features/pages.feature:35
Given I have opened the pages page in a new course # cms/djangoapps/contentstore/features/pages.py:68
Then the built-in pages are in the default order # cms/djangoapps/contentstore/features/pages.py:100
When I drag the first page to the last # cms/djangoapps/contentstore/features/pages.py:124
Then the built-in pages are switched # cms/djangoapps/contentstore/features/pages.py:106
And I reload the page # common/djangoapps/terrain/steps.py:36
Then the built-in pages are switched # cms/djangoapps/contentstore/features/pages.py:106
@shard_2
Scenario: Users can reorder built-in pages amongst static pages# cms/djangoapps/contentstore/features/pages.feature:43
Given I have created two different static pages # cms/djangoapps/contentstore/features/pages.py:74
Then the pages are in the default order # cms/djangoapps/contentstore/features/pages.py:112
When I drag the first page to the last # cms/djangoapps/contentstore/features/pages.py:124
Then the pages are switched # cms/djangoapps/contentstore/features/pages.py:118
And I reload the page # common/djangoapps/terrain/steps.py:36
Then the pages are switched # cms/djangoapps/contentstore/features/pages.py:118
@shard_2
Scenario: Users can toggle visibility on hideable pages# cms/djangoapps/contentstore/features/pages.feature:51
Given I have opened the pages page in a new course # cms/djangoapps/contentstore/features/pages.py:68
Then I should see the "wiki" page as "visible" # cms/djangoapps/contentstore/features/pages.py:129
When I toggle the visibility of the "wiki" page # cms/djangoapps/contentstore/features/pages.py:135
Then I should see the "wiki" page as "hidden" # cms/djangoapps/contentstore/features/pages.py:129
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I should see the "wiki" page as "hidden" # cms/djangoapps/contentstore/features/pages.py:129
When I toggle the visibility of the "wiki" page # cms/djangoapps/contentstore/features/pages.py:135
Then I should see the "wiki" page as "visible" # cms/djangoapps/contentstore/features/pages.py:129
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I should see the "wiki" page as "visible" # cms/djangoapps/contentstore/features/pages.py:129
Feature: CMS.Problem Editor # cms/djangoapps/contentstore/features/problem-editor.feature:2
As a course author, I want to be able to create problems and edit their settings. # cms/djangoapps/contentstore/features/problem-editor.feature:3
@shard_1
Scenario: User can view metadata # cms/djangoapps/contentstore/features/problem-editor.feature:5
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then I see the advanced settings and their expected values # cms/djangoapps/contentstore/features/problem-editor.py:96
And Edit High Level Source is not visible # cms/djangoapps/contentstore/features/problem-editor.py:227
@skip_safari @shard_1
Scenario: User can modify String values # cms/djangoapps/contentstore/features/problem-editor.feature:13
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then I can modify the display name # cms/djangoapps/contentstore/features/problem-editor.py:110
And my display name change is persisted on save # cms/djangoapps/contentstore/features/problem-editor.py:119
@skip_safari @shard_1
Scenario: User can specify special characters in String values # cms/djangoapps/contentstore/features/problem-editor.feature:21
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then I can specify special characters in the display name # cms/djangoapps/contentstore/features/problem-editor.py:130
And my special characters and persisted on save # cms/djangoapps/contentstore/features/problem-editor.py:149
@shard_1
Scenario: User can revert display name to unset # cms/djangoapps/contentstore/features/problem-editor.feature:27
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then I can revert the display name to unset # cms/djangoapps/contentstore/features/problem-editor.py:155
And my display name is unset on save # cms/djangoapps/contentstore/features/problem-editor.py:161
@shard_1
Scenario: User can specify html in display name and it will be escaped # cms/djangoapps/contentstore/features/problem-editor.feature:33
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then I can specify html in the display name and save # cms/djangoapps/contentstore/features/problem-editor.py:137
And the problem display name is "<script>alert('test')</script>" # cms/djangoapps/contentstore/features/problem-editor.py:125
@skip_internetexplorer @shard_1
Scenario: User can select values in a Select # cms/djangoapps/contentstore/features/problem-editor.feature:41
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then I can select Per Student for Randomization # cms/djangoapps/contentstore/features/problem-editor.py:167
And my change to randomization is persisted # cms/djangoapps/contentstore/features/problem-editor.py:173
And I can revert to the default value for randomization # cms/djangoapps/contentstore/features/problem-editor.py:179
@skip_safari @shard_1
Scenario: User can modify float input values # cms/djangoapps/contentstore/features/problem-editor.feature:50
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then I can set the weight to "3.5" # cms/djangoapps/contentstore/features/problem-editor.py:186
And my change to weight is persisted # cms/djangoapps/contentstore/features/problem-editor.py:192
And I can revert to the default value of unset for weight # cms/djangoapps/contentstore/features/problem-editor.py:198
@shard_1
Scenario: User cannot type letters in float number field # cms/djangoapps/contentstore/features/problem-editor.feature:57
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then if I set the weight to "abc", it remains unset # cms/djangoapps/contentstore/features/problem-editor.py:205
@skip_safari @shard_1
Scenario: User cannot type decimal values integer number field # cms/djangoapps/contentstore/features/problem-editor.feature:64
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then if I set the max attempts to "2.34", it will persist as a valid integer # cms/djangoapps/contentstore/features/problem-editor.py:215
@skip_safari @shard_1
Scenario: User cannot type out of range values in an integer number field# cms/djangoapps/contentstore/features/problem-editor.feature:71
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then if I set the max attempts to "-3", it will persist as a valid integer # cms/djangoapps/contentstore/features/problem-editor.py:215
@skip_safari @shard_1
Scenario: Settings changes are not saved on Cancel # cms/djangoapps/contentstore/features/problem-editor.feature:78
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then I can set the weight to "3.5" # cms/djangoapps/contentstore/features/problem-editor.py:186
And I can modify the display name # cms/djangoapps/contentstore/features/problem-editor.py:110
Then If I press Cancel my changes are not persisted # cms/djangoapps/contentstore/features/problem-editor.py:237
@shard_1
Scenario: Edit High Level source is available for LaTeX problem # cms/djangoapps/contentstore/features/problem-editor.feature:85
Given I have created a LaTeX Problem # cms/djangoapps/contentstore/features/problem-editor.py:253
When I edit and select Settings # cms/djangoapps/contentstore/features/problem-editor.py:91
Then Edit High Level Source is visible # cms/djangoapps/contentstore/features/problem-editor.py:232
@shard_1
Scenario: Cheat sheet visible on toggle # cms/djangoapps/contentstore/features/problem-editor.feature:90
Given I have created a Blank Common Problem # cms/djangoapps/contentstore/features/problem-editor.py:21
And I can edit the problem # cms/djangoapps/contentstore/features/problem-editor.py:314
Then I can see cheatsheet # cms/djangoapps/contentstore/features/problem-editor.py:332
@shard_1
Scenario: Reply on Annotation and Return to Annotation link works for Annotation problem# cms/djangoapps/contentstore/features/problem-editor.feature:95
Given I have created a unit with advanced module "annotatable" # cms/djangoapps/contentstore/features/problem-editor.py:27
And I have created an advanced component "Annotation" of type "annotatable" # cms/djangoapps/contentstore/features/problem-editor.py:38
And I have created an advanced problem of type "Blank Advanced Problem" # cms/djangoapps/contentstore/features/problem-editor.py:81
And I edit first blank advanced problem for annotation response # cms/djangoapps/contentstore/features/problem-editor.py:319
When I mouseover on "annotatable-span" # cms/djangoapps/contentstore/features/problem-editor.py:57
Then I can see Reply to Annotation link # cms/djangoapps/contentstore/features/problem-editor.py:63
And I see that page has scrolled "down" when I click on "annotatable-reply" link # cms/djangoapps/contentstore/features/problem-editor.py:69
And I see that page has scrolled "up" when I click on "annotation-return" link # cms/djangoapps/contentstore/features/problem-editor.py:69
Feature: CMS.Sign in # cms/djangoapps/contentstore/features/signup.feature:2
In order to use the edX content # cms/djangoapps/contentstore/features/signup.feature:3
As a new user # cms/djangoapps/contentstore/features/signup.feature:4
I want to signup for a student account # cms/djangoapps/contentstore/features/signup.feature:5
@shard_2
Scenario: Sign up from the homepage # cms/djangoapps/contentstore/features/signup.feature:7
Given I visit the Studio homepage # cms/djangoapps/contentstore/features/common.py:25
When I click the link with the text "Sign Up" # common/djangoapps/terrain/steps.py:122
And I fill in the registration form # cms/djangoapps/contentstore/features/signup.py:8
And I press the Create My Account button on the registration form # cms/djangoapps/contentstore/features/signup.py:20
Then I should see an email verification prompt # cms/djangoapps/contentstore/features/signup.py:26
@shard_2
Scenario: Login with a valid redirect # cms/djangoapps/contentstore/features/signup.feature:14
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I am not logged in # common/djangoapps/terrain/steps.py:111
And I visit the url "/course/slashes:MITx+999+Robot_Super_Course" # common/djangoapps/terrain/steps.py:187
And I should see that the path is "/signin?next=/course/slashes%3AMITx%2B999%2BRobot_Super_Course" # common/djangoapps/terrain/steps.py:83
When I fill in and submit the signin form # cms/djangoapps/contentstore/features/signup.py:32
And I wait for "2" seconds # common/djangoapps/terrain/steps.py:31
Then I should see that the path is "/course/slashes:MITx+999+Robot_Super_Course" # common/djangoapps/terrain/steps.py:83
@shard_2
Scenario: Login with an invalid redirect # cms/djangoapps/contentstore/features/signup.feature:23
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I am not logged in # common/djangoapps/terrain/steps.py:111
And I visit the url "/signin?next=http://www.google.com/" # common/djangoapps/terrain/steps.py:187
When I fill in and submit the signin form # cms/djangoapps/contentstore/features/signup.py:32
And I wait for "2" seconds # common/djangoapps/terrain/steps.py:31
Then I should see that the path is "/course/" # common/djangoapps/terrain/steps.py:83
Feature: CMS.Textbooks # cms/djangoapps/contentstore/features/textbooks.feature:2
@shard_2
Scenario: No textbooks # cms/djangoapps/contentstore/features/textbooks.feature:4
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
When I go to the textbooks page # cms/djangoapps/contentstore/features/textbooks.py:13
Then I should see a message telling me to create a new textbook # cms/djangoapps/contentstore/features/textbooks.py:21
@skip_internetexplorer @skip_safari @shard_2
Scenario: Create a textbook # cms/djangoapps/contentstore/features/textbooks.feature:12
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the textbooks page # cms/djangoapps/contentstore/features/textbooks.py:13
When I click on the New Textbook button # cms/djangoapps/contentstore/features/textbooks.py:34
And I name my textbook "Economics" # cms/djangoapps/contentstore/features/textbooks.py:41
And I name the first chapter "Chapter 1" # cms/djangoapps/contentstore/features/textbooks.py:49
And I click the Upload Asset link for the first chapter # cms/djangoapps/contentstore/features/textbooks.py:67
And I upload the textbook "textbook.pdf" # cms/djangoapps/contentstore/features/textbooks.py:29
And I wait for "2" seconds # common/djangoapps/terrain/steps.py:31
And I save the textbook # cms/djangoapps/contentstore/features/textbooks.py:80
Then I should see a textbook named "Economics" with a chapter path containing "/static/textbook.pdf" # cms/djangoapps/contentstore/features/textbooks.py:86
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I should see a textbook named "Economics" with a chapter path containing "/static/textbook.pdf" # cms/djangoapps/contentstore/features/textbooks.py:86
@shard_2
Scenario: Create a textbook with multiple chapters # cms/djangoapps/contentstore/features/textbooks.feature:26
Given I have opened a new course in Studio # cms/djangoapps/contentstore/features/common.py:56
And I go to the textbooks page # cms/djangoapps/contentstore/features/textbooks.py:13
When I click on the New Textbook button # cms/djangoapps/contentstore/features/textbooks.py:34
And I name my textbook "History" # cms/djangoapps/contentstore/features/textbooks.py:41
And I name the first chapter "Britain" # cms/djangoapps/contentstore/features/textbooks.py:49
And I type in "britain.pdf" for the first chapter asset # cms/djangoapps/contentstore/features/textbooks.py:58
And I click Add a Chapter # cms/djangoapps/contentstore/features/textbooks.py:74
And I name the second chapter "America" # cms/djangoapps/contentstore/features/textbooks.py:49
And I type in "america.pdf" for the second chapter asset # cms/djangoapps/contentstore/features/textbooks.py:58
And I save the textbook # cms/djangoapps/contentstore/features/textbooks.py:80
Then I should see a textbook named "History" with 2 chapters # cms/djangoapps/contentstore/features/textbooks.py:94
And I click the textbook chapters # cms/djangoapps/contentstore/features/textbooks.py:107
Then I should see a textbook named "History" with 2 chapters # cms/djangoapps/contentstore/features/textbooks.py:94
And the first chapter should be named "Britain" # cms/djangoapps/contentstore/features/textbooks.py:112
And the first chapter should have an asset called "britain.pdf" # cms/djangoapps/contentstore/features/textbooks.py:121
And the second chapter should be named "America" # cms/djangoapps/contentstore/features/textbooks.py:112
And the second chapter should have an asset called "america.pdf" # cms/djangoapps/contentstore/features/textbooks.py:121
And I reload the page # common/djangoapps/terrain/steps.py:36
Then I should see a textbook named "History" with 2 chapters # cms/djangoapps/contentstore/features/textbooks.py:94
And I click the textbook chapters # cms/djangoapps/contentstore/features/textbooks.py:107
Then I should see a textbook named "History" with 2 chapters # cms/djangoapps/contentstore/features/textbooks.py:94
And the first chapter should be named "Britain" # cms/djangoapps/contentstore/features/textbooks.py:112
And the first chapter should have an asset called "britain.pdf" # cms/djangoapps/contentstore/features/textbooks.py:121
And the second chapter should be named "America" # cms/djangoapps/contentstore/features/textbooks.py:112
And the second chapter should have an asset called "america.pdf" # cms/djangoapps/contentstore/features/textbooks.py:121
Feature: CMS Transcripts # cms/djangoapps/contentstore/features/transcripts.feature:2
As a course author, I want to be able to create video components # cms/djangoapps/contentstore/features/transcripts.feature:3
@shard_3 @requires_stub_youtube
Scenario: Youtube id only: check "not found" and "import" states# cms/djangoapps/contentstore/features/transcripts.feature:21
Given I have created a Video component with subtitles # cms/djangoapps/contentstore/features/video.py:51
And I edit the component # cms/djangoapps/contentstore/features/video.py:108
Transcript file was NOT found and not removed.
And I remove "t_not_exist" transcripts id from store # cms/djangoapps/contentstore/features/transcripts.py:165
And I enter a "http://youtu.be/t_not_exist" source to field number 1 # cms/djangoapps/contentstore/features/transcripts.py:181
Then I see status message "not found" # cms/djangoapps/contentstore/features/transcripts.py:117
And I see value "" in the field "Default Timed Transcript" # cms/djangoapps/contentstore/features/transcripts.py:211
Transcript file was NOT found and not removed.
And I remove "t__eq_exist" transcripts id from store # cms/djangoapps/contentstore/features/transcripts.py:165
And I enter a "http://youtu.be/t__eq_exist" source to field number 1 # cms/djangoapps/contentstore/features/transcripts.py:181
Then I see status message "not found on edx" # cms/djangoapps/contentstore/features/transcripts.py:117
And I see button "import" # cms/djangoapps/contentstore/features/transcripts.py:127
And I click transcript button "import" # cms/djangoapps/contentstore/features/transcripts.py:149
Then I see status message "found" # cms/djangoapps/contentstore/features/transcripts.py:117
And I see button "upload_new_timed_transcripts" # cms/djangoapps/contentstore/features/transcripts.py:127
And I see button "download_to_edit" # cms/djangoapps/contentstore/features/transcripts.py:127
And I see value "t__eq_exist" in the field "Default Timed Transcript" # cms/djangoapps/contentstore/features/transcripts.py:211
Feature: CMS.Upload Files # cms/djangoapps/contentstore/features/upload.feature:2
As a course author, I want to be able to upload files for my students # cms/djangoapps/contentstore/features/upload.feature:3
@skip_safari @shard_2
Scenario: Users can upload files # cms/djangoapps/contentstore/features/upload.feature:7
Given I am at the files and upload page of a Studio course # cms/djangoapps/contentstore/features/upload.py:171
When I upload the file "test" by clicking "Upload your first asset" # cms/djangoapps/contentstore/features/upload.py:46
Then I should see the file "test" was uploaded # cms/djangoapps/contentstore/features/upload.py:81
And The url for the file "test" is valid # cms/djangoapps/contentstore/features/upload.py:87
When I upload the file "test2" # cms/djangoapps/contentstore/features/upload.py:28
Then I should see the file "test2" was uploaded # cms/djangoapps/contentstore/features/upload.py:81
And The url for the file "test2" is valid # cms/djangoapps/contentstore/features/upload.py:87
@skip_safari @shard_2
Scenario: Users can upload multiple files # cms/djangoapps/contentstore/features/upload.feature:18
Given I am at the files and upload page of a Studio course # cms/djangoapps/contentstore/features/upload.py:171
When I upload the files "test,test2" # cms/djangoapps/contentstore/features/upload.py:51
Then I should see the file "test" was uploaded # cms/djangoapps/contentstore/features/upload.py:81
And I should see the file "test2" was uploaded # cms/djangoapps/contentstore/features/upload.py:81
And The url for the file "test2" is valid # cms/djangoapps/contentstore/features/upload.py:87
And The url for the file "test" is valid # cms/djangoapps/contentstore/features/upload.py:87
@skip_safari @shard_2
Scenario: Users can update files # cms/djangoapps/contentstore/features/upload.feature:28
Given I am at the files and upload page of a Studio course # cms/djangoapps/contentstore/features/upload.py:171
When I upload the file "test" # cms/djangoapps/contentstore/features/upload.py:28
And I upload the file "test" # cms/djangoapps/contentstore/features/upload.py:28
Then I should see only one "test" # cms/djangoapps/contentstore/features/upload.py:102
@skip_safari @shard_2
Scenario: Users can delete uploaded files # cms/djangoapps/contentstore/features/upload.feature:36
Given I am at the files and upload page of a Studio course # cms/djangoapps/contentstore/features/upload.py:171
When I upload the file "test" # cms/djangoapps/contentstore/features/upload.py:28
And I delete the file "test" # cms/djangoapps/contentstore/features/upload.py:93
Then I should not see the file "test" was uploaded # cms/djangoapps/contentstore/features/upload.py:69
And I see a confirmation that the file was deleted # cms/djangoapps/contentstore/features/upload.py:201
@skip_safari @shard_2
Scenario: Users can download files # cms/djangoapps/contentstore/features/upload.feature:45
Given I am at the files and upload page of a Studio course # cms/djangoapps/contentstore/features/upload.py:171
When I upload the file "test" # cms/djangoapps/contentstore/features/upload.py:28
Then I can download the correct "test" file # cms/djangoapps/contentstore/features/upload.py:112
@skip_safari @shard_2
Scenario: Users can download updated files # cms/djangoapps/contentstore/features/upload.feature:52
Given I am at the files and upload page of a Studio course # cms/djangoapps/contentstore/features/upload.py:171
When I upload the file "test" # cms/djangoapps/contentstore/features/upload.py:28
And I modify "test" # cms/djangoapps/contentstore/features/upload.py:131
And I reload the page # common/djangoapps/terrain/steps.py:36
And I upload the file "test" # cms/djangoapps/contentstore/features/upload.py:28
Then I can download the correct "test" file # cms/djangoapps/contentstore/features/upload.py:112
@skip_safari @shard_2
Scenario: Users can lock assets through asset index # cms/djangoapps/contentstore/features/upload.feature:62
Given I am at the files and upload page of a Studio course # cms/djangoapps/contentstore/features/upload.py:171
When I upload an asset # cms/djangoapps/contentstore/features/upload.py:137
And I lock the asset # cms/djangoapps/contentstore/features/upload.py:142
Then the asset is locked # cms/djangoapps/contentstore/features/upload.py:162
And I see a "saving" notification # cms/djangoapps/contentstore/features/course-updates.py:136
And I reload the page # common/djangoapps/terrain/steps.py:36
Then the asset is locked # cms/djangoapps/contentstore/features/upload.py:162
@skip_safari @shard_2
Scenario: Users can unlock assets through asset index# cms/djangoapps/contentstore/features/upload.feature:73
Given I have created a course with a locked asset # cms/djangoapps/contentstore/features/upload.py:177
When I unlock the asset # cms/djangoapps/contentstore/features/upload.py:142
Then the asset is unlocked # cms/djangoapps/contentstore/features/upload.py:162
And I see a "saving" notification # cms/djangoapps/contentstore/features/course-updates.py:136
And I reload the page # common/djangoapps/terrain/steps.py:36
Then the asset is unlocked # cms/djangoapps/contentstore/features/upload.py:162
@skip_safari @shard_2
Scenario: Locked assets can't be viewed if logged in as an unregistered user# cms/djangoapps/contentstore/features/upload.feature:83
Given I have created a course with a locked asset # cms/djangoapps/contentstore/features/upload.py:177
And the user "bob" exists # cms/djangoapps/contentstore/features/common.py:370
When "bob" logs in # cms/djangoapps/contentstore/features/common.py:351
Then the asset is protected # cms/djangoapps/contentstore/features/upload.py:187
@skip_safari @shard_2
Scenario: Locked assets can be viewed if logged in as a registered user# cms/djangoapps/contentstore/features/upload.feature:91
Given I have created a course with a locked asset # cms/djangoapps/contentstore/features/upload.py:177
And the user "bob" exists # cms/djangoapps/contentstore/features/common.py:370
And the user "bob" is enrolled in the course # cms/djangoapps/contentstore/features/upload.py:153
When "bob" logs in # cms/djangoapps/contentstore/features/common.py:351
Then the asset is viewable # cms/djangoapps/contentstore/features/upload.py:187
@skip_safari @shard_2
Scenario: Locked assets can't be viewed if logged out# cms/djangoapps/contentstore/features/upload.feature:100
Given I have created a course with a locked asset # cms/djangoapps/contentstore/features/upload.py:177
When I log out # cms/djangoapps/contentstore/features/common.py:389
Then the asset is protected # cms/djangoapps/contentstore/features/upload.py:187
@skip_safari @shard_2
Scenario: Locked assets can be viewed with is_staff account# cms/djangoapps/contentstore/features/upload.feature:107
Given I have created a course with a locked asset # cms/djangoapps/contentstore/features/upload.py:177
And the user "staff" exists as a course is_staff # cms/djangoapps/contentstore/features/common.py:370
When "staff" logs in # cms/djangoapps/contentstore/features/common.py:351
Then the asset is viewable # cms/djangoapps/contentstore/features/upload.py:187
@skip_safari @shard_2
Scenario: Unlocked assets can be viewed by anyone # cms/djangoapps/contentstore/features/upload.feature:115
Given I have created a course with a unlocked asset # cms/djangoapps/contentstore/features/upload.py:177
When I log out # cms/djangoapps/contentstore/features/common.py:389
Then the asset is viewable # cms/djangoapps/contentstore/features/upload.py:187
20 features (19 passed)
147 scenarios (146 passed)
814 steps (1 failed, 1 skipped, 812 passed)
List of failed scenarios:
@shard_1
Scenario: I can add Common Problem components # cms/djangoapps/contentstore/features/component.feature:41
Cleaning up after cms acceptance using draft
---> pavelib.utils.test.utils.clean_mongo
mongo localhost:27017 /edx/app/edxapp/edx-platform/scripts/delete-mongo-test-dbs.js
MongoDB shell version: 2.4.7
connecting to: localhost:27017/test
Cleaning up after acceptance
================================================
Tests failed in the following suites:
* lms acceptance using draft
* cms acceptance using draft
edxapp@precise64:~/edx-platform$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment