Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: tools/telemetry/telemetry/core/tab_unittest.py

Issue 469593002: [telemetry] Create BrowserTestCase to reuse the browser for browser_unittest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update page_test_test_case references in tools/perf/ Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright 2012 The Chromium Authors. All rights reserved. 1 # Copyright 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import logging 5 import logging
6 import tempfile 6 import tempfile
7 7
8 from telemetry import benchmark 8 from telemetry import benchmark
9 from telemetry.core import bitmap 9 from telemetry.core import bitmap
10 from telemetry.core import exceptions 10 from telemetry.core import exceptions
(...skipping 30 matching lines...) Expand all
41 def StopVideoCapture(self): 41 def StopVideoCapture(self):
42 self._is_video_capture_running = False 42 self._is_video_capture_running = False
43 return video.Video(tempfile.NamedTemporaryFile()) 43 return video.Video(tempfile.NamedTemporaryFile())
44 44
45 @property 45 @property
46 def is_video_capture_running(self): 46 def is_video_capture_running(self):
47 return self._is_video_capture_running 47 return self._is_video_capture_running
48 48
49 49
50 class TabTest(tab_test_case.TabTestCase): 50 class TabTest(tab_test_case.TabTestCase):
51 def testNavigateAndWaitToForCompleteState(self): 51 def testNavigateAndWaitForCompleteState(self):
52 self._browser.SetHTTPServerDirectories(util.GetUnittestDataDir()) 52 self._tab.Navigate(self.UrlOfUnittestFile('blank.html'))
53 self._tab.Navigate(self._browser.http_server.UrlOf('blank.html'))
54 self._tab.WaitForDocumentReadyStateToBeComplete() 53 self._tab.WaitForDocumentReadyStateToBeComplete()
55 54
56 def testNavigateAndWaitToForInteractiveState(self): 55 def testNavigateAndWaitForInteractiveState(self):
57 self._browser.SetHTTPServerDirectories(util.GetUnittestDataDir()) 56 self._tab.Navigate(self.UrlOfUnittestFile('blank.html'))
58 self._tab.Navigate(self._browser.http_server.UrlOf('blank.html'))
59 self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter() 57 self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
60 58
61 def testTabBrowserIsRightBrowser(self): 59 def testTabBrowserIsRightBrowser(self):
62 self.assertEquals(self._tab.browser, self._browser) 60 self.assertEquals(self._tab.browser, self._browser)
63 61
64 def testRendererCrash(self): 62 def testRendererCrash(self):
65 self.assertRaises(exceptions.TabCrashException, 63 self.assertRaises(exceptions.TabCrashException,
66 lambda: self._tab.Navigate('chrome://crash', 64 lambda: self._tab.Navigate('chrome://crash',
67 timeout=5)) 65 timeout=5))
68 66
69 @benchmark.Enabled('has tabs') 67 @benchmark.Enabled('has tabs')
70 def testActivateTab(self): 68 def testActivateTab(self):
71 util.WaitFor(lambda: _IsDocumentVisible(self._tab), timeout=5) 69 util.WaitFor(lambda: _IsDocumentVisible(self._tab), timeout=5)
72 new_tab = self._browser.tabs.New() 70 new_tab = self._browser.tabs.New()
73 new_tab.Navigate('about:blank') 71 new_tab.Navigate('about:blank')
74 util.WaitFor(lambda: _IsDocumentVisible(new_tab), timeout=5) 72 util.WaitFor(lambda: _IsDocumentVisible(new_tab), timeout=5)
75 self.assertFalse(_IsDocumentVisible(self._tab)) 73 self.assertFalse(_IsDocumentVisible(self._tab))
76 self._tab.Activate() 74 self._tab.Activate()
77 util.WaitFor(lambda: _IsDocumentVisible(self._tab), timeout=5) 75 util.WaitFor(lambda: _IsDocumentVisible(self._tab), timeout=5)
78 self.assertFalse(_IsDocumentVisible(new_tab)) 76 self.assertFalse(_IsDocumentVisible(new_tab))
79 77
80 def testTabUrl(self): 78 def testTabUrl(self):
81 self.assertEquals(self._tab.url, 'about:blank') 79 self.assertEquals(self._tab.url, 'about:blank')
82 self.Navigate('blank.html') 80 url = self.UrlOfUnittestFile('blank.html')
83 self.assertEquals(self._tab.url, self.test_url) 81 self._tab.Navigate(url)
82 self.assertEquals(self._tab.url, url)
84 83
85 def testIsTimelineRecordingRunningTab(self): 84 def testIsTimelineRecordingRunningTab(self):
86 self.assertFalse(self._tab.is_timeline_recording_running) 85 self.assertFalse(self._tab.is_timeline_recording_running)
87 self._tab.StartTimelineRecording() 86 self._tab.StartTimelineRecording()
88 self.assertTrue(self._tab.is_timeline_recording_running) 87 self.assertTrue(self._tab.is_timeline_recording_running)
89 self._tab.StopTimelineRecording() 88 self._tab.StopTimelineRecording()
90 self.assertFalse(self._tab.is_timeline_recording_running) 89 self.assertFalse(self._tab.is_timeline_recording_running)
91 90
92 #pylint: disable=W0212 91 #pylint: disable=W0212
93 def testIsVideoCaptureRunning(self): 92 def testIsVideoCaptureRunning(self):
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 renderer_thread.IterAllSlicesOfName('second-tab-marker')] 156 renderer_thread.IterAllSlicesOfName('second-tab-marker')]
158 self.assertEquals(1, len(second_tab_markers)) 157 self.assertEquals(1, len(second_tab_markers))
159 158
160 # Third tab wasn't available when we start tracing, so there is no 159 # Third tab wasn't available when we start tracing, so there is no
161 # renderer_thread corresponding to it in the the trace. 160 # renderer_thread corresponding to it in the the trace.
162 self.assertIs(None, timeline_model.GetRendererThreadFromTabId(third_tab.id)) 161 self.assertIs(None, timeline_model.GetRendererThreadFromTabId(third_tab.id))
163 162
164 163
165 class GpuTabTest(tab_test_case.TabTestCase): 164 class GpuTabTest(tab_test_case.TabTestCase):
166 @classmethod 165 @classmethod
167 def setUpClass(cls): 166 def CustomizeBrowserOptions(cls, options):
168 cls._extra_browser_args = ['--enable-gpu-benchmarking'] 167 options.AppendExtraBrowserArgs('--enable-gpu-benchmarking')
169 super(GpuTabTest, cls).setUpClass()
170 168
171 # Test flaky on mac: http://crbug.com/358664 169 # Test flaky on mac: http://crbug.com/358664
172 @benchmark.Disabled('android', 'mac') 170 @benchmark.Disabled('android', 'mac')
173 def testScreenshot(self): 171 def testScreenshot(self):
174 if not self._tab.screenshot_supported: 172 if not self._tab.screenshot_supported:
175 logging.warning('Browser does not support screenshots, skipping test.') 173 logging.warning('Browser does not support screenshots, skipping test.')
176 return 174 return
177 175
178 self.Navigate('green_rect.html') 176 self.Navigate('green_rect.html')
179 pixel_ratio = self._tab.EvaluateJavaScript('window.devicePixelRatio || 1') 177 pixel_ratio = self._tab.EvaluateJavaScript('window.devicePixelRatio || 1')
180 178
181 screenshot = self._tab.Screenshot(5) 179 screenshot = self._tab.Screenshot(5)
182 assert screenshot 180 assert screenshot
183 screenshot.GetPixelColor(0 * pixel_ratio, 0 * pixel_ratio).AssertIsRGB( 181 screenshot.GetPixelColor(0 * pixel_ratio, 0 * pixel_ratio).AssertIsRGB(
184 0, 255, 0, tolerance=2) 182 0, 255, 0, tolerance=2)
185 screenshot.GetPixelColor(31 * pixel_ratio, 31 * pixel_ratio).AssertIsRGB( 183 screenshot.GetPixelColor(31 * pixel_ratio, 31 * pixel_ratio).AssertIsRGB(
186 0, 255, 0, tolerance=2) 184 0, 255, 0, tolerance=2)
187 screenshot.GetPixelColor(32 * pixel_ratio, 32 * pixel_ratio).AssertIsRGB( 185 screenshot.GetPixelColor(32 * pixel_ratio, 32 * pixel_ratio).AssertIsRGB(
188 255, 255, 255, tolerance=2) 186 255, 255, 255, tolerance=2)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698