Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / core / tab_unittest.py
index e3b28ff..91bdb51 100644 (file)
@@ -4,17 +4,34 @@
 
 import logging
 
+from telemetry import test
 from telemetry.core import util
 from telemetry.core import exceptions
-from telemetry.unittest import DisabledTestOnCrOS
 from telemetry.unittest import tab_test_case
 
 
 def _IsDocumentVisible(tab):
-  hidden = tab.EvaluateJavaScript('document.hidden || document.webkitHidden')
-  # TODO(dtu): Remove when crbug.com/166243 is fixed.
-  tab.Disconnect()
-  return not hidden
+  return not tab.EvaluateJavaScript('document.hidden || document.webkitHidden')
+
+
+class FakePlatform(object):
+  def __init__(self):
+    self._is_video_capture_running = False
+
+  #pylint: disable=W0613
+  def StartVideoCapture(self, min_bitrate_mbps):
+    self._is_video_capture_running = True
+
+  def StopVideoCapture(self):
+    self._is_video_capture_running = False
+    return []
+
+  def SetFullPerformanceModeEnabled(self, enabled):
+    pass
+
+  @property
+  def is_video_capture_running(self):
+    return self._is_video_capture_running
 
 
 class TabTest(tab_test_case.TabTestCase):
@@ -41,7 +58,7 @@ class TabTest(tab_test_case.TabTestCase):
       logging.warning('Browser does not support tab control, skipping test.')
       return
 
-    self.assertTrue(_IsDocumentVisible(self._tab))
+    util.WaitFor(lambda: _IsDocumentVisible(self._tab), timeout=5)
     new_tab = self._browser.tabs.New()
     new_tab.Navigate('about:blank')
     util.WaitFor(lambda: _IsDocumentVisible(new_tab), timeout=5)
@@ -50,22 +67,46 @@ class TabTest(tab_test_case.TabTestCase):
     util.WaitFor(lambda: _IsDocumentVisible(self._tab), timeout=5)
     self.assertFalse(_IsDocumentVisible(new_tab))
 
+  def testTabUrl(self):
+    self.assertEquals(self._tab.url, 'about:blank')
+    self.Navigate('blank.html')
+    self.assertEquals(self._tab.url, self.test_url)
+
+  def testIsTimelineRecordingRunningTab(self):
+    self.assertFalse(self._tab.is_timeline_recording_running)
+    self._tab.StartTimelineRecording()
+    self.assertTrue(self._tab.is_timeline_recording_running)
+    self._tab.StopTimelineRecording()
+    self.assertFalse(self._tab.is_timeline_recording_running)
+
+  #pylint: disable=W0212
+  def testIsVideoCaptureRunning(self):
+    original_platform = self._tab.browser._platform
+    self._tab.browser._platform = FakePlatform()
+    self.assertFalse(self._tab.is_video_capture_running)
+    self._tab.StartVideoCapture(min_bitrate_mbps=2)
+    self.assertTrue(self._tab.is_video_capture_running)
+    try:
+      self._tab.StopVideoCapture().next()
+    except Exception:
+      pass
+    self.assertFalse(self._tab.is_video_capture_running)
+    self._tab.browser._platform = original_platform
+
 
 class GpuTabTest(tab_test_case.TabTestCase):
   def setUp(self):
     self._extra_browser_args = ['--enable-gpu-benchmarking']
     super(GpuTabTest, self).setUp()
 
-  @DisabledTestOnCrOS
+  # Test flaky on mac: http://crbug.com/358664
+  @test.Disabled('android', 'mac')
   def testScreenshot(self):
     if not self._tab.screenshot_supported:
       logging.warning('Browser does not support screenshots, skipping test.')
       return
 
-    self._browser.SetHTTPServerDirectories(util.GetUnittestDataDir())
-    self._tab.Navigate(
-      self._browser.http_server.UrlOf('green_rect.html'))
-    self._tab.WaitForDocumentReadyStateToBeComplete()
+    self.Navigate('green_rect.html')
     pixel_ratio = self._tab.EvaluateJavaScript('window.devicePixelRatio || 1')
 
     screenshot = self._tab.Screenshot(5)
@@ -76,23 +117,3 @@ class GpuTabTest(tab_test_case.TabTestCase):
         0, 255, 0, tolerance=2)
     screenshot.GetPixelColor(32 * pixel_ratio, 32 * pixel_ratio).AssertIsRGB(
         255, 255, 255, tolerance=2)
-
-  @DisabledTestOnCrOS
-  def testScreenshotSync(self):
-    if not self._tab.screenshot_supported:
-      logging.warning('Browser does not support screenshots, skipping test.')
-      return
-
-    self._browser.SetHTTPServerDirectories(util.GetUnittestDataDir())
-    self._tab.Navigate(
-      self._browser.http_server.UrlOf('screenshot_sync.html'))
-    self._tab.WaitForDocumentReadyStateToBeComplete()
-
-    def IsTestComplete():
-      return self._tab.EvaluateJavaScript('window.__testComplete')
-    util.WaitFor(IsTestComplete, 120)
-
-    message = self._tab.EvaluateJavaScript('window.__testMessage')
-    if message:
-      logging.error(message)
-    assert self._tab.EvaluateJavaScript('window.__testSuccess')