| OLD | NEW |
| 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 os | 6 import os |
| 7 import shutil | 7 import shutil |
| 8 import tempfile | 8 import tempfile |
| 9 import unittest | 9 import unittest |
| 10 | 10 |
| 11 from telemetry.core import util | 11 from telemetry.core import util |
| 12 from telemetry.core import exceptions |
| 12 from telemetry import decorators | 13 from telemetry import decorators |
| 13 from telemetry.internal.browser import browser as browser_module | 14 from telemetry.internal.browser import browser as browser_module |
| 14 from telemetry.internal.browser import browser_finder | 15 from telemetry.internal.browser import browser_finder |
| 15 from telemetry.internal.platform import gpu_device | 16 from telemetry.internal.platform import gpu_device |
| 16 from telemetry.internal.platform import gpu_info | 17 from telemetry.internal.platform import gpu_info |
| 17 from telemetry.internal.platform import system_info | 18 from telemetry.internal.platform import system_info |
| 18 from telemetry.internal.util import path | 19 from telemetry.internal.util import path |
| 19 from telemetry.testing import browser_test_case | 20 from telemetry.testing import browser_test_case |
| 20 from telemetry.testing import options_for_unittests | 21 from telemetry.testing import options_for_unittests |
| 21 from telemetry.timeline import tracing_config | 22 from telemetry.timeline import tracing_config |
| (...skipping 29 matching lines...) Expand all Loading... |
| 51 | 52 |
| 52 def testMultipleTabCalls(self): | 53 def testMultipleTabCalls(self): |
| 53 self._browser.tabs[0].Navigate(self.UrlOfUnittestFile('blank.html')) | 54 self._browser.tabs[0].Navigate(self.UrlOfUnittestFile('blank.html')) |
| 54 self._browser.tabs[0].WaitForDocumentReadyStateToBeInteractiveOrBetter() | 55 self._browser.tabs[0].WaitForDocumentReadyStateToBeInteractiveOrBetter() |
| 55 | 56 |
| 56 def testTabCallByReference(self): | 57 def testTabCallByReference(self): |
| 57 tab = self._browser.tabs[0] | 58 tab = self._browser.tabs[0] |
| 58 tab.Navigate(self.UrlOfUnittestFile('blank.html')) | 59 tab.Navigate(self.UrlOfUnittestFile('blank.html')) |
| 59 self._browser.tabs[0].WaitForDocumentReadyStateToBeInteractiveOrBetter() | 60 self._browser.tabs[0].WaitForDocumentReadyStateToBeInteractiveOrBetter() |
| 60 | 61 |
| 62 # Disable bug: https://github.com/catapult-project/catapult/issues/2455 |
| 61 @decorators.Enabled('has tabs') | 63 @decorators.Enabled('has tabs') |
| 62 @decorators.Disabled('win') # crbug.com/321527 | 64 @decorators.Disabled('linux', 'mac') |
| 63 def testCloseReferencedTab(self): | 65 def testCloseReferencedTab(self): |
| 64 self._browser.tabs.New() | 66 self._browser.tabs.New() |
| 65 tab = self._browser.tabs[0] | 67 tab = self._browser.tabs[0] |
| 66 tab.Navigate(self.UrlOfUnittestFile('blank.html')) | 68 tab.Navigate(self.UrlOfUnittestFile('blank.html')) |
| 67 tab.Close() | 69 tab.Close() |
| 68 self.assertEquals(1, len(self._browser.tabs)) | 70 self.assertEquals(1, len(self._browser.tabs)) |
| 69 | 71 |
| 70 @decorators.Enabled('has tabs') | 72 @decorators.Enabled('has tabs') |
| 71 def testForegroundTab(self): | 73 def testForegroundTab(self): |
| 72 # Should be only one tab at this stage, so that must be the foreground tab | 74 # Should be only one tab at this stage, so that must be the foreground tab |
| 73 original_tab = self._browser.tabs[0] | 75 original_tab = self._browser.tabs[0] |
| 74 self.assertEqual(self._browser.foreground_tab, original_tab) | 76 self.assertEqual(self._browser.foreground_tab, original_tab) |
| 75 new_tab = self._browser.tabs.New() | 77 new_tab = self._browser.tabs.New() |
| 76 # New tab shouls be foreground tab | 78 # New tab shouls be foreground tab |
| 77 self.assertEqual(self._browser.foreground_tab, new_tab) | 79 self.assertEqual(self._browser.foreground_tab, new_tab) |
| 78 # Make sure that activating the background tab makes it the foreground tab | 80 # Make sure that activating the background tab makes it the foreground tab |
| 79 original_tab.Activate() | 81 original_tab.Activate() |
| 80 self.assertEqual(self._browser.foreground_tab, original_tab) | 82 self.assertEqual(self._browser.foreground_tab, original_tab) |
| 81 # Closing the current foreground tab should switch the foreground tab to the | 83 # Closing the current foreground tab should switch the foreground tab to the |
| 82 # other tab | 84 # other tab |
| 83 original_tab.Close() | 85 original_tab.Close() |
| 84 self.assertEqual(self._browser.foreground_tab, new_tab) | 86 self.assertEqual(self._browser.foreground_tab, new_tab) |
| 85 | 87 |
| 88 # This test uses the reference browser and doesn't have access to |
| 89 # helper binaries like crashpad_database_util. |
| 90 @decorators.Enabled('linux') |
| 91 def testGetMinidumpPathOnCrash(self): |
| 92 tab = self._browser.tabs[0] |
| 93 with self.assertRaises(exceptions.AppCrashException): |
| 94 tab.Navigate('chrome://crash', timeout=5) |
| 95 crash_minidump_path = self._browser.GetMostRecentMinidumpPath() |
| 96 self.assertIsNotNone(crash_minidump_path) |
| 97 |
| 86 def testGetSystemInfo(self): | 98 def testGetSystemInfo(self): |
| 87 if not self._browser.supports_system_info: | 99 if not self._browser.supports_system_info: |
| 88 logging.warning( | 100 logging.warning( |
| 89 'Browser does not support getting system info, skipping test.') | 101 'Browser does not support getting system info, skipping test.') |
| 90 return | 102 return |
| 91 | 103 |
| 92 info = self._browser.GetSystemInfo() | 104 info = self._browser.GetSystemInfo() |
| 93 | 105 |
| 94 self.assertTrue(isinstance(info, system_info.SystemInfo)) | 106 self.assertTrue(isinstance(info, system_info.SystemInfo)) |
| 95 self.assertTrue(hasattr(info, 'model_name')) | 107 self.assertTrue(hasattr(info, 'model_name')) |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 options.profile_type = 'small_profile' | 159 options.profile_type = 'small_profile' |
| 148 | 160 |
| 149 @decorators.Disabled('chromeos') # crbug.com/243912 | 161 @decorators.Disabled('chromeos') # crbug.com/243912 |
| 150 def testDirtyProfileCreation(self): | 162 def testDirtyProfileCreation(self): |
| 151 self.assertEquals(1, len(self._browser.tabs)) | 163 self.assertEquals(1, len(self._browser.tabs)) |
| 152 | 164 |
| 153 | 165 |
| 154 class BrowserLoggingTest(browser_test_case.BrowserTestCase): | 166 class BrowserLoggingTest(browser_test_case.BrowserTestCase): |
| 155 @classmethod | 167 @classmethod |
| 156 def CustomizeBrowserOptions(cls, options): | 168 def CustomizeBrowserOptions(cls, options): |
| 157 options.enable_logging = True | 169 options.logging_verbosity = options.VERBOSE_LOGGING |
| 158 | 170 |
| 159 @decorators.Disabled('chromeos', 'android') | 171 @decorators.Disabled('chromeos', 'android') |
| 160 def testLogFileExist(self): | 172 def testLogFileExist(self): |
| 161 self.assertTrue( | 173 self.assertTrue( |
| 162 os.path.isfile(self._browser._browser_backend.log_file_path)) | 174 os.path.isfile(self._browser._browser_backend.log_file_path)) |
| 163 | 175 |
| 164 | 176 |
| 165 def _GenerateBrowserProfile(number_of_tabs): | 177 def _GenerateBrowserProfile(number_of_tabs): |
| 166 """ Generate a browser profile which browser had |number_of_tabs| number of | 178 """ Generate a browser profile which browser had |number_of_tabs| number of |
| 167 tabs opened before it was closed. | 179 tabs opened before it was closed. |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 browser_to_create = browser_finder.FindBrowser(options) | 264 browser_to_create = browser_finder.FindBrowser(options) |
| 253 self.assertIsNotNone(browser_to_create) | 265 self.assertIsNotNone(browser_to_create) |
| 254 before_browser_run_temp_dir_content = os.listdir(tempfile.tempdir) | 266 before_browser_run_temp_dir_content = os.listdir(tempfile.tempdir) |
| 255 with browser_to_create.Create(options) as browser: | 267 with browser_to_create.Create(options) as browser: |
| 256 tab = browser.tabs.New() | 268 tab = browser.tabs.New() |
| 257 tab.Navigate('about:blank') | 269 tab.Navigate('about:blank') |
| 258 self.assertEquals(2, tab.EvaluateJavaScript('1 + 1')) | 270 self.assertEquals(2, tab.EvaluateJavaScript('1 + 1')) |
| 259 after_browser_run_temp_dir_content = os.listdir(tempfile.tempdir) | 271 after_browser_run_temp_dir_content = os.listdir(tempfile.tempdir) |
| 260 self.assertEqual(before_browser_run_temp_dir_content, | 272 self.assertEqual(before_browser_run_temp_dir_content, |
| 261 after_browser_run_temp_dir_content) | 273 after_browser_run_temp_dir_content) |
| OLD | NEW |