BLD-1000: Download handout.
This commit is contained in:
@@ -11,6 +11,7 @@ VIDEO_BUTTONS = {
|
||||
'volume': '.volume',
|
||||
'play': '.video_control.play',
|
||||
'pause': '.video_control.pause',
|
||||
'handout': '.video-handout.video-download-button a',
|
||||
}
|
||||
|
||||
SELECTORS = {
|
||||
|
||||
@@ -148,6 +148,7 @@ def correct_video_settings(_step):
|
||||
['Transcript Display', 'True', False],
|
||||
['Transcript Download Allowed', 'False', False],
|
||||
['Transcript Translations', '', False],
|
||||
['Upload Handout', '', False],
|
||||
['Video Download Allowed', 'False', False],
|
||||
['Video Sources', '', False],
|
||||
['Youtube ID', 'OEoXaMPEzfM', False],
|
||||
71
cms/djangoapps/contentstore/features/video_handout.feature
Normal file
71
cms/djangoapps/contentstore/features/video_handout.feature
Normal file
@@ -0,0 +1,71 @@
|
||||
@shard_3
|
||||
Feature: CMS Video Component Handout
|
||||
As a course author, I want to be able to create video handout
|
||||
|
||||
# 1
|
||||
Scenario: Handout uploading works correctly
|
||||
Given I have created a Video component with handout file "textbook.pdf"
|
||||
And I save changes
|
||||
Then I can see video button "handout"
|
||||
And I can download handout file with mime type "application/pdf"
|
||||
|
||||
# 2
|
||||
Scenario: Handout downloading works correctly w/ preliminary saving
|
||||
Given I have created a Video component with handout file "textbook.pdf"
|
||||
And I save changes
|
||||
And I edit the component
|
||||
And I open tab "Advanced"
|
||||
And I can download handout file in editor with mime type "application/pdf"
|
||||
|
||||
# 3
|
||||
Scenario: Handout downloading works correctly w/o preliminary saving
|
||||
Given I have created a Video component with handout file "textbook.pdf"
|
||||
And I can download handout file in editor with mime type "application/pdf"
|
||||
|
||||
# 4
|
||||
Scenario: Handout clearing works correctly w/ preliminary saving
|
||||
Given I have created a Video component with handout file "textbook.pdf"
|
||||
And I save changes
|
||||
And I can download handout file with mime type "application/pdf"
|
||||
And I edit the component
|
||||
And I open tab "Advanced"
|
||||
And I clear handout
|
||||
And I save changes
|
||||
Then I do not see video button "handout"
|
||||
|
||||
# 5
|
||||
Scenario: Handout clearing works correctly w/o preliminary saving
|
||||
Given I have created a Video component with handout file "asset.html"
|
||||
And I clear handout
|
||||
And I save changes
|
||||
Then I do not see video button "handout"
|
||||
|
||||
# 6
|
||||
Scenario: User can easy replace the handout by another one w/ preliminary saving
|
||||
Given I have created a Video component with handout file "asset.html"
|
||||
And I save changes
|
||||
Then I can see video button "handout"
|
||||
And I can download handout file with mime type "text/html"
|
||||
And I edit the component
|
||||
And I open tab "Advanced"
|
||||
And I replace handout file by "textbook.pdf"
|
||||
And I save changes
|
||||
Then I can see video button "handout"
|
||||
And I can download handout file with mime type "application/pdf"
|
||||
|
||||
# 7
|
||||
Scenario: User can easy replace the handout by another one w/o preliminary saving
|
||||
Given I have created a Video component with handout file "asset.html"
|
||||
And I replace handout file by "textbook.pdf"
|
||||
And I save changes
|
||||
Then I can see video button "handout"
|
||||
And I can download handout file with mime type "application/pdf"
|
||||
|
||||
# 8
|
||||
Scenario: Upload file "A" -> Remove it -> Upload file "B"
|
||||
Given I have created a Video component with handout file "asset.html"
|
||||
And I clear handout
|
||||
And I upload handout file "textbook.pdf"
|
||||
And I save changes
|
||||
Then I can see video button "handout"
|
||||
And I can download handout file with mime type "application/pdf"
|
||||
40
cms/djangoapps/contentstore/features/video_handout.py
Normal file
40
cms/djangoapps/contentstore/features/video_handout.py
Normal file
@@ -0,0 +1,40 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# disable missing docstring
|
||||
# pylint: disable=C0111
|
||||
|
||||
from lettuce import world, step
|
||||
from nose.tools import assert_true # pylint: disable=E0611
|
||||
from video_editor import RequestHandlerWithSessionId, success_upload_file
|
||||
|
||||
|
||||
@step('I (?:upload|replace) handout file(?: by)? "([^"]*)"$')
|
||||
def upload_handout(step, filename):
|
||||
world.css_click('.wrapper-comp-setting.file-uploader .upload-action')
|
||||
success_upload_file(filename)
|
||||
|
||||
|
||||
@step('I can download handout file( in editor)? with mime type "([^"]*)"$')
|
||||
def i_can_download_handout_with_mime_type(_step, is_editor, mime_type):
|
||||
if is_editor:
|
||||
selector = '.wrapper-comp-setting.file-uploader .download-action'
|
||||
else:
|
||||
selector = '.video-handout.video-download-button a'
|
||||
|
||||
button = world.css_find(selector).first
|
||||
url = button['href']
|
||||
request = RequestHandlerWithSessionId()
|
||||
assert_true(request.get(url).is_success())
|
||||
assert_true(request.check_header('content-type', mime_type))
|
||||
|
||||
|
||||
@step('I clear handout$')
|
||||
def clear_handout(_step):
|
||||
world.css_click('.wrapper-comp-setting.file-uploader .setting-clear')
|
||||
|
||||
|
||||
@step('I have created a Video component with handout file "([^"]*)"')
|
||||
def create_video_with_handout(_step, filename):
|
||||
_step.given('I have created a Video component')
|
||||
_step.given('I edit the component')
|
||||
_step.given('I open tab "Advanced"')
|
||||
_step.given('I upload handout file "{0}"'.format(filename))
|
||||
Reference in New Issue
Block a user