1 # Copyright (c) 2012 The Chromium 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.
7 from telemetry.core import util
8 from telemetry.page.actions import wait
9 from telemetry.unittest import tab_test_case
11 class WaitActionTest(tab_test_case.TabTestCase):
12 def testWaitAction(self):
13 self._browser.SetHTTPServerDirectories(util.GetUnittestDataDir())
15 self._browser.http_server.UrlOf('blank.html'))
16 self._tab.WaitForDocumentReadyStateToBeComplete()
18 self._tab.EvaluateJavaScript('document.location.pathname;'),
21 i = wait.WaitAction({ 'condition': 'duration', 'seconds': 1 })
23 start_time = time.time()
24 i.RunAction(None, self._tab, None)
25 self.assertAlmostEqual(time.time() - start_time, 1, places=1)
27 def testWaitActionTimeout(self):
28 wait_action = wait.WaitAction({
29 'condition': 'javascript',
30 'javascript': '1 + 1 === 3',
34 start_time = time.time()
36 util.TimeoutException,
37 lambda: wait_action.RunAction(None, self._tab, None))
38 self.assertTrue(time.time() - start_time < 5)