1c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana# Copyright (c) 2013 The Chromium OS Authors. All rights reserved. 2c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana# Use of this source code is governed by a BSD-style license that can be 3c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana# found in the LICENSE file. 4c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 5c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 6c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasanafrom autotest_lib.client.bin import test, utils 7c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasanafrom autotest_lib.client.common_lib import error 8c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasanafrom autotest_lib.client.common_lib.cros import chrome 9c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasanafrom autotest_lib.client.cros import httpd 10c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasanafrom autotest_lib.client.cros.video import youtube_helper 11c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 12c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 13c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit MakasanaFLASH_PROCESS_NAME = 'chrome/chrome --type=ppapi' 14c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit MakasanaPLAYER_PLAYING_STATE = 'Playing' 15c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 16c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 17c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasanaclass video_YouTubeFlash(test.test): 18c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana """This test verify the YouTube Flash video. 19c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 20c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana - verify the video playback. 21c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana - verify the available video resolutions. 22c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana - verify the player functionalities. 23c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 24c9b1f4c0de874f63ce4b673eaf478e5539a0e17bRohit Makasana Note: please make sure that the test page uses nohtml5=1 flag for enforcing 25c9b1f4c0de874f63ce4b673eaf478e5539a0e17bRohit Makasana the player to play video in Flash mode. Same for html5=1 for html5 26c9b1f4c0de874f63ce4b673eaf478e5539a0e17bRohit Makasana mode. 27c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana """ 28c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana version = 2 29c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 30c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 31c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana def initialize(self): 32c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana self._testServer = httpd.HTTPListener(8000, docroot=self.bindir) 33c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana self._testServer.run() 34c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 35c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 36c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana def cleanup(self): 37c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana if self._testServer: 38c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana self._testServer.stop() 39c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 40c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 41c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana def run_youtube_tests(self, browser): 42c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana """Run YouTube Flash sanity tests. 43c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 44c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana @param browser: The Browser object to run the test with. 45c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 46c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana """ 476d9133decf1dd30a6f410445430e2fe569b4101aRohit Makasana tab = browser.tabs[0] 48c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana tab.Navigate('http://localhost:8000/youtube.html') 49c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana yh = youtube_helper.YouTubeHelper(tab) 50c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana # Waiting for test video to load. 51c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana yh.wait_for_player_state(PLAYER_PLAYING_STATE) 52c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana yh.set_video_duration() 53c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 54c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana # Verify that YouTube is running in Flash mode. 55f61287155c8060449dbaa8b78d328b781f016dc7Rohit Makasana prc = utils.get_process_list('chrome', '--type=ppapi( |$)') 56c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana if not prc: 57c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana raise error.TestFail('No Flash process is running.') 58c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 59c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana tab.ExecuteJavaScript('player.mute()') 60c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana yh.verify_video_playback() 61c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana yh.verify_video_resolutions() 62c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana yh.verify_player_states() 63c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 64c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana 65c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana def run_once(self): 665b35656e62acce8fd0fac341592670ad0145c8a9Ilja H. Friedel utils.verify_flash_installed() 67c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana with chrome.Chrome() as cr: 68c018b97e074c876c765ccfc4e9732a3d8c6a4cb8Rohit Makasana self.run_youtube_tests(cr.browser) 69