Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / page / actions / wait_unittest.py
index db3e1d4..b2214a5 100644 (file)
@@ -2,39 +2,53 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import time
-
 from telemetry.core import util
 from telemetry.page.actions import wait
-from telemetry.unittest import DisabledTestOnCrOS
 from telemetry.unittest import tab_test_case
+from telemetry.unittest import simple_mock
+
 
 class WaitActionTest(tab_test_case.TabTestCase):
-  @DisabledTestOnCrOS
   def testWaitAction(self):
-    self._browser.SetHTTPServerDirectories(util.GetUnittestDataDir())
-    self._tab.Navigate(
-      self._browser.http_server.UrlOf('blank.html'))
-    self._tab.WaitForDocumentReadyStateToBeComplete()
+    self.Navigate('blank.html')
     self.assertEquals(
         self._tab.EvaluateJavaScript('document.location.pathname;'),
         '/blank.html')
 
-    i = wait.WaitAction({ 'condition': 'duration', 'seconds': 1 })
+    mock_timer = simple_mock.MockTimer()
+    real_time_sleep = wait.time.sleep
+    wait.time.sleep = mock_timer.Sleep
+
+    try:
+      i = wait.WaitAction({ 'condition': 'duration', 'seconds': 1 })
 
-    start_time = time.time()
-    i.RunAction(None, self._tab, None)
-    self.assertTrue(time.time() - start_time >= 1.0)
+      i.RunAction(None, self._tab)
+      self.assertEqual(mock_timer.GetTime(), 1)
+    finally:
+      wait.time.sleep = real_time_sleep
 
   def testWaitActionTimeout(self):
-    wait_action = wait.WaitAction({
-      'condition': 'javascript',
-      'javascript': '1 + 1 === 3',
-      'timeout': 1
-    })
-
-    start_time = time.time()
-    self.assertRaises(
-        util.TimeoutException,
-        lambda: wait_action.RunAction(None, self._tab, None))
-    self.assertTrue(time.time() - start_time < 5)
+    mock_timer = simple_mock.MockTimer()
+    real_wait_time_sleep = wait.time.sleep
+    real_util_time_sleep = util.time.sleep
+    real_util_time_time = util.time.time
+
+    wait.time.sleep = mock_timer.Sleep
+    util.time.sleep = mock_timer.Sleep
+    util.time.time = mock_timer.GetTime
+
+    try:
+      wait_action = wait.WaitAction({
+        'condition': 'javascript',
+        'javascript': '1 + 1 === 3',
+        'timeout': 1
+      })
+
+      self.assertRaises(
+          util.TimeoutException,
+          lambda: wait_action.RunAction(None, self._tab))
+      self.assertLess(mock_timer.GetTime(), 5)
+    finally:
+      wait.time.sleep = real_wait_time_sleep
+      util.time.sleep = real_util_time_sleep
+      util.time.time = real_util_time_time