Merge pull request #4939 from edx/ammar/bok-choy-transcript-tests-batch3
Bok-Choy Video Transcript Tests Batch3
This commit is contained in:
@@ -82,260 +82,3 @@ Feature: CMS Transcripts
|
||||
# And I see button "use_existing"
|
||||
# And I click transcript button "use_existing"
|
||||
# And I see value "video_name_3" in the field "Default Timed Transcript"
|
||||
|
||||
#26
|
||||
Scenario: Subtitles are copied for every html5 video source
|
||||
Given I have created a Video component
|
||||
And I edit the component
|
||||
|
||||
And I enter a "video_name_1.mp4" source to field number 1
|
||||
And I see status message "not found"
|
||||
|
||||
And I enter a "video_name_2.webm" source to field number 2
|
||||
And I see status message "not found"
|
||||
And I upload the transcripts file "uk_transcripts.srt"
|
||||
Then I see status message "uploaded_successfully"
|
||||
And I see value "video_name_1|video_name_2" in the field "Default Timed Transcript"
|
||||
|
||||
And I clear field number 1
|
||||
Then I see status message "found"
|
||||
And I see value "video_name_2" in the field "Default Timed Transcript"
|
||||
|
||||
#27
|
||||
Scenario: Upload button for single youtube id
|
||||
Given I have created a Video component
|
||||
And I edit the component
|
||||
|
||||
And I enter a "http://youtu.be/t_not_exist" source to field number 1
|
||||
Then I see status message "not found"
|
||||
And I see button "upload_new_timed_transcripts"
|
||||
And I upload the transcripts file "uk_transcripts.srt"
|
||||
Then I see status message "uploaded_successfully"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does show the captions
|
||||
|
||||
And I edit the component
|
||||
Then I see status message "found"
|
||||
|
||||
#28
|
||||
Scenario: Upload button for youtube id with html5 ids
|
||||
Given I have created a Video component
|
||||
And I edit the component
|
||||
|
||||
And I enter a "http://youtu.be/t_not_exist" source to field number 1
|
||||
Then I see status message "not found"
|
||||
And I see button "upload_new_timed_transcripts"
|
||||
|
||||
And I enter a "video_name_1.mp4" source to field number 2
|
||||
Then I see status message "not found"
|
||||
And I see button "upload_new_timed_transcripts"
|
||||
|
||||
And I upload the transcripts file "uk_transcripts.srt"
|
||||
Then I see status message "uploaded_successfully"
|
||||
And I clear field number 1
|
||||
Then I see status message "found"
|
||||
And I see value "video_name_1" in the field "Default Timed Transcript"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does show the captions
|
||||
And I edit the component
|
||||
Then I see status message "found"
|
||||
|
||||
#29
|
||||
Scenario: Change transcripts field in Advanced tab
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
And I edit the component
|
||||
|
||||
And I enter a "video_name_1.mp4" source to field number 1
|
||||
Then I see status message "not found"
|
||||
|
||||
And I open tab "Advanced"
|
||||
And I set value "t_not_exist" to the field "Default Timed Transcript"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does show the captions
|
||||
And I edit the component
|
||||
|
||||
Then I see status message "found"
|
||||
And I see value "video_name_1" in the field "Default Timed Transcript"
|
||||
|
||||
#30
|
||||
Scenario: Check non-ascii (chinise) transcripts
|
||||
Given I have created a Video component
|
||||
And I edit the component
|
||||
|
||||
And I enter a "video_name_1.mp4" source to field number 1
|
||||
Then I see status message "not found"
|
||||
And I upload the transcripts file "chinese_transcripts.srt"
|
||||
|
||||
Then I see status message "uploaded_successfully"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does show the captions
|
||||
|
||||
#31
|
||||
Scenario: Check saving module metadata on switching between tabs
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
And I edit the component
|
||||
|
||||
And I enter a "video_name_1.mp4" source to field number 1
|
||||
Then I see status message "not found"
|
||||
|
||||
And I open tab "Advanced"
|
||||
And I set value "t_not_exist" to the field "Default Timed Transcript"
|
||||
And I open tab "Basic"
|
||||
Then I see status message "found"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does show the captions
|
||||
And I edit the component
|
||||
|
||||
Then I see status message "found"
|
||||
And I see value "video_name_1" in the field "Default Timed Transcript"
|
||||
|
||||
#32
|
||||
Scenario: After clearing Transcripts field in the Advanced tab "not found" message should be visible w/o saving
|
||||
Given I have created a Video component
|
||||
And I edit the component
|
||||
|
||||
And I enter a "t_not_exist.mp4" source to field number 1
|
||||
Then I see status message "not found"
|
||||
And I upload the transcripts file "chinese_transcripts.srt"
|
||||
Then I see status message "uploaded_successfully"
|
||||
|
||||
And I open tab "Advanced"
|
||||
And I set value "" to the field "Default Timed Transcript"
|
||||
And I open tab "Basic"
|
||||
Then I see status message "not found"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does not show the captions
|
||||
And I edit the component
|
||||
|
||||
Then I see status message "not found"
|
||||
And I see value "" in the field "Default Timed Transcript"
|
||||
|
||||
#33
|
||||
Scenario: After clearing Transcripts field in the Advanced tab "not found" message should be visible with saving
|
||||
Given I have created a Video component
|
||||
And I edit the component
|
||||
|
||||
And I enter a "t_not_exist.mp4" source to field number 1
|
||||
Then I see status message "not found"
|
||||
And I upload the transcripts file "chinese_transcripts.srt"
|
||||
Then I see status message "uploaded_successfully"
|
||||
|
||||
And I save changes
|
||||
Then I see "好 各位同学" text in the captions
|
||||
And I edit the component
|
||||
|
||||
And I open tab "Advanced"
|
||||
And I set value "" to the field "Default Timed Transcript"
|
||||
And I open tab "Basic"
|
||||
Then I see status message "not found"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does not show the captions
|
||||
And I edit the component
|
||||
|
||||
Then I see status message "not found"
|
||||
And I see value "" in the field "Default Timed Transcript"
|
||||
|
||||
#34
|
||||
Scenario: Video with existing subs - Advanced tab - change to another one subs - Basic tab - Found message - Save - see correct subs
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
And I edit the component
|
||||
|
||||
And I enter a "video_name_1.mp4" source to field number 1
|
||||
Then I see status message "not found"
|
||||
|
||||
And I upload the transcripts file "chinese_transcripts.srt"
|
||||
Then I see status message "uploaded_successfully"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does show the captions
|
||||
And I see "好 各位同学" text in the captions
|
||||
And I edit the component
|
||||
|
||||
And I open tab "Advanced"
|
||||
And I set value "t_not_exist" to the field "Default Timed Transcript"
|
||||
And I open tab "Basic"
|
||||
Then I see status message "found"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does show the captions
|
||||
And I see "LILA FISHER: Hi, welcome to Edx." text in the captions
|
||||
|
||||
#35
|
||||
Scenario: After reverting Transcripts field in the Advanced tab "not found" message should be visible
|
||||
Given I have created a Video component
|
||||
And I edit the component
|
||||
|
||||
And I enter a "t_not_exist.mp4" source to field number 1
|
||||
Then I see status message "not found"
|
||||
And I upload the transcripts file "chinese_transcripts.srt"
|
||||
Then I see status message "uploaded_successfully"
|
||||
|
||||
And I save changes
|
||||
Then I see "好 各位同学" text in the captions
|
||||
And I edit the component
|
||||
|
||||
And I open tab "Advanced"
|
||||
And I revert the transcript field "Default Timed Transcript"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does not show the captions
|
||||
And I edit the component
|
||||
Then I see status message "not found"
|
||||
|
||||
#36 Uploading subtitles for file with periods in it should properly set the transcript name and keep the periods
|
||||
Scenario: File name and name of subs are different
|
||||
Given I have created a Video component
|
||||
And I edit the component
|
||||
|
||||
And I enter a "video_name_1.1.2.mp4" source to field number 1
|
||||
And I see status message "not found"
|
||||
And I upload the transcripts file "uk_transcripts.srt"
|
||||
Then I see status message "uploaded_successfully"
|
||||
And I see value "video_name_1.1.2" in the field "Default Timed Transcript"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does show the captions
|
||||
|
||||
And I edit the component
|
||||
Then I see status message "found"
|
||||
|
||||
#37 Uploading subtitles with different file name than file
|
||||
Scenario: Shortened link: File name and name of subs are different
|
||||
Given I have created a Video component
|
||||
And I edit the component
|
||||
|
||||
And I enter a "http://goo.gl/pxxZrg" source to field number 1
|
||||
And I see status message "not found"
|
||||
And I upload the transcripts file "uk_transcripts.srt"
|
||||
Then I see status message "uploaded_successfully"
|
||||
And I see value "pxxZrg" in the field "Default Timed Transcript"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does show the captions
|
||||
|
||||
And I edit the component
|
||||
Then I see status message "found"
|
||||
|
||||
#38 Uploading subtitles with different file name than file
|
||||
Scenario: Relative link: File name and name of subs are different
|
||||
Given I have created a Video component
|
||||
And I edit the component
|
||||
|
||||
And I enter a "/gizmo.webm" source to field number 1
|
||||
And I see status message "not found"
|
||||
And I upload the transcripts file "uk_transcripts.srt"
|
||||
Then I see status message "uploaded_successfully"
|
||||
And I see value "gizmo" in the field "Default Timed Transcript"
|
||||
|
||||
And I save changes
|
||||
Then when I view the video it does show the captions
|
||||
|
||||
And I edit the component
|
||||
Then I see status message "found"
|
||||
|
||||
@@ -503,7 +503,6 @@ class VideoComponentPage(VideoPage):
|
||||
self.click_button('collapse_link')
|
||||
|
||||
self.q(css=CLASS_SELECTORS['url_inputs']).nth(field_number - 1).fill(url)
|
||||
|
||||
time.sleep(DELAY)
|
||||
self.wait_for_ajax()
|
||||
|
||||
@@ -548,6 +547,19 @@ class VideoComponentPage(VideoPage):
|
||||
|
||||
return statuses
|
||||
|
||||
def clear_field(self, index):
|
||||
"""
|
||||
Clear a video url field at index specified by `index`.
|
||||
"""
|
||||
self.q(css=CLASS_SELECTORS['url_inputs']).nth(index - 1).fill('')
|
||||
|
||||
# Trigger an 'input' event after filling the field with an empty value.
|
||||
self.browser.execute_script(
|
||||
"$('{}:eq({})').trigger('{}')".format(CLASS_SELECTORS['url_inputs'], index, 'input'))
|
||||
|
||||
time.sleep(DELAY)
|
||||
self.wait_for_ajax()
|
||||
|
||||
def clear_fields(self):
|
||||
"""
|
||||
Clear video url fields.
|
||||
@@ -563,6 +575,13 @@ class VideoComponentPage(VideoPage):
|
||||
time.sleep(DELAY)
|
||||
self.wait_for_ajax()
|
||||
|
||||
def revert_field(self, field_name):
|
||||
"""
|
||||
Revert a field.
|
||||
"""
|
||||
_, setting = self._get_setting_entry(field_name)
|
||||
setting.find_element_by_class_name('setting-clear').click()
|
||||
|
||||
def is_transcript_button_visible(self, button_name, index=0, button_text=None):
|
||||
"""
|
||||
Check if a transcript related button is visible.
|
||||
|
||||
@@ -48,34 +48,42 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Check input error messages
|
||||
Given I have created a Video component
|
||||
|
||||
Entering "123.webm" and "456.webm" source to field number 1 and 2 respectively should disable field 1 and 3
|
||||
Then I see error message "Link types should be unique."
|
||||
When I clear fields, input fields should be enabled
|
||||
|
||||
And I enter a "http://link.c" source to field number 1 should disable fields 2 and 3
|
||||
Then I see error message "Incorrect url format."
|
||||
|
||||
Entering "http://goo.gl/pxxZrg" source to both field number 1 and 2 should disable fields 1 and 3
|
||||
Then I see error message "Links should be unique."
|
||||
When I clear fields, input fields should be enabled
|
||||
|
||||
And I enter a "http://youtu.be/t_not_exist" source to field number 1
|
||||
Then I do not see error message
|
||||
And I expect inputs are enabled
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
#User inputs html5 links with equal extension
|
||||
self.video.set_url_field('123.webm', 1)
|
||||
self.video.set_url_field('456.webm', 2)
|
||||
self.assertEqual(self.video.message('error'), 'Link types should be unique.')
|
||||
|
||||
# Currently we are working with 2nd field. It means, that if 2nd field
|
||||
# contain incorrect value, 1st and 3rd fields should be disabled until
|
||||
# 2nd field will be filled by correct correct value
|
||||
self.assertEqual(self.video.url_field_status(1, 3).values(), [False, False])
|
||||
self.video.clear_fields()
|
||||
self.assertEqual(self.video.url_field_status().values(), [True, True, True])
|
||||
|
||||
#User input URL with incorrect format
|
||||
self.video.set_url_field('http://link.c', 1)
|
||||
self.assertEqual(self.video.message('error'), 'Incorrect url format.')
|
||||
self.assertEqual(self.video.url_field_status(2, 3).values(), [False, False])
|
||||
|
||||
#User input URL with incorrect format
|
||||
self.video.set_url_field('http://goo.gl/pxxZrg', 1)
|
||||
self.video.set_url_field('http://goo.gl/pxxZrg', 2)
|
||||
@@ -83,6 +91,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
self.assertEqual(self.video.url_field_status(1, 3).values(), [False, False])
|
||||
self.video.clear_fields()
|
||||
self.assertEqual(self.video.url_field_status().values(), [True, True, True])
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t_not_exist', 1)
|
||||
self.assertEqual(self.video.message('error'), '')
|
||||
self.assertEqual(self.video.url_field_status().values(), [True, True, True])
|
||||
@@ -91,9 +100,11 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Testing interaction with test youtube server
|
||||
Given I have created a Video component with subtitles
|
||||
|
||||
And I enter a "http://youtu.be/t__eq_exist" source to field number 1
|
||||
Then I see status message "No EdX Timed Transcript"
|
||||
And I see button "import"
|
||||
|
||||
And I enter a "http://youtu.be/t_not_exist" source to field number 1
|
||||
Then I see status message "No Timed Transcript"
|
||||
And I do not see button "import"
|
||||
@@ -101,11 +112,13 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component(subtitles=True)
|
||||
self.edit_component()
|
||||
|
||||
# first part of url will be substituted by mock_youtube_server address
|
||||
# for t__eq_exist id server will respond with transcripts
|
||||
self.video.set_url_field('http://youtu.be/t__eq_exist', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No EdX Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('import'))
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t_not_exist', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.assertFalse(self.video.is_transcript_button_visible('import'))
|
||||
@@ -115,12 +128,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Youtube id only: check "Found" state
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
|
||||
And I enter a "http://youtu.be/t_not_exist" source to field number 1
|
||||
Then I see status message "Timed Transcript Found"
|
||||
And I see value "t_not_exist" in the field "Default Timed Transcript"
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_not_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t_not_exist', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.open_advanced_tab()
|
||||
@@ -130,12 +145,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Youtube id only: check "Found" state when user sets youtube_id with same local and server subs
|
||||
Given I have created a Video component with subtitles "t__eq_exist"
|
||||
|
||||
And I enter a "http://youtu.be/t__eq_exist" source to field number 1
|
||||
And I see status message "Timed Transcript Found"
|
||||
And I see value "t__eq_exist" in the field "Default Timed Transcript"
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t__eq_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t__eq_exist', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.open_advanced_tab()
|
||||
@@ -145,6 +162,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Youtube id only: check "Found" state when user sets youtube_id with different local and server subs
|
||||
Given I have created a Video component with subtitles "t_neq_exist"
|
||||
|
||||
And I enter a "http://youtu.be/t_neq_exist" source to field number 1
|
||||
And I see status message "Timed Transcript Conflict"
|
||||
And I see button "replace"
|
||||
@@ -154,6 +172,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_neq_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t_neq_exist', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Conflict')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('replace'))
|
||||
@@ -166,12 +185,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: html5 source only: check "Not Found" state
|
||||
Given I have created a Video component
|
||||
|
||||
And I enter a "t_not_exist.mp4" source to field number 1
|
||||
Then I see status message "No Timed Transcript"
|
||||
And I see value "" in the field "Default Timed Transcript"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('t_not_exist.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.open_advanced_tab()
|
||||
@@ -181,12 +202,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: html5 source only: check "Found" state
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
|
||||
And I enter a "t_not_exist.mp4" source to field number 1
|
||||
Then I see status message "Timed Transcript Found"
|
||||
And I see value "t_not_exist" in the field "Default Timed Transcript"
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_not_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('t_not_exist.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.open_advanced_tab()
|
||||
@@ -196,6 +219,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: User sets youtube_id w/o server but with local subs and one html5 link w/o subs
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
|
||||
urls = ['http://youtu.be/t_not_exist', 'test_video_name.mp4']
|
||||
for each url in urls do the following
|
||||
Enter `url` to field number n
|
||||
@@ -204,6 +228,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_not_exist')
|
||||
self.edit_component()
|
||||
|
||||
urls = ['http://youtu.be/t_not_exist', 'test_video_name.mp4']
|
||||
for index, url in enumerate(urls, 1):
|
||||
self.video.set_url_field(url, index)
|
||||
@@ -217,6 +242,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
Scenario: User sets youtube_id w/o local but with server subs and one html5 link w/o
|
||||
transcripts w/o import action, then another one html5 link w/o transcripts
|
||||
Given I have created a Video component
|
||||
|
||||
urls = ['http://youtu.be/t__eq_exist', 't_not_exist.mp4', 't_not_exist.webm']
|
||||
for each url in urls do the following
|
||||
Enter `url` to field number `n`
|
||||
@@ -225,6 +251,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
urls = ['http://youtu.be/t__eq_exist', 't_not_exist.mp4', 't_not_exist.webm']
|
||||
for index, url in enumerate(urls, 1):
|
||||
self.video.set_url_field(url, index)
|
||||
@@ -236,6 +263,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Entering youtube (no importing), and 2 html5 sources without transcripts - "Not Found"
|
||||
Given I have created a Video component
|
||||
|
||||
urls = ['http://youtu.be/t_not_exist', 't_not_exist.mp4', 't_not_exist.webm']
|
||||
for each url in urls do the following
|
||||
Enter `url` to field number `n`
|
||||
@@ -244,6 +272,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
urls = ['http://youtu.be/t_not_exist', 't_not_exist.mp4', 't_not_exist.webm']
|
||||
for index, url in enumerate(urls, 1):
|
||||
self.video.set_url_field(url, index)
|
||||
@@ -255,12 +284,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Entering youtube with imported transcripts, and 2 html5 sources without transcripts - "Found"
|
||||
Given I have created a Video component
|
||||
|
||||
And I enter a "http://youtu.be/t__eq_exist" source to field number 1
|
||||
Then I see status message "No EdX Timed Transcript"
|
||||
And I see button "import"
|
||||
And I click transcript button "import"
|
||||
Then I see status message "Timed Transcript Found"
|
||||
And I see button "upload_new_timed_transcripts"
|
||||
|
||||
urls = ['t_not_exist.mp4', 't_not_exist.webm']
|
||||
for each url in urls do the following
|
||||
Enter `url` to field number `n`
|
||||
@@ -269,12 +300,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t__eq_exist', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No EdX Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('import'))
|
||||
self.video.click_button('import')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('upload_new_timed_transcripts'))
|
||||
|
||||
urls = ['t_not_exist.mp4', 't_not_exist.webm']
|
||||
for index, url in enumerate(urls, 2):
|
||||
self.video.set_url_field(url, index)
|
||||
@@ -286,6 +319,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Entering youtube w/o transcripts - html5 w/o transcripts - html5 with transcripts
|
||||
Given I have created a Video component with subtitles "t_neq_exist"
|
||||
|
||||
urls = ['http://youtu.be/t_not_exist', 't_not_exist.mp4']
|
||||
for each url in urls do the following
|
||||
Enter `url` to field number `n`
|
||||
@@ -298,6 +332,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_neq_exist')
|
||||
self.edit_component()
|
||||
|
||||
urls = ['http://youtu.be/t_not_exist', 't_not_exist.mp4']
|
||||
for index, url in enumerate(urls, 1):
|
||||
self.video.set_url_field(url, index)
|
||||
@@ -314,6 +349,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Entering youtube w/o imported transcripts - html5 w/o transcripts w/o import - html5 with transcripts
|
||||
Given I have created a Video component with subtitles "t_neq_exist"
|
||||
|
||||
urls = ['http://youtu.be/t__eq_exist', 't_not_exist.mp4', 't_neq_exist.webm']
|
||||
for each url in urls do the following
|
||||
Enter `url` to field number `n`
|
||||
@@ -322,6 +358,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_neq_exist')
|
||||
self.edit_component()
|
||||
|
||||
urls = ['http://youtu.be/t__eq_exist', 't_not_exist.mp4', 't_neq_exist.webm']
|
||||
for index, url in enumerate(urls, 1):
|
||||
self.video.set_url_field(url, index)
|
||||
@@ -333,6 +370,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Entering youtube w/o imported transcripts - html5 with transcripts - html5 w/o transcripts w/o import
|
||||
Given I have created a Video component with subtitles "t_neq_exist"
|
||||
|
||||
urls = ['http://youtu.be/t__eq_exist', 't_neq_exist.mp4', 't_not_exist.webm']
|
||||
for each url in urls do the following
|
||||
Enter `url` to field number `n`
|
||||
@@ -341,6 +379,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_neq_exist')
|
||||
self.edit_component()
|
||||
|
||||
urls = ['http://youtu.be/t__eq_exist', 't_neq_exist.mp4', 't_not_exist.webm']
|
||||
for index, url in enumerate(urls, 1):
|
||||
self.video.set_url_field(url, index)
|
||||
@@ -352,12 +391,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Entering youtube with imported transcripts - html5 with transcripts - html5 w/o transcripts
|
||||
Given I have created a Video component with subtitles "t_neq_exist"
|
||||
|
||||
And I enter a "http://youtu.be/t__eq_exist" source to field number 1
|
||||
Then I see status message "No EdX Timed Transcript"
|
||||
And I see button "import"
|
||||
And I click transcript button "import"
|
||||
Then I see status message "Timed Transcript Found"
|
||||
And I see button "upload_new_timed_transcripts"
|
||||
|
||||
urls = ['t_neq_exist.mp4', 't_not_exist.webm']
|
||||
for each url in urls do the following
|
||||
Enter `url` to field number `n`
|
||||
@@ -366,12 +407,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_neq_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t__eq_exist', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No EdX Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('import'))
|
||||
self.video.click_button('import')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('upload_new_timed_transcripts'))
|
||||
|
||||
urls = ['t_neq_exist.mp4', 't_not_exist.webm']
|
||||
for index, url in enumerate(urls, 2):
|
||||
self.video.set_url_field(url, index)
|
||||
@@ -383,12 +426,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Entering youtube with imported transcripts - html5 w/o transcripts - html5 with transcripts
|
||||
Given I have created a Video component with subtitles "t_neq_exist"
|
||||
|
||||
And I enter a "http://youtu.be/t__eq_exist" source to field number 1
|
||||
Then I see status message "No EdX Timed Transcript"
|
||||
And I see button "import"
|
||||
And I click transcript button "import"
|
||||
Then I see status message "Timed Transcript Found"
|
||||
And I see button "upload_new_timed_transcripts"
|
||||
|
||||
urls = ['t_not_exist.mp4', 't_neq_exist.webm']
|
||||
for each url in urls do the following
|
||||
Enter `url` to field number `n`
|
||||
@@ -397,12 +442,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_neq_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t__eq_exist', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No EdX Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('import'))
|
||||
self.video.click_button('import')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('upload_new_timed_transcripts'))
|
||||
|
||||
urls = ['t_not_exist.mp4', 't_neq_exist.webm']
|
||||
for index, url in enumerate(urls, 2):
|
||||
self.video.set_url_field(url, index)
|
||||
@@ -414,6 +461,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Entering html5 with transcripts - upload - youtube w/o transcripts
|
||||
Given I have created a Video component with subtitles "t__eq_exist"
|
||||
|
||||
And I enter a "t__eq_exist.mp4" source to field number 1
|
||||
Then I see status message "Timed Transcript Found"
|
||||
`download_to_edit` and `upload_new_timed_transcripts` buttons are shown
|
||||
@@ -421,14 +469,17 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
Then I see status message "Timed Transcript Uploaded Successfully"
|
||||
`download_to_edit` and `upload_new_timed_transcripts` buttons are shown
|
||||
And I see value "t__eq_exist" in the field "Default Timed Transcript"
|
||||
|
||||
And I enter a "http://youtu.be/t_not_exist" source to field number 2
|
||||
Then I see status message "Timed Transcript Found"
|
||||
`download_to_edit` and `upload_new_timed_transcripts` buttons are shown
|
||||
|
||||
And I enter a "uk_transcripts.webm" source to field number 3
|
||||
Then I see status message "Timed Transcript Found"
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t__eq_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('t__eq_exist.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('download_to_edit'))
|
||||
@@ -440,10 +491,12 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
self.open_advanced_tab()
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 't__eq_exist'))
|
||||
self.open_basic_tab()
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t_not_exist', 2)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('download_to_edit'))
|
||||
self.assertTrue(self.video.is_transcript_button_visible('upload_new_timed_transcripts'))
|
||||
|
||||
self.video.set_url_field('uk_transcripts.webm', 3)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
|
||||
@@ -451,12 +504,14 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: Enter 2 HTML5 sources with transcripts, they are not the same, choose
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
|
||||
And I enter a "uk_transcripts.mp4" source to field number 1
|
||||
Then I see status message "No Timed Transcript"
|
||||
`download_to_edit` and `upload_new_timed_transcripts` buttons are shown
|
||||
And I upload the transcripts file "uk_transcripts.srt"
|
||||
Then I see status message "Timed Transcript Uploaded Successfully"
|
||||
And I see value "uk_transcripts" in the field "Default Timed Transcript"
|
||||
|
||||
And I enter a "t_not_exist.webm" source to field number 2
|
||||
Then I see status message "Timed Transcript Conflict"
|
||||
`Timed Transcript from uk_transcripts.mp4` and `Timed Transcript from t_not_exist.webm` buttons are shown
|
||||
@@ -465,6 +520,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_not_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('uk_transcripts.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('download_to_edit'))
|
||||
@@ -474,6 +530,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
self.open_advanced_tab()
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 'uk_transcripts'))
|
||||
self.open_basic_tab()
|
||||
|
||||
self.video.set_url_field('t_not_exist.webm', 2)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Conflict')
|
||||
self.assertTrue(
|
||||
@@ -483,25 +540,31 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
|
||||
def test_one_field_only(self):
|
||||
"""
|
||||
Scenario: Work with 1 field only: Enter HTML5 source with transcripts - save -> change it to another one HTML5
|
||||
source w/o transcripts - click on use existing -> change it to another one HTML5 source w/o transcripts - do
|
||||
not click on use existing -> change it to another one HTML5 source w/o transcripts - click on use existing
|
||||
Scenario: Work with 1 field only: Enter HTML5 source with transcripts - save -> change it to another one
|
||||
HTML5 source w/o transcripts - click on use existing -> change it to another one HTML5 source
|
||||
w/o transcripts - do not click on use existing -> change it to another one HTML5 source w/o
|
||||
transcripts - click on use existing
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
|
||||
If i enter "t_not_exist.mp4" source to field number 1 Then I see status message "Timed Transcript Found"
|
||||
`download_to_edit` and `upload_new_timed_transcripts` buttons are shown
|
||||
And I see value "t_not_exist" in the field "Default Timed Transcript"
|
||||
And I save changes And then edit the component
|
||||
|
||||
If i enter "video_name_2.mp4" source to field number 1 Then I see status message "Confirm Timed Transcript"
|
||||
I see button "use_existing" And I click on it
|
||||
And I see value "video_name_2" in the field "Default Timed Transcript"
|
||||
|
||||
If i enter "video_name_3.mp4" source to field number 1 Then I see status message "Confirm Timed Transcript"
|
||||
And I see button "use_existing"
|
||||
|
||||
If i enter a "video_name_4.mp4" source to field number 1 Then I see status message "Confirm Timed Transcript"
|
||||
I see button "use_existing" And I click on it
|
||||
And I see value "video_name_4" in the field "Default Timed Transcript"
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_not_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('t_not_exist.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('download_to_edit'))
|
||||
@@ -511,6 +574,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
self.open_basic_tab()
|
||||
self.save_unit_settings()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('video_name_2.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Confirm Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('use_existing'))
|
||||
@@ -519,9 +583,11 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
self.open_advanced_tab()
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 'video_name_2'))
|
||||
self.open_basic_tab()
|
||||
|
||||
self.video.set_url_field('video_name_3.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Confirm Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('use_existing'))
|
||||
|
||||
self.video.set_url_field('video_name_4.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Confirm Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('use_existing'))
|
||||
@@ -532,17 +598,20 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
def test_two_fields_only(self):
|
||||
"""
|
||||
Scenario: Work with 2 fields: Enter HTML5 source with transcripts - save -> change it to another one HTML5
|
||||
source w/o transcripts - do not click on use existing -> add another one HTML5 source w/o transcripts -
|
||||
click on use existing
|
||||
source w/o transcripts - do not click on use existing -> add another one HTML5 source w/o
|
||||
transcripts - click on use existing
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
|
||||
And I enter a "t_not_exist.mp4" source to field number 1
|
||||
Then I see status message "Timed Transcript Found"
|
||||
`download_to_edit` and `upload_new_timed_transcripts` buttons are shown
|
||||
And I save changes
|
||||
And I edit the component
|
||||
|
||||
And I enter a "video_name_2.mp4" source to field number 1
|
||||
Then I see status message "Confirm Timed Transcript"
|
||||
And I see button "use_existing"
|
||||
|
||||
And I enter a "video_name_3.webm" source to field number 2
|
||||
Then I see status message "Confirm Timed Transcript"
|
||||
And I see button "use_existing"
|
||||
@@ -551,15 +620,18 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_not_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('t_not_exist.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('download_to_edit'))
|
||||
self.assertTrue(self.video.is_transcript_button_visible('upload_new_timed_transcripts'))
|
||||
self.save_unit_settings()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('video_name_2.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'Confirm Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('use_existing'))
|
||||
|
||||
self.video.set_url_field('video_name_3.webm', 2)
|
||||
self.assertEqual(self.video.message('status'), 'Confirm Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('use_existing'))
|
||||
@@ -571,6 +643,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
Scenario: File name and name of subs are different (Uploading subtitles with different file name than file)
|
||||
Given I have created a Video component
|
||||
|
||||
And I enter a "video_name_1.mp4" source to field number 1
|
||||
And I see status message "No Timed Transcript"
|
||||
And I upload the transcripts file "uk_transcripts.srt"
|
||||
@@ -583,6 +656,7 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('video_name_1.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.video.upload_transcript('uk_transcripts.srt')
|
||||
@@ -596,15 +670,388 @@ class VideoTranscriptTest(CMSVideoBaseTest):
|
||||
|
||||
def test_video_wo_subtitles(self):
|
||||
"""
|
||||
Video can have filled item.sub, but doesn't have subs file.
|
||||
In this case, after changing this video by another one without subs
|
||||
`No Timed Transcript` message should appear ( not `Confirm Timed Transcript`).
|
||||
Scenario: Video w/o subs - another video w/o subs - Not found message
|
||||
Video can have filled item.sub, but doesn't have subs file.
|
||||
In this case, after changing this video by another one without subs
|
||||
`No Timed Transcript` message should appear ( not 'Confirm Timed Transcript').
|
||||
Given I have created a Video component
|
||||
|
||||
And I enter a "video_name_1.mp4" source to field number 1
|
||||
Then I see status message "No Timed Transcript"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('video_name_1.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
|
||||
def test_subtitles_copy(self):
|
||||
"""
|
||||
Scenario: Subtitles are copied for every html5 video source
|
||||
Given I have created a Video component
|
||||
|
||||
After I enter a "video_name_1.mp4" source to field number 1 Then I see status message "No Timed Transcript"
|
||||
|
||||
After I enter a "video_name_2.webm" source to field number 2 Then I see status message "No Timed Transcript"
|
||||
After uploading transcript "uk_transcripts.srt" I should see message "Timed Transcript Uploaded Successfully"
|
||||
And I see value "video_name_2" in the field "Default Timed Transcript"
|
||||
When I clear field number 1 Then I see status message "Timed Transcript Found"
|
||||
And I see value "video_name_2" in the field "Default Timed Transcript"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('video_name_1.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
|
||||
self.video.set_url_field('video_name_2.webm', 2)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.video.upload_transcript('uk_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.open_advanced_tab()
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 'video_name_2'))
|
||||
self.open_basic_tab()
|
||||
self.video.clear_field(1)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.open_advanced_tab()
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 'video_name_2'))
|
||||
|
||||
def test_upload_button_w_youtube(self):
|
||||
"""
|
||||
Scenario: Upload button for single youtube id
|
||||
Given I have created a Video component
|
||||
|
||||
After I enter a "http://youtu.be/t_not_exist" source to field number 1 I see message "No Timed Transcript"
|
||||
And I see button "upload_new_timed_transcripts"
|
||||
After I upload the transcripts file "uk_transcripts.srt" I see message "Timed Transcript Uploaded Successfully"
|
||||
After saving the changes video captions should be visible
|
||||
When I edit the component Then I see status message "Timed Transcript Found"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t_not_exist', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('upload_new_timed_transcripts'))
|
||||
self.video.upload_transcript('uk_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.save_unit_settings()
|
||||
self.assertTrue(self.video.is_captions_visible())
|
||||
self.edit_component()
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
|
||||
def test_upload_button_w_html5_ids(self):
|
||||
"""
|
||||
Scenario: Upload button for youtube id with html5 ids
|
||||
Given I have created a Video component
|
||||
|
||||
After I enter a "http://youtu.be/t_not_exist" source to field number 1 I see message "No Timed Transcript"
|
||||
And I see button "upload_new_timed_transcripts"
|
||||
|
||||
After I enter a "video_name_1.mp4" source to field number 2 Then I see status message "No Timed Transcript"
|
||||
And I see button "upload_new_timed_transcripts"
|
||||
After I upload the transcripts file "uk_transcripts.srt"I see message "Timed Transcript Uploaded Successfully"
|
||||
When I clear field number 1 Then I see status message "Timed Transcript Found"
|
||||
And I see value "video_name_1" in the field "Default Timed Transcript"
|
||||
After saving the changes video captions should be visible
|
||||
When I edit the component Then I see status message "Timed Transcript Found"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('http://youtu.be/t_not_exist', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('upload_new_timed_transcripts'))
|
||||
|
||||
self.video.set_url_field('video_name_1.mp4', 2)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.assertTrue(self.video.is_transcript_button_visible('upload_new_timed_transcripts'))
|
||||
self.video.upload_transcript('uk_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.video.clear_field(1)
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.open_advanced_tab()
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 'video_name_1'))
|
||||
self.save_unit_settings()
|
||||
self.assertTrue(self.video.is_captions_visible())
|
||||
self.edit_component()
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
|
||||
def test_advanced_tab_transcript_fields(self):
|
||||
"""
|
||||
Scenario: Change transcripts field in Advanced tab
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
|
||||
After I enter a "video_name_1.mp4" source to field number 1 Then I see status message "No Timed Transcript"
|
||||
Open tab "Advanced" and set value "t_not_exist" to the field "Default Timed Transcript"
|
||||
After saving the changes video captions should be visible
|
||||
When I edit the component Then I see status message "Timed Transcript Found"
|
||||
And I see value "video_name_1" in the field "Default Timed Transcript"
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_not_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('video_name_1.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.open_advanced_tab()
|
||||
self.video.set_field_value('Default Timed Transcript', 't_not_exist')
|
||||
self.save_unit_settings()
|
||||
self.assertTrue(self.video.is_captions_visible())
|
||||
self.edit_component()
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 'video_name_1'))
|
||||
|
||||
def test_non_ascii_transcripts(self):
|
||||
"""
|
||||
Scenario: Check non-ascii (chinese) transcripts
|
||||
Given I have created a Video component
|
||||
|
||||
After I enter a "video_name_1.mp4" source to field number 1 Then I see status message "No Timed Transcript"
|
||||
After I upload the transcripts "chinese_transcripts.srt" I see message "Timed Transcript Uploaded Successfully"
|
||||
After saving the changes video captions should be visible
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('video_name_1.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.video.upload_transcript('chinese_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.save_unit_settings()
|
||||
self.assertTrue(self.video.is_captions_visible())
|
||||
|
||||
def test_module_metadata_save(self):
|
||||
"""
|
||||
Scenario: Check saving module metadata on switching between tabs
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
|
||||
After I enter a "video_name_1.mp4" source to field number 1 I should see status message "No Timed Transcript"
|
||||
Open tab "Advanced" and set value "t_not_exist" to the field "Default Timed Transcript"
|
||||
When I open tab "Basic" Then I see status message "Timed Transcript Found"
|
||||
After saving the changes video captions should be visible
|
||||
When I edit the component I should see status message "Timed Transcript Found"
|
||||
And I see value "video_name_1" in the field "Default Timed Transcript"
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_not_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('video_name_1.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.open_advanced_tab()
|
||||
self.video.set_field_value('Default Timed Transcript', 't_not_exist')
|
||||
self.open_basic_tab()
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.save_unit_settings()
|
||||
self.assertTrue(self.video.is_captions_visible())
|
||||
self.edit_component()
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 'video_name_1'))
|
||||
|
||||
def test_clearing_transcripts_wo_save(self):
|
||||
"""
|
||||
Scenario: After clearing Transcripts field in the Advanced tab "not found" message should be visible w/o saving
|
||||
Given I have created a Video component
|
||||
|
||||
After I enter a "t_not_exist.mp4" source to field number 1 I should see status message "No Timed Transcript"
|
||||
After uploading transcripts "chinese_transcripts.srt" I see message "Timed Transcript Uploaded Successfully"
|
||||
Open tab "Advanced" and set value "" to the field "Default Timed Transcript"
|
||||
When I open tab "Basic" I see status message "No Timed Transcript"
|
||||
After saving the changes video captions should not be visible
|
||||
When I edit the component I should see status message "No Timed Transcript"
|
||||
And I see value "" in the field "Default Timed Transcript"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('t_not_exist.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.video.upload_transcript('chinese_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.open_advanced_tab()
|
||||
self.video.set_field_value('Default Timed Transcript', '')
|
||||
self.open_basic_tab()
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.save_unit_settings()
|
||||
self.assertFalse(self.video.is_captions_visible())
|
||||
self.edit_component()
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', ''))
|
||||
|
||||
def test_clearing_transcripts_w_save(self):
|
||||
"""
|
||||
Scenario: After clearing Transcripts field in the Advanced tab "not found" message should be visible with saving
|
||||
Given I have created a Video component
|
||||
|
||||
After I enter a "t_not_exist.mp4" source to field number 1 I see status message "No Timed Transcript"
|
||||
After uploading the transcripts "chinese_transcripts.srt" I see message "Timed Transcript Uploaded Successfully"
|
||||
After saving changes I see "好 各位同学" text in the captions
|
||||
And I edit the component
|
||||
Open tab "Advanced" I set value "" to the field "Default Timed Transcript"
|
||||
When I open tab "Basic" I see status message "No Timed Transcript"
|
||||
After saving the changes video captions should not be visible
|
||||
After I edit the component I should see status message "No Timed Transcript"
|
||||
And I see value "" in the field "Default Timed Transcript"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('t_not_exist.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.video.upload_transcript('chinese_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.save_unit_settings()
|
||||
unicode_text = "好 各位同学".decode('utf-8')
|
||||
self.assertIn(unicode_text, self.video.captions_text)
|
||||
self.edit_component()
|
||||
self.open_advanced_tab()
|
||||
self.video.set_field_value('Default Timed Transcript', '')
|
||||
self.open_basic_tab()
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.save_unit_settings()
|
||||
self.assertFalse(self.video.is_captions_visible())
|
||||
self.edit_component()
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', ''))
|
||||
|
||||
def test_video_w_existing_subtitles(self):
|
||||
"""
|
||||
Scenario: Video with existing subs - Advanced tab - change to another one subs -
|
||||
Basic tab - Found message - Save - see correct subs
|
||||
Given I have created a Video component with subtitles "t_not_exist"
|
||||
|
||||
After I enter a "video_name_1.mp4" source to field number 1 I see status message "No Timed Transcript"
|
||||
After uploading the transcripts "chinese_transcripts.srt" I see message "Timed Transcript Uploaded Successfully"
|
||||
After saving the changes video captions should be visible
|
||||
And I see "好 各位同学" text in the captions
|
||||
And I edit the component
|
||||
Open tab "Advanced" And set value "t_not_exist" to the field "Default Timed Transcript"
|
||||
When I open tab "Basic" I should see status message "Timed Transcript Found"
|
||||
After saving the changes video captions should be visible
|
||||
And I see "LILA FISHER: Hi, welcome to Edx." text in the captions
|
||||
"""
|
||||
self._create_video_component(subtitles=True, subtitle_id='t_not_exist')
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('video_name_1.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.video.upload_transcript('chinese_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.save_unit_settings()
|
||||
self.assertTrue(self.video.is_captions_visible())
|
||||
unicode_text = "好 各位同学".decode('utf-8')
|
||||
self.assertIn(unicode_text, self.video.captions_text)
|
||||
self.edit_component()
|
||||
self.open_advanced_tab()
|
||||
self.video.set_field_value('Default Timed Transcript', 't_not_exist')
|
||||
self.open_basic_tab()
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
self.save_unit_settings()
|
||||
self.assertTrue(self.video.is_captions_visible())
|
||||
self.assertIn('LILA FISHER: Hi, welcome to Edx.', self.video.captions_text)
|
||||
|
||||
def test_reverting_transcripts(self):
|
||||
"""
|
||||
Scenario: After reverting Transcripts field in the Advanced tab "not found" message should be visible
|
||||
Given I have created a Video component
|
||||
|
||||
After I enter a "t_not_exist.mp4" source to field number 1 Then I see status message "No Timed Transcript"
|
||||
After uploading transcripts "chinese_transcripts.srt" I see message "Timed Transcript Uploaded Successfully"
|
||||
After saving the changes I should see "好 各位同学" text in the captions
|
||||
After I edit the component I open tab "Advanced"
|
||||
And I revert the transcript field "Default Timed Transcript"
|
||||
After saving the changes video captions should not be visible
|
||||
After I edit the component I should see status message "No Timed Transcript"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('t_not_exist.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.video.upload_transcript('chinese_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.save_unit_settings()
|
||||
unicode_text = "好 各位同学".decode('utf-8')
|
||||
self.assertIn(unicode_text, self.video.captions_text)
|
||||
self.edit_component()
|
||||
self.open_advanced_tab()
|
||||
self.video.revert_field('Default Timed Transcript')
|
||||
self.save_unit_settings()
|
||||
self.assertFalse(self.video.is_captions_visible())
|
||||
self.edit_component()
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
|
||||
def test_upload_subtitles_w_different_names2(self):
|
||||
"""
|
||||
Scenario: File name and name of subs are different -- Uploading subtitles for file with periods
|
||||
in it should properly set the transcript name and keep the periods
|
||||
Given I have created a Video component
|
||||
|
||||
After I enter a "video_name_1.1.2.mp4" source to field number 1, I see status message "No Timed Transcript"
|
||||
After I upload the transcripts file "uk_transcripts.srt" I see message "Timed Transcript Uploaded Successfully"
|
||||
And I see value "video_name_1.1.2" in the field "Default Timed Transcript"
|
||||
After saving the changes video captions should be visible
|
||||
After I edit the component I should see status message "Timed Transcript Found"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('video_name_1.1.2.mp4', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.video.upload_transcript('uk_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.open_advanced_tab()
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 'video_name_1.1.2'))
|
||||
self.save_unit_settings()
|
||||
self.assertTrue(self.video.is_captions_visible())
|
||||
self.edit_component()
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
|
||||
def test_upload_subtitles_w_different_names3(self):
|
||||
"""
|
||||
Scenario: Shortened link: File name and name of subs are different
|
||||
Given I have created a Video component
|
||||
|
||||
After I enter a "http://goo.gl/pxxZrg" source to field number 1 Then I see status message "No Timed Transcript"
|
||||
After I upload the transcripts file "uk_transcripts.srt" I see message "Timed Transcript Uploaded Successfully"
|
||||
And I see value "pxxZrg" in the field "Default Timed Transcript"
|
||||
After saving the changes video captions should be visible
|
||||
After I edit the component I should see status message "Timed Transcript Found"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('http://goo.gl/pxxZrg', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.video.upload_transcript('uk_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.open_advanced_tab()
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 'pxxZrg'))
|
||||
self.save_unit_settings()
|
||||
self.assertTrue(self.video.is_captions_visible())
|
||||
self.edit_component()
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
|
||||
def test_upload_subtitles_w_different_names4(self):
|
||||
"""
|
||||
Scenario: Relative link: File name and name of subs are different
|
||||
Given I have created a Video component
|
||||
|
||||
After i enter a "/gizmo.webm" source to field number 1 Then I see status message "No Timed Transcript"
|
||||
After I upload the transcripts file "uk_transcripts.srt" I see message "Timed Transcript Uploaded Successfully"
|
||||
And I see value "gizmo" in the field "Default Timed Transcript"
|
||||
After saving the changes video captions should be visible
|
||||
After I edit the component I should see status message "Timed Transcript Found"
|
||||
"""
|
||||
self._create_video_component()
|
||||
self.edit_component()
|
||||
|
||||
self.video.set_url_field('/gizmo.webm', 1)
|
||||
self.assertEqual(self.video.message('status'), 'No Timed Transcript')
|
||||
self.video.upload_transcript('uk_transcripts.srt')
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Uploaded Successfully')
|
||||
self.open_advanced_tab()
|
||||
self.assertTrue(self.video.verify_field_value('Default Timed Transcript', 'gizmo'))
|
||||
self.save_unit_settings()
|
||||
self.assertTrue(self.video.is_captions_visible())
|
||||
self.edit_component()
|
||||
self.assertEqual(self.video.message('status'), 'Timed Transcript Found')
|
||||
|
||||
Reference in New Issue
Block a user