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):
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)
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)
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')