Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Unified Diff: chrome/test/functional/youtube.py

Issue 222873002: Remove pyauto tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/functional/webrtc_write_wsh.py ('k') | chrome/test/pyautolib/OWNERS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/functional/youtube.py
===================================================================
--- chrome/test/functional/youtube.py (revision 261231)
+++ chrome/test/functional/youtube.py (working copy)
@@ -1,273 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import re
-import time
-
-import pyauto_functional
-import pyauto
-import pyauto_errors
-import test_utils
-
-
-class YoutubeTestHelper():
- """Helper functions for Youtube tests.
-
- For sample usage, look at class YoutubeTest.
- """
-
- # YouTube player states
- is_unstarted = '-1'
- is_playing = '1'
- is_paused = '2'
- has_ended = '0'
- _pyauto = None
-
- def __init__(self, pyauto):
- self._pyauto = pyauto
-
- def IsFlashPluginEnabled(self):
- """Verify flash plugin availability and its state."""
- return [x for x in self._pyauto.GetPluginsInfo().Plugins() \
- if x['name'] == 'Shockwave Flash' and x['enabled']]
-
- def AssertPlayerState(self, state, msg):
- expected_regex = '^%s$' % state
- self.WaitForDomNode('id("playerState")', expected_value=expected_regex,
- msg=msg)
-
- def WaitUntilPlayerReady(self):
- """Verify that player is ready."""
- self.AssertPlayerState(state=self.is_unstarted,
- msg='Failed to load youtube player.')
-
- def GetPlayerState(self):
- """Returns a player state."""
- js = """
- var val = ytplayer.getPlayerState();
- window.domAutomationController.send(val + '');
- """
- return self._pyauto.ExecuteJavascript(js)
-
- def GetVideoInfo(self):
- """Returns Youtube video info."""
- youtube_apis = self._pyauto.GetPrivateInfo()['youtube_api']
- youtube_debug_text = youtube_apis['GetDebugText']
- return self._pyauto.ExecuteJavascript(
- 'window.domAutomationController.send(%s);' % youtube_debug_text)
-
- def GetVideoDroppedFrames(self):
- """Returns total Youtube video dropped frames.
-
- Returns:
- -1 if failed to get video frames from the video data
- """
- video_data = self._pyauto.GetVideoInfo()
- matched = re.search('droppedFrames=([\d\.]+)', video_data)
- if matched:
- return int(matched.group(1))
- else:
- return -1
-
- def GetVideoFrames(self):
- """Returns Youtube video frames/second.
-
- Returns:
- -1 if failed to get droppd frames from the video data.
- """
- video_data = self._pyauto.GetVideoInfo()
- matched = re.search('videoFps=([\d\.]+)', video_data)
- if matched:
- return int(matched.group(1))
- else:
- return -1
-
- def GetVideoTotalBytes(self):
- """Returns video total size in bytes.
-
- To call this function, video must be in the paying state,
- or this returns 0.
- """
- total_bytes = 0
- total_bytes = self._pyauto.ExecuteJavascript("""
- bytesTotal = document.getElementById("bytesTotal");
- window.domAutomationController.send(bytesTotal.innerHTML);
- """)
- return int(total_bytes)
-
- def GetVideoLoadedBytes(self):
- """Returns video size in bytes."""
- loaded_bytes = 0
- loaded_bytes = self.ExecuteJavascript("""
- bytesLoaded = document.getElementById("bytesLoaded");
- window.domAutomationController.send(bytesLoaded.innerHTML);
- """)
- return int(loaded_bytes)
-
- def GetCurrentVideoTime(self):
- """Returns the current time of the video in seconds."""
- current_time = 0
- current_time = self.ExecuteJavascript("""
- videoCurrentTime = document.getElementById("videoCurrentTime");
- window.domAutomationController.send(videoCurrentTime.innerHTML);
- """)
- return int(current_time)
-
- def PlayVideo(self):
- """Plays the loaded video."""
- self._pyauto.ExecuteJavascript("""
- ytplayer.playVideo();
- window.domAutomationController.send('');
- """)
-
- def StopVideo(self):
- """Stops the video and cancels loading."""
- self._pyauto.ExecuteJavascript("""
- ytplayer.stopVideo();
- window.domAutomationController.send('');
- """)
-
- def PauseVideo(self):
- """Pause the video."""
- self.ExecuteJavascript("""
- ytplayer.pauseVideo();
- window.domAutomationController.send('');
- """)
-
- def PlayVideoAndAssert(self, youtube_video='zuzaxlddWbk',
- ignore_assert=False):
- """Start video and assert the playing state.
-
- By default test uses http://www.youtube.com/watch?v=zuzaxlddWbki.
-
- Args:
- youtube_video: The string ID of the youtube video to play.
- ignore_assert: flag to ignore the assertion and continue the test.
- """
- self._pyauto.assertTrue(self._pyauto.IsFlashPluginEnabled(),
- msg='From here Flash plugin is disabled or not available.')
- url = self._pyauto.GetHttpURLForDataPath(
- 'media', 'youtube.html?video=' + youtube_video)
- self._pyauto.NavigateToURL(url)
- self.WaitUntilPlayerReady()
- i = 0
- # The YouTube player will get in a state where it does not return the
- # number of loaded bytes. When this happens we need to reload the page
- # before starting the test.
- while self.GetVideoLoadedBytes() == 1 and i < 30:
- self._pyauto.NavigateToURL(url)
- self.WaitUntilPlayerReady()
- i = i + 1
- self.PlayVideo()
- if ignore_assert:
- return self.is_playing
- self.AssertPlayerState(state=self.is_playing,
- msg='Player did not enter the playing state.')
-
- def VideoBytesLoadingAndAssert(self):
- """Assert the video loading."""
- total_bytes = self.GetVideoTotalBytes()
- prev_loaded_bytes = 0
- loaded_bytes = 0
- count = 0
- while loaded_bytes < total_bytes:
- # We want to test bytes loading only twice
- count = count + 1
- if count == 2:
- break
- loaded_bytes = self.GetVideoLoadedBytes()
- self.assertTrue(prev_loaded_bytes <= loaded_bytes)
- prev_loaded_bytes = loaded_bytes
- # Give some time to load a video
- time.sleep(1)
-
- def PlayFAVideo(self):
- """Play and assert FA video playing.
-
- We are using multiple test videos in case any FA video playback fails
- becuase other tests are palying the same video and the test gets the
- simultaneous playback error.
- """
- fa_videos = ('APRpcscmbY0', 'yQqvrED-np0', 'KJuFw6hQdNY',
- 'BeFQbgxr_9g', 'L6JwlOudqA4')
- credentials = self.GetPrivateInfo()['test_fa_account']
- test_utils.GoogleAccountsLogin(self,
- credentials['username'], credentials['password'])
- for video in fa_videos:
- result = self.PlayVideoAndAssert(video, ignore_assert=True)
- if result is self.is_playing:
- return
- self.assertTrue(False, msg='Player did not enter the playing state.')
-
-
-class YoutubeTest(pyauto.PyUITest, YoutubeTestHelper):
- """Test case for Youtube videos."""
-
- def __init__(self, methodName='runTest', **kwargs):
- pyauto.PyUITest.__init__(self, methodName, **kwargs)
- YoutubeTestHelper.__init__(self, self)
-
- def testPlayerStatus(self):
- """Test that YouTube loads a player and changes player states.
-
- Test verifies various player states like unstarted, playing, paused
- and ended.
- """
- # Navigating to Youtube video. This video is 122 seconds long.
- # During tests, we are not goinig to play this video full.
- self.PlayVideoAndAssert()
- self.PauseVideo()
- self.AssertPlayerState(state=self.is_paused,
- msg='Player did not enter the paused state.')
- # Seek to the end of video
- self.ExecuteJavascript("""
- val = ytplayer.getDuration();
- ytplayer.seekTo(val, true);
- window.domAutomationController.send('');
- """)
- self.PlayVideo()
- # We've seeked to almost the end of the video but not quite.
- # Wait until the end.
- self.AssertPlayerState(state=self.has_ended,
- msg='Player did not reach the stopped state.')
-
- def testPlayerResolution(self):
- """Test various video resolutions."""
- self.PlayVideoAndAssert()
- resolutions = self.ExecuteJavascript("""
- res = ytplayer.getAvailableQualityLevels();
- window.domAutomationController.send(res.toString());
- """)
- resolutions = resolutions.split(',')
- for res in resolutions:
- self.ExecuteJavascript("""
- ytplayer.setPlaybackQuality('%s');
- window.domAutomationController.send('');
- """ % res)
- curr_res = self.ExecuteJavascript("""
- res = ytplayer.getPlaybackQuality();
- window.domAutomationController.send(res + '');
- """)
- self.assertEqual(res, curr_res, msg='Resolution is not set to %s.' % res)
-
- def testPlayerBytes(self):
- """Test that player downloads video bytes."""
- self.PlayVideoAndAssert()
- self.VideoBytesLoadingAndAssert()
-
- def testFAVideo(self):
- """Test that FlashAccess/DRM video plays."""
- self.PlayFAVideo()
- self.StopVideo()
-
- def testFAVideoBytes(self):
- """Test FlashAccess/DRM video bytes loading."""
- self.PlayFAVideo()
- self.VideoBytesLoadingAndAssert()
- self.StopVideo()
-
-
-if __name__ == '__main__':
- pyauto_functional.Main()
« no previous file with comments | « chrome/test/functional/webrtc_write_wsh.py ('k') | chrome/test/pyautolib/OWNERS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698