Commit 5e133044 by Christine Lytwynec

add video a11y test

parent 5e524594
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
""" """
Acceptance tests for CMS Video Module. Acceptance tests for CMS Video Module.
""" """
import os
from mock import patch
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from unittest import skipIf from unittest import skipIf
from ...pages.studio.auto_auth import AutoAuthPage from ...pages.studio.auto_auth import AutoAuthPage
...@@ -42,6 +45,38 @@ class CMSVideoBaseTest(UniqueCourseTest): ...@@ -42,6 +45,38 @@ class CMSVideoBaseTest(UniqueCourseTest):
) )
self.assets = [] self.assets = []
self.addCleanup(YouTubeStubConfig.reset)
def _create_course_unit(self, youtube_stub_config=None, subtitles=False):
"""
Create a Studio Video Course Unit and Navigate to it.
Arguments:
youtube_stub_config (dict)
subtitles (bool)
"""
if youtube_stub_config:
YouTubeStubConfig.configure(youtube_stub_config)
if subtitles:
self.assets.append('subs_3_yD_cEKoCk.srt.sjson')
self.navigate_to_course_unit()
def _create_video(self):
"""
Create Xblock Video Component.
"""
self.video.create_video()
video_xblocks = self.video.xblocks()
# Total video xblock components count should be equals to 2
# Why 2? One video component is created by default for each test. Please see
# test_studio_video_module.py:CMSVideoTest._create_course_unit
# And we are creating second video component here.
self.assertTrue(video_xblocks == 2)
def _install_course_fixture(self): def _install_course_fixture(self):
""" """
...@@ -132,42 +167,6 @@ class CMSVideoTest(CMSVideoBaseTest): ...@@ -132,42 +167,6 @@ class CMSVideoTest(CMSVideoBaseTest):
CMS Video Test Class CMS Video Test Class
""" """
def setUp(self):
super(CMSVideoTest, self).setUp()
self.addCleanup(YouTubeStubConfig.reset)
def _create_course_unit(self, youtube_stub_config=None, subtitles=False):
"""
Create a Studio Video Course Unit and Navigate to it.
Arguments:
youtube_stub_config (dict)
subtitles (bool)
"""
if youtube_stub_config:
YouTubeStubConfig.configure(youtube_stub_config)
if subtitles:
self.assets.append('subs_3_yD_cEKoCk.srt.sjson')
self.navigate_to_course_unit()
def _create_video(self):
"""
Create Xblock Video Component.
"""
self.video.create_video()
video_xblocks = self.video.xblocks()
# Total video xblock components count should be equals to 2
# Why 2? One video component is created by default for each test. Please see
# test_studio_video_module.py:CMSVideoTest._create_course_unit
# And we are creating second video component here.
self.assertTrue(video_xblocks == 2)
def test_youtube_stub_proxy(self): def test_youtube_stub_proxy(self):
""" """
Scenario: YouTube stub server proxies YouTube API correctly Scenario: YouTube stub server proxies YouTube API correctly
...@@ -320,3 +319,31 @@ class CMSVideoTest(CMSVideoBaseTest): ...@@ -320,3 +319,31 @@ class CMSVideoTest(CMSVideoBaseTest):
self.save_unit_settings() self.save_unit_settings()
self.video.click_player_button('play') self.video.click_player_button('play')
@attr('a11y')
class CMSVideoA11yTest(CMSVideoBaseTest):
"""
CMS Video Accessibility Test Class
"""
def setUp(self):
browser = os.environ.get('SELENIUM_BROWSER', 'firefox')
# the a11y tests run in CI under phantomjs which doesn't
# support html5 video or flash player, so the video tests
# don't work in it. We still want to be able to run these
# tests in CI, so override the browser setting if it is
# phantomjs.
if browser == 'phantomjs':
browser = 'firefox'
with patch.dict(os.environ, {'SELENIUM_BROWSER': browser}):
super(CMSVideoA11yTest, self).setUp()
def test_video_player_a11y(self):
# Limit the scope of the audit to the video player only.
self.outline.a11y_audit.config.set_scope(include=["div.video"])
self._create_course_unit()
self.outline.a11y_audit.check_for_accessibility_errors()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment