| Index: tools/telemetry/telemetry/internal/browser/tab_unittest.py
|
| diff --git a/tools/telemetry/telemetry/internal/browser/tab_unittest.py b/tools/telemetry/telemetry/internal/browser/tab_unittest.py
|
| deleted file mode 100644
|
| index 119e42e8bd667632294f0261518d6b1b7692218b..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/telemetry/internal/browser/tab_unittest.py
|
| +++ /dev/null
|
| @@ -1,206 +0,0 @@
|
| -# Copyright 2012 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 logging
|
| -import tempfile
|
| -
|
| -from telemetry.core import exceptions
|
| -from telemetry.core import util
|
| -from telemetry import decorators
|
| -from telemetry.internal.image_processing import video
|
| -from telemetry.testing import tab_test_case
|
| -from telemetry.timeline import model
|
| -from telemetry.timeline import tracing_config
|
| -from telemetry.util import image_util
|
| -from telemetry.util import rgba_color
|
| -
|
| -
|
| -def _IsDocumentVisible(tab):
|
| - return not tab.EvaluateJavaScript('document.hidden || document.webkitHidden')
|
| -
|
| -
|
| -class FakePlatformBackend(object):
|
| - def __init__(self):
|
| - self.platform = FakePlatform()
|
| -
|
| - def DidStartBrowser(self, _, _2):
|
| - pass
|
| -
|
| - def WillCloseBrowser(self, _, _2):
|
| - pass
|
| -
|
| -
|
| -class FakePlatform(object):
|
| - def __init__(self):
|
| - self._is_video_capture_running = False
|
| -
|
| - #pylint: disable=unused-argument
|
| - def StartVideoCapture(self, min_bitrate_mbps):
|
| - self._is_video_capture_running = True
|
| -
|
| - def StopVideoCapture(self):
|
| - self._is_video_capture_running = False
|
| - return video.Video(tempfile.NamedTemporaryFile())
|
| -
|
| - @property
|
| - def is_video_capture_running(self):
|
| - return self._is_video_capture_running
|
| -
|
| -
|
| -class TabTest(tab_test_case.TabTestCase):
|
| - def testNavigateAndWaitForCompleteState(self):
|
| - self._tab.Navigate(self.UrlOfUnittestFile('blank.html'))
|
| - self._tab.WaitForDocumentReadyStateToBeComplete()
|
| -
|
| - def testNavigateAndWaitForInteractiveState(self):
|
| - self._tab.Navigate(self.UrlOfUnittestFile('blank.html'))
|
| - self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
|
| -
|
| - def testTabBrowserIsRightBrowser(self):
|
| - self.assertEquals(self._tab.browser, self._browser)
|
| -
|
| - def testRendererCrash(self):
|
| - self.assertRaises(exceptions.DevtoolsTargetCrashException,
|
| - lambda: self._tab.Navigate('chrome://crash',
|
| - timeout=30))
|
| -
|
| - @decorators.Enabled('has tabs')
|
| - def testActivateTab(self):
|
| - 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)
|
| - self.assertFalse(_IsDocumentVisible(self._tab))
|
| - self._tab.Activate()
|
| - util.WaitFor(lambda: _IsDocumentVisible(self._tab), timeout=5)
|
| - self.assertFalse(_IsDocumentVisible(new_tab))
|
| -
|
| - def testTabUrl(self):
|
| - self.assertEquals(self._tab.url, 'about:blank')
|
| - url = self.UrlOfUnittestFile('blank.html')
|
| - self._tab.Navigate(url)
|
| - self.assertEquals(self._tab.url, url)
|
| -
|
| - #pylint: disable=protected-access
|
| - def testIsVideoCaptureRunning(self):
|
| - original_platform_backend = self._tab.browser._platform_backend
|
| - try:
|
| - self._tab.browser._platform_backend = FakePlatformBackend()
|
| - self.assertFalse(self._tab.is_video_capture_running)
|
| - self._tab.StartVideoCapture(min_bitrate_mbps=2)
|
| - self.assertTrue(self._tab.is_video_capture_running)
|
| - self.assertIsNotNone(self._tab.StopVideoCapture())
|
| - self.assertFalse(self._tab.is_video_capture_running)
|
| - finally:
|
| - self._tab.browser._platform_backend = original_platform_backend
|
| -
|
| - # Test failing on android: http://crbug.com/437057
|
| - # and mac: http://crbug.com/468675
|
| - @decorators.Disabled('android', 'chromeos', 'mac')
|
| - @decorators.Disabled('win') # crbug.com/570955
|
| - def testHighlight(self):
|
| - self.assertEquals(self._tab.url, 'about:blank')
|
| - config = tracing_config.TracingConfig()
|
| - config.SetNoOverheadFilter()
|
| - config.enable_chrome_trace = True
|
| - self._browser.platform.tracing_controller.StartTracing(config)
|
| - self._tab.Highlight(rgba_color.WEB_PAGE_TEST_ORANGE)
|
| - self._tab.ClearHighlight(rgba_color.WEB_PAGE_TEST_ORANGE)
|
| - trace_data = self._browser.platform.tracing_controller.StopTracing()
|
| - timeline_model = model.TimelineModel(trace_data)
|
| - renderer_thread = timeline_model.GetRendererThreadFromTabId(
|
| - self._tab.id)
|
| - found_video_start_event = False
|
| - for event in renderer_thread.async_slices:
|
| - if event.name == '__ClearHighlight.video_capture_start':
|
| - found_video_start_event = True
|
| - break
|
| - self.assertTrue(found_video_start_event)
|
| -
|
| - @decorators.Enabled('has tabs')
|
| - @decorators.Disabled('mac', 'linux') # crbug.com/499207.
|
| - @decorators.Disabled('win') # crbug.com/570955.
|
| - def testGetRendererThreadFromTabId(self):
|
| - self.assertEquals(self._tab.url, 'about:blank')
|
| - # Create 3 tabs. The third tab is closed before we call
|
| - # tracing_controller.StartTracing.
|
| - first_tab = self._tab
|
| - second_tab = self._browser.tabs.New()
|
| - second_tab.Navigate('about:blank')
|
| - second_tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
|
| - third_tab = self._browser.tabs.New()
|
| - third_tab.Navigate('about:blank')
|
| - third_tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
|
| - third_tab.Close()
|
| - config = tracing_config.TracingConfig()
|
| - config.SetNoOverheadFilter()
|
| - config.enable_chrome_trace = True
|
| - self._browser.platform.tracing_controller.StartTracing(config)
|
| - first_tab.ExecuteJavaScript('console.time("first-tab-marker");')
|
| - first_tab.ExecuteJavaScript('console.timeEnd("first-tab-marker");')
|
| - second_tab.ExecuteJavaScript('console.time("second-tab-marker");')
|
| - second_tab.ExecuteJavaScript('console.timeEnd("second-tab-marker");')
|
| - trace_data = self._browser.platform.tracing_controller.StopTracing()
|
| - timeline_model = model.TimelineModel(trace_data)
|
| -
|
| - # Assert that the renderer_thread of the first tab contains
|
| - # 'first-tab-marker'.
|
| - renderer_thread = timeline_model.GetRendererThreadFromTabId(
|
| - first_tab.id)
|
| - first_tab_markers = [
|
| - renderer_thread.IterAllSlicesOfName('first-tab-marker')]
|
| - self.assertEquals(1, len(first_tab_markers))
|
| -
|
| - # Close second tab and assert that the renderer_thread of the second tab
|
| - # contains 'second-tab-marker'.
|
| - second_tab.Close()
|
| - renderer_thread = timeline_model.GetRendererThreadFromTabId(
|
| - second_tab.id)
|
| - second_tab_markers = [
|
| - renderer_thread.IterAllSlicesOfName('second-tab-marker')]
|
| - self.assertEquals(1, len(second_tab_markers))
|
| -
|
| - # Third tab wasn't available when we start tracing, so there is no
|
| - # renderer_thread corresponding to it in the the trace.
|
| - self.assertIs(None, timeline_model.GetRendererThreadFromTabId(third_tab.id))
|
| -
|
| - @decorators.Disabled('android') # https://crbug.com/463933
|
| - def testTabIsAlive(self):
|
| - self.assertEquals(self._tab.url, 'about:blank')
|
| - self.assertTrue(self._tab.IsAlive())
|
| -
|
| - self._tab.Navigate(self.UrlOfUnittestFile('blank.html'))
|
| - self.assertTrue(self._tab.IsAlive())
|
| -
|
| - self.assertRaises(exceptions.DevtoolsTargetCrashException,
|
| - lambda: self._tab.Navigate(self.UrlOfUnittestFile('chrome://crash')))
|
| - self.assertFalse(self._tab.IsAlive())
|
| -
|
| -
|
| -class GpuTabTest(tab_test_case.TabTestCase):
|
| - @classmethod
|
| - def CustomizeBrowserOptions(cls, options):
|
| - options.AppendExtraBrowserArgs('--enable-gpu-benchmarking')
|
| -
|
| - # Test flaky on mac: crbug.com/358664, chromeos: crbug.com/483212.
|
| - @decorators.Disabled('android', 'mac', 'chromeos')
|
| - def testScreenshot(self):
|
| - if not self._tab.screenshot_supported:
|
| - logging.warning('Browser does not support screenshots, skipping test.')
|
| - return
|
| -
|
| - self.Navigate('green_rect.html')
|
| - pixel_ratio = self._tab.EvaluateJavaScript('window.devicePixelRatio || 1')
|
| -
|
| - screenshot = self._tab.Screenshot(5)
|
| - assert screenshot is not None
|
| - image_util.GetPixelColor(
|
| - screenshot, 0 * pixel_ratio, 0 * pixel_ratio).AssertIsRGB(
|
| - 0, 255, 0, tolerance=2)
|
| - image_util.GetPixelColor(
|
| - screenshot, 31 * pixel_ratio, 31 * pixel_ratio).AssertIsRGB(
|
| - 0, 255, 0, tolerance=2)
|
| - image_util.GetPixelColor(
|
| - screenshot, 32 * pixel_ratio, 32 * pixel_ratio).AssertIsRGB(
|
| - 255, 255, 255, tolerance=2)
|
|
|