OLD | NEW |
| (Empty) |
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. | |
4 import os | |
5 | |
6 from telemetry import tab_test_case | |
7 from telemetry import tab_crash_exception | |
8 from telemetry import util | |
9 | |
10 | |
11 def _IsDocumentVisible(tab): | |
12 state = tab.EvaluateJavaScript('document.webkitVisibilityState') | |
13 # TODO(dtu): Remove when crbug.com/166243 is fixed. | |
14 tab.Disconnect() | |
15 return state == 'visible' | |
16 | |
17 | |
18 class TabTest(tab_test_case.TabTestCase): | |
19 def testNavigateAndWaitToForCompleteState(self): | |
20 self._tab.Navigate('http://www.google.com') | |
21 self._tab.WaitForDocumentReadyStateToBeComplete() | |
22 | |
23 def testNavigateAndWaitToForInteractiveState(self): | |
24 self._tab.Navigate('http://www.google.com') | |
25 self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter() | |
26 | |
27 def testTabBrowserIsRightBrowser(self): | |
28 self.assertEquals(self._tab.browser, self._browser) | |
29 | |
30 def testRendererCrash(self): | |
31 self.assertRaises(tab_crash_exception.TabCrashException, | |
32 lambda: self._tab.Navigate('chrome://crash', | |
33 timeout=5)) | |
34 | |
35 def testActivateTab(self): | |
36 if not self._browser.supports_tab_control: | |
37 return | |
38 self.assertTrue(_IsDocumentVisible(self._tab)) | |
39 new_tab = self._browser.tabs.New() | |
40 util.WaitFor(lambda: _IsDocumentVisible(new_tab), timeout=5) | |
41 self.assertFalse(_IsDocumentVisible(self._tab)) | |
42 self._tab.Activate() | |
43 util.WaitFor(lambda: _IsDocumentVisible(self._tab), timeout=5) | |
44 self.assertFalse(_IsDocumentVisible(new_tab)) | |
45 | |
46 | |
47 class GpuTabTest(tab_test_case.TabTestCase): | |
48 def setUp(self): | |
49 self._extra_browser_args = ['--enable-gpu-benchmarking'] | |
50 super(GpuTabTest, self).setUp() | |
51 | |
52 def testScreenshot(self): | |
53 unittest_data_dir = os.path.join(os.path.dirname(__file__), | |
54 '..', 'unittest_data') | |
55 self._browser.SetHTTPServerDirectory(unittest_data_dir) | |
56 self._tab.Navigate( | |
57 self._browser.http_server.UrlOf('green_rect.html')) | |
58 self._tab.WaitForDocumentReadyStateToBeComplete() | |
59 | |
60 # Skip this test if running against a browser without screenshot support | |
61 if self._tab.screenshot_supported: | |
62 screenshot = self._tab.Screenshot(5) | |
63 assert screenshot | |
64 screenshot.GetPixelColor(0, 0).AssertIsRGB(0, 255, 0) | |
65 screenshot.GetPixelColor(31, 31).AssertIsRGB(0, 255, 0) | |
66 screenshot.GetPixelColor(32, 32).AssertIsRGB(255, 255, 255) | |
OLD | NEW |