| Index: tools/telemetry/telemetry/page/actions/play_unittest.py
|
| diff --git a/tools/telemetry/telemetry/page/actions/play_unittest.py b/tools/telemetry/telemetry/page/actions/play_unittest.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d1fed083263e57b7398bdd7a8c4e386b61a1cfb6
|
| --- /dev/null
|
| +++ b/tools/telemetry/telemetry/page/actions/play_unittest.py
|
| @@ -0,0 +1,86 @@
|
| +# Copyright (c) 2013 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 os
|
| +
|
| +from telemetry.page.actions import play
|
| +from telemetry.unittest import tab_test_case
|
| +
|
| +
|
| +class PlayActionTest(tab_test_case.TabTestCase):
|
| +
|
| + def setUp(self):
|
| + tab_test_case.TabTestCase.setUp(self)
|
| + unittest_data_dir = os.path.join(os.path.dirname(__file__),
|
| + '..', '..', '..', 'unittest_data')
|
| + self._browser.SetHTTPServerDirectories(unittest_data_dir)
|
| + self._tab.Navigate(self._browser.http_server.UrlOf('video_test.html'))
|
| + self._tab.WaitForDocumentReadyStateToBeComplete()
|
| +
|
| + def testPlayWithNoSelector(self):
|
| + """Tests that with no selector Play action plays first video element."""
|
| + data = {'wait_for_playing': True}
|
| + action = play.PlayAction(data)
|
| + action.WillRunAction(None, self._tab)
|
| + # Both videos not playing before running action
|
| + self.assertFalse(self._tab.EvaluateJavaScript("""
|
| + window.__hasEventCompleted('video[id="video_1"]', 'playing');
|
| + """))
|
| + self.assertFalse(self._tab.EvaluateJavaScript("""
|
| + window.__hasEventCompleted('video[id="video_2"]', 'playing');
|
| + """))
|
| + action.RunAction(None, self._tab, None)
|
| + # Assert only first video has played.
|
| + self.assertTrue(self._tab.EvaluateJavaScript("""
|
| + window.__hasEventCompleted('video[id="video_1"]', 'playing');
|
| + """))
|
| + self.assertFalse(self._tab.EvaluateJavaScript("""
|
| + window.__hasEventCompleted('video[id="video_2"]', 'playing');
|
| + """))
|
| +
|
| + def testPlayWithVideoSelector(self):
|
| + """Tests that Play action plays video element matching selector."""
|
| + data = {'selector': 'video[id="video_2"]', 'wait_for_playing': True}
|
| + action = play.PlayAction(data)
|
| + action.WillRunAction(None, self._tab)
|
| + # Both videos not playing before running action
|
| + self.assertFalse(self._tab.EvaluateJavaScript("""
|
| + window.__hasEventCompleted('video[id="video_1"]', 'playing');
|
| + """))
|
| + self.assertFalse(self._tab.EvaluateJavaScript("""
|
| + window.__hasEventCompleted('video[id="video_2"]', 'playing');
|
| + """))
|
| + action.RunAction(None, self._tab, None)
|
| + # Assert only video matching selector has played.
|
| + self.assertFalse(self._tab.EvaluateJavaScript("""
|
| + window.__hasEventCompleted('video[id="video_1"]', 'playing');
|
| + """))
|
| + self.assertTrue(self._tab.EvaluateJavaScript("""
|
| + window.__hasEventCompleted('video[id="video_2"]', 'playing');
|
| + """))
|
| +
|
| + def testPlayWithAllSelector(self):
|
| + """Tests that Play action plays all video elements with selector='all'."""
|
| + # TODO(shadi): Write test case!
|
| + return True
|
| +
|
| + def testPlayDefaultAudio(self):
|
| + """Tests that Play action plays audio tags as well."""
|
| + # TODO(shadi): Write test case!
|
| + return True
|
| +
|
| + def testPlayWaitForPlay(self):
|
| + """Tests that wait_for_playing waits for video to play."""
|
| + # TODO(shadi): Write test case!
|
| + return True
|
| +
|
| + def testPlayWaitForEnded(self):
|
| + """Tests that wait_for_ended waits for video to end."""
|
| + # TODO(shadi): Write test case!
|
| + return True
|
| +
|
| + def testPlayWaitForEndedTimeout(self):
|
| + """Tests that action raises exception if timeout is reached."""
|
| + # TODO(shadi): Write test case!
|
| + return True
|
|
|