Home | History | Annotate | Download | only in video_YouTubeHTML5
      1 # Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 
      6 from autotest_lib.client.bin import test, utils
      7 from autotest_lib.client.common_lib import error
      8 from autotest_lib.client.common_lib.cros import chrome
      9 from autotest_lib.client.cros import httpd
     10 from autotest_lib.client.cros.video import youtube_helper
     11 
     12 
     13 FLASH_PROCESS_NAME = 'chrome/chrome --type=ppapi'
     14 PLAYER_PLAYING_STATE = 'Playing'
     15 
     16 
     17 class video_YouTubeHTML5(test.test):
     18     """This test verify the YouTube HTML5 video.
     19 
     20     - verify the video playback.
     21     - verify the available video resolutions.
     22     - verify the player functionalities.
     23 
     24     """
     25     version = 2
     26 
     27 
     28     def initialize(self):
     29         self._testServer = httpd.HTTPListener(8000, docroot=self.bindir)
     30         self._testServer.run()
     31 
     32 
     33     def cleanup(self):
     34         if self._testServer:
     35             self._testServer.stop()
     36 
     37 
     38     def run_youtube_tests(self, browser):
     39         """Run YouTube HTML5 sanity tests.
     40 
     41         @param browser: The Browser object to run the test with.
     42 
     43         """
     44         tab = browser.tabs[0]
     45         tab.Navigate('http://localhost:8000/youtube5.html')
     46         yh = youtube_helper.YouTubeHelper(tab)
     47         # Waiting for test video to load.
     48         yh.wait_for_player_state(PLAYER_PLAYING_STATE)
     49 
     50         # Set tiny resolution to prevent inadvertently caching a higher
     51         # bandwidth stream which taints resolution verification.
     52         yh.set_playback_quality('tiny')
     53         yh.set_video_duration()
     54 
     55         # Verify that YouTube is running in html5 mode.
     56         prc = utils.get_process_list('chrome', '--type=ppapi( |$)')
     57         if prc:
     58             raise error.TestFail('Running YouTube in Flash mode. '
     59                                  'Process list: %s.' % prc)
     60 
     61         tab.ExecuteJavaScript('player.mute()')
     62         yh.verify_video_playback()
     63         yh.verify_video_resolutions()
     64         yh.verify_player_states()
     65 
     66 
     67     def run_once(self):
     68         with chrome.Chrome() as cr:
     69             self.run_youtube_tests(cr.browser)
     70