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

Unified Diff: chrome/test/functional/netflix.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/nacl_sdk.py ('k') | chrome/test/functional/ntp.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/functional/netflix.py
===================================================================
--- chrome/test/functional/netflix.py (revision 261231)
+++ chrome/test/functional/netflix.py (working copy)
@@ -1,256 +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 logging
-import os
-import time
-
-import pyauto_functional
-import pyauto
-import test_utils
-
-
-class NetflixTestHelper():
- """Helper functions for Netflix tests.
-
- For sample usage, look at class NetflixTest.
- """
-
- # Netflix player states.
- IS_GUEST_MODE_ERROR = '0'
- IS_PLAYING = '4'
-
- TITLE_HOMEPAGE = 'http://movies.netflix.com/WiHome'
- SIGNOUT_PAGE = 'https://account.netflix.com/Logout'
- # 30 Rock.
- VIDEO_URL = 'https://movies.netflix.com/WiPlayer?movieid=70136124'
- ALT_VIDEO_URL = 'https://movies.netflix.com/WiPlayer?movieid=70133713'
- _pyauto = None
-
- def __init__(self, pyauto):
- self._pyauto = pyauto
-
- def _IsNetflixPluginEnabled(self):
- """Determine Netflix plugin availability and its state."""
- return [x for x in self._pyauto.GetPluginsInfo().Plugins() \
- if x['name'] == 'Netflix' and x['enabled']]
-
- def _LoginToNetflix(self):
- """Login to Netflix."""
- credentials = self._pyauto.GetPrivateInfo()['test_netflix_acct']
- board_name = self._pyauto.ChromeOSBoard()
- assert credentials.get(board_name), \
- 'No netflix credentials for %s.' % board_name
- self._pyauto.NavigateToURL(credentials['login_url'])
- login_js = """
- document.getElementById('email').value='%s';
- document.getElementById('password').value='%s';
- window.domAutomationController.send('ok');
- """ % (credentials[board_name], credentials['password'])
- self._pyauto.assertEqual(self._pyauto.ExecuteJavascript(login_js), 'ok',
- msg='Failed to set login credentials.')
- self._pyauto.assertTrue(self._pyauto.SubmitForm('login-form'),
- msg='Login to Netflix failed. We think this is an authetication '
- 'problem from the Netflix side. Sometimes we also see this while '
- 'login in manually.')
-
- def _GetVideoDroppedFrames(self, tab_index=0, windex=0):
- """Returns total Netflix video dropped frames."""
- js = """
- var frames = nrdp.video.droppedFrames;
- window.domAutomationController.send(frames + '');
- """
- return int(self._pyauto.ExecuteJavascript(js, tab_index=tab_index,
- windex=windex))
-
- def _GetVideoFrames(self, tab_index=0, windex=0):
- """Returns Netflix video total frames."""
- js = """
- var frames = nrdp.video.totalFrames;
- window.domAutomationController.send(frames + '');
- """
- return int(self._pyauto.ExecuteJavascript(js, tab_index=tab_index,
- windex=windex))
-
- def _HandleInfobars(self, err_msg):
- """Manage infobars that come up during the test."""
- def _HandleNetflixInfobar():
- tab_info = self._pyauto.GetBrowserInfo()['windows'][0]['tabs'][0]
- infobars = tab_info['infobars']
- index = 0
- for infobar in infobars:
- if 'netflix' in infobar['text']:
- # After storage infobar pops up, clicking the Ok button immediately
- # returns the Storage error on faster machines like Stumpy/Lumpy so
- # adding a delay of 1 second here.
- time.sleep(1)
- self._pyauto.PerformActionOnInfobar('accept', infobar_index=index)
- return True
- index = index + 1
- return False
- self._pyauto.assertTrue(self._pyauto.WaitUntil(_HandleNetflixInfobar),
- msg=err_msg)
-
- def CurrentPlaybackTime(self):
- """Returns the current playback time in seconds."""
- time = self._pyauto.ExecuteJavascript("""
- time = nrdp.video.currentTime;
- window.domAutomationController.send(time + '');
- """)
- return int(float(time))
-
- def SignOut(self):
- """Sign out from Netflix Login."""
- self._pyauto.NavigateToURL(self.SIGNOUT_PAGE)
-
- def LoginAndStartPlaying(self):
- """Login and start playing the video."""
- self._pyauto.assertTrue(self._pyauto._IsNetflixPluginEnabled(),
- msg='Netflix plugin is disabled or not available.')
- self._pyauto._LoginToNetflix()
- self._pyauto.assertTrue(self._pyauto.WaitUntil(
- lambda: self._pyauto.GetActiveTabURL().spec(),
- expect_retval=self.TITLE_HOMEPAGE),
- msg='Login to Netflix failed.')
- self._pyauto.NavigateToURL(self.VIDEO_URL)
- self._pyauto._HandleInfobars(err_msg='Netflix infobar did not show up')
-
- def CheckNetflixPlaying(self, expected_result, error_msg):
- """Check if Netflix is playing the video or not.
-
- Args:
- expected_result: expected return value from Netflix player.
- error_msg: If expected value isn't matching, error message to throw.
- """
- self._pyauto.assertTrue(self._pyauto.WaitUntil(
- lambda: self._pyauto.ExecuteJavascript("""
- if (typeof nrdp == 'undefined') {
- window.domAutomationController.send('not ready');
- }
- player_status = nrdp.video.readyState;
- window.domAutomationController.send(player_status + '');
- """), expect_retval=expected_result),
- msg=error_msg)
-
-
-class NetflixTest(pyauto.PyUITest, NetflixTestHelper):
- """Test case for Netflix player."""
-
- def __init__(self, methodName='runTest', **kwargs):
- pyauto.PyUITest.__init__(self, methodName, **kwargs)
- NetflixTestHelper.__init__(self, self)
-
- def ShouldAutoLogin(self):
- return False
-
- def _Login(self):
- """Perform login"""
- credentials = self.GetPrivateInfo()['test_google_account']
- self.Login(credentials['username'], credentials['password'])
- logging.info('Logged in as %s' % credentials['username'])
- login_info = self.GetLoginInfo()
- self.assertTrue(login_info['is_logged_in'], msg='Login failed.')
- self.assertFalse(login_info['is_guest'],
- msg='Should not be logged in as guest.')
-
- def setUp(self):
- assert os.geteuid() == 0, 'Run test as root since we might need to logout'
- pyauto.PyUITest.setUp(self)
- if self.GetLoginInfo()['is_logged_in']:
- self.Logout()
- self._Login()
-
- def tearDown(self):
- self.SignOut()
- pyauto.PyUITest.tearDown(self)
-
- def testPlayerLoadsAndPlays(self):
- """Test that Netflix player loads and plays the title."""
- self.LoginAndStartPlaying()
- self._HandleInfobars(err_msg='Netflix plugin access infobar did not show up')
- self.CheckNetflixPlaying(self.IS_PLAYING,
- 'Player did not start playing the title.')
-
- def testMultiplePlayback(self):
- """Test that playing two titles, Netflix returns multiple play error."""
- self.LoginAndStartPlaying()
- self._HandleInfobars(err_msg='Netflix plugin access infobar did not show up')
- self.CheckNetflixPlaying(self.IS_PLAYING,
- 'Player did not start playing the title.')
- self.AppendTab(self.ALT_VIDEO_URL)
- self.assertTrue('Multiple Play Error' in self.GetTabContents(),
- msg='Multiple Play Error is not found on the page.')
-
- def testPlaying(self):
- """Test that title playing progresses."""
- self.LoginAndStartPlaying()
- self._HandleInfobars(err_msg='Netflix plugin access infobar did not show up')
- self.CheckNetflixPlaying(self.IS_PLAYING,
- 'Player did not start playing the title.')
- title_length = self.ExecuteJavascript("""
- time = nrdp.video.duration;
- window.domAutomationController.send(time + '');
- """)
- title_length = int(float(title_length))
- prev_time = 0
- current_time = 0
- count = 0
- while current_time < title_length:
- # We want to test playing only for ten seconds.
- count = count + 1
- if count == 10:
- break
- current_time = self.CurrentPlaybackTime()
- self.assertTrue(prev_time <= current_time,
- msg='Prev playing time %s is greater than current time %s.'
- % (prev_time, current_time))
- prev_time = current_time
- # play video for some time
- time.sleep(1)
- # In case player doesn't start playing at all, above while loop may
- # still pass. So re-verifying and assuming that player did play something
- # during last 10 seconds.
- self.assertTrue(current_time > 0,
- msg='Netflix player did not start playing.')
-
-
-class NetflixGuestModeTest(pyauto.PyUITest, NetflixTestHelper):
- """Netflix in guest mode."""
-
- def __init__(self, methodName='runTest', **kwargs):
- pyauto.PyUITest.__init__(self, methodName, **kwargs)
- NetflixTestHelper.__init__(self, self)
-
- def setUp(self):
- assert os.geteuid() == 0, 'Run test as root since we might need to logout'
- pyauto.PyUITest.setUp(self)
- if self.GetLoginInfo()['is_logged_in']:
- self.Logout()
- self.LoginAsGuest()
- login_info = self.GetLoginInfo()
- self.assertTrue(login_info['is_logged_in'], msg='Not logged in at all.')
- self.assertTrue(login_info['is_guest'], msg='Not logged in as guest.')
-
- def ShouldAutoLogin(self):
- return False
-
- def tearDown(self):
- self.AppendTab(self.SIGNOUT_PAGE)
- self.Logout()
- pyauto.PyUITest.tearDown(self)
-
- def testGuestMode(self):
- """Test that Netflix doesn't play in guest mode login."""
- self.LoginAndStartPlaying()
- self.CheckNetflixPlaying(
- self.IS_GUEST_MODE_ERROR,
- 'Netflix player did not return a Guest mode error.')
- # crosbug.com/p/14009
- self.assertTrue('Netflix Video Player Unavailable' in self.GetTabContents(),
- msg='Guest Mode error is not found on the page.')
-
-
-if __name__ == '__main__':
- pyauto_functional.Main()
« no previous file with comments | « chrome/test/functional/nacl_sdk.py ('k') | chrome/test/functional/ntp.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698