| Index: tools/telemetry/telemetry/core/browser_unittest.py
|
| diff --git a/tools/telemetry/telemetry/core/browser_unittest.py b/tools/telemetry/telemetry/core/browser_unittest.py
|
| index e0e70cea669baf649ba228b05b654e03caf170ca..a75372d0af53040ea27cf0c1b38e650940aa36ba 100644
|
| --- a/tools/telemetry/telemetry/core/browser_unittest.py
|
| +++ b/tools/telemetry/telemetry/core/browser_unittest.py
|
| @@ -3,138 +3,82 @@
|
| # found in the LICENSE file.
|
|
|
| import logging
|
| -import unittest
|
|
|
| from telemetry import benchmark
|
| -from telemetry.core import browser_finder
|
| from telemetry.core import gpu_device
|
| from telemetry.core import gpu_info
|
| from telemetry.core import system_info
|
| -from telemetry.core import util
|
| -from telemetry.unittest import options_for_unittests
|
| +from telemetry.unittest import browser_test_case
|
|
|
|
|
| -class BrowserTest(unittest.TestCase):
|
| - def setUp(self):
|
| - self._browser = None
|
| -
|
| - def CreateBrowser(self,
|
| - extra_browser_args=None,
|
| - profile_type=None):
|
| - assert not self._browser
|
| -
|
| - options = options_for_unittests.GetCopy()
|
| -
|
| - if profile_type:
|
| - options.browser_options.profile_type = profile_type
|
| -
|
| - if extra_browser_args:
|
| - options.AppendExtraBrowserArgs(extra_browser_args)
|
| -
|
| - browser_to_create = browser_finder.FindBrowser(options)
|
| - if not browser_to_create:
|
| - raise Exception('No browser found, cannot continue test.')
|
| - self._browser = browser_to_create.Create()
|
| - self._browser.Start()
|
| -
|
| - self._browser.SetHTTPServerDirectories(util.GetUnittestDataDir())
|
| -
|
| - return self._browser
|
| -
|
| - def tearDown(self):
|
| - if self._browser:
|
| - self._browser.Close()
|
| -
|
| +class BrowserTest(browser_test_case.BrowserTestCase):
|
| def testBrowserCreation(self):
|
| - b = self.CreateBrowser()
|
| - self.assertEquals(1, len(b.tabs))
|
| + self.assertEquals(1, len(self._browser.tabs))
|
|
|
| # Different browsers boot up to different things.
|
| - assert b.tabs[0].url
|
| -
|
| - def testCommandLineOverriding(self):
|
| - # This test starts the browser with --user-agent=telemetry. This tests
|
| - # whether the user agent is then set.
|
| - flag1 = '--user-agent=telemetry'
|
| - b = self.CreateBrowser(extra_browser_args=[flag1])
|
| - t = b.tabs[0]
|
| - t.Navigate(b.http_server.UrlOf('blank.html'))
|
| - t.WaitForDocumentReadyStateToBeInteractiveOrBetter()
|
| - self.assertEquals(t.EvaluateJavaScript('navigator.userAgent'),
|
| - 'telemetry')
|
| + assert self._browser.tabs[0].url
|
|
|
| def testVersionDetection(self):
|
| - b = self.CreateBrowser()
|
| - v = b._browser_backend.chrome_branch_number # pylint: disable=W0212
|
| + # pylint: disable=W0212
|
| + v = self._browser._browser_backend.chrome_branch_number
|
| self.assertTrue(v > 0)
|
|
|
| @benchmark.Enabled('has tabs')
|
| def testNewCloseTab(self):
|
| - b = self.CreateBrowser()
|
| - existing_tab = b.tabs[0]
|
| - self.assertEquals(1, len(b.tabs))
|
| + existing_tab = self._browser.tabs[0]
|
| + self.assertEquals(1, len(self._browser.tabs))
|
| existing_tab_url = existing_tab.url
|
|
|
| - new_tab = b.tabs.New()
|
| - self.assertEquals(2, len(b.tabs))
|
| + new_tab = self._browser.tabs.New()
|
| + self.assertEquals(2, len(self._browser.tabs))
|
| self.assertEquals(existing_tab.url, existing_tab_url)
|
| self.assertEquals(new_tab.url, 'about:blank')
|
|
|
| new_tab.Close()
|
| - self.assertEquals(1, len(b.tabs))
|
| + self.assertEquals(1, len(self._browser.tabs))
|
| self.assertEquals(existing_tab.url, existing_tab_url)
|
|
|
| def testMultipleTabCalls(self):
|
| - b = self.CreateBrowser()
|
| - b.tabs[0].Navigate(b.http_server.UrlOf('blank.html'))
|
| - b.tabs[0].WaitForDocumentReadyStateToBeInteractiveOrBetter()
|
| + self._browser.tabs[0].Navigate(self.UrlOfUnittestFile('blank.html'))
|
| + self._browser.tabs[0].WaitForDocumentReadyStateToBeInteractiveOrBetter()
|
|
|
| def testTabCallByReference(self):
|
| - b = self.CreateBrowser()
|
| - tab = b.tabs[0]
|
| - tab.Navigate(b.http_server.UrlOf('blank.html'))
|
| - b.tabs[0].WaitForDocumentReadyStateToBeInteractiveOrBetter()
|
| + tab = self._browser.tabs[0]
|
| + tab.Navigate(self.UrlOfUnittestFile('blank.html'))
|
| + self._browser.tabs[0].WaitForDocumentReadyStateToBeInteractiveOrBetter()
|
|
|
| @benchmark.Enabled('has tabs')
|
| @benchmark.Disabled('win') # crbug.com/321527
|
| def testCloseReferencedTab(self):
|
| - b = self.CreateBrowser()
|
| - b.tabs.New()
|
| - tab = b.tabs[0]
|
| - tab.Navigate(b.http_server.UrlOf('blank.html'))
|
| + self._browser.tabs.New()
|
| + tab = self._browser.tabs[0]
|
| + tab.Navigate(self.UrlOfUnittestFile('blank.html'))
|
| tab.Close()
|
| - self.assertEquals(1, len(b.tabs))
|
| + self.assertEquals(1, len(self._browser.tabs))
|
|
|
| @benchmark.Enabled('has tabs')
|
| def testForegroundTab(self):
|
| - b = self.CreateBrowser()
|
| # Should be only one tab at this stage, so that must be the foreground tab
|
| - original_tab = b.tabs[0]
|
| - self.assertEqual(b.foreground_tab, original_tab)
|
| - new_tab = b.tabs.New()
|
| + original_tab = self._browser.tabs[0]
|
| + self.assertEqual(self._browser.foreground_tab, original_tab)
|
| + new_tab = self._browser.tabs.New()
|
| # New tab shouls be foreground tab
|
| - self.assertEqual(b.foreground_tab, new_tab)
|
| + self.assertEqual(self._browser.foreground_tab, new_tab)
|
| # Make sure that activating the background tab makes it the foreground tab
|
| original_tab.Activate()
|
| - self.assertEqual(b.foreground_tab, original_tab)
|
| + self.assertEqual(self._browser.foreground_tab, original_tab)
|
| # Closing the current foreground tab should switch the foreground tab to the
|
| # other tab
|
| original_tab.Close()
|
| - self.assertEqual(b.foreground_tab, new_tab)
|
| -
|
| - @benchmark.Disabled('chromeos') # crbug.com/243912
|
| - def testDirtyProfileCreation(self):
|
| - b = self.CreateBrowser(profile_type='small_profile')
|
| - self.assertEquals(1, len(b.tabs))
|
| + self.assertEqual(self._browser.foreground_tab, new_tab)
|
|
|
| def testGetSystemInfo(self):
|
| - b = self.CreateBrowser()
|
| - if not b.supports_system_info:
|
| + if not self._browser.supports_system_info:
|
| logging.warning(
|
| 'Browser does not support getting system info, skipping test.')
|
| return
|
|
|
| - info = b.GetSystemInfo()
|
| + info = self._browser.GetSystemInfo()
|
|
|
| self.assertTrue(isinstance(info, system_info.SystemInfo))
|
| self.assertTrue(hasattr(info, 'model_name'))
|
| @@ -146,26 +90,47 @@ class BrowserTest(unittest.TestCase):
|
| self.assertTrue(isinstance(g, gpu_device.GPUDevice))
|
|
|
| def testGetSystemInfoNotCachedObject(self):
|
| - b = self.CreateBrowser()
|
| - if not b.supports_system_info:
|
| + if not self._browser.supports_system_info:
|
| logging.warning(
|
| 'Browser does not support getting system info, skipping test.')
|
| return
|
|
|
| - info_a = b.GetSystemInfo()
|
| - info_b = b.GetSystemInfo()
|
| + info_a = self._browser.GetSystemInfo()
|
| + info_b = self._browser.GetSystemInfo()
|
| self.assertFalse(info_a is info_b)
|
|
|
| def testGetSystemTotalMemory(self):
|
| - b = self.CreateBrowser()
|
| - self.assertTrue(b.memory_stats['SystemTotalPhysicalMemory'] > 0)
|
| + self.assertTrue(self._browser.memory_stats['SystemTotalPhysicalMemory'] > 0)
|
|
|
| def testIsTracingRunning(self):
|
| - b = self.CreateBrowser()
|
| - if not b.supports_tracing:
|
| + if not self._browser.supports_tracing:
|
| return
|
| - self.assertFalse(b.is_tracing_running)
|
| - b.StartTracing()
|
| - self.assertTrue(b.is_tracing_running)
|
| - b.StopTracing()
|
| - self.assertFalse(b.is_tracing_running)
|
| + self.assertFalse(self._browser.is_tracing_running)
|
| + self._browser.StartTracing()
|
| + self.assertTrue(self._browser.is_tracing_running)
|
| + self._browser.StopTracing()
|
| + self.assertFalse(self._browser.is_tracing_running)
|
| +
|
| +
|
| +class CommandLineBrowserTest(browser_test_case.BrowserTestCase):
|
| + @classmethod
|
| + def CustomizeBrowserOptions(cls, options):
|
| + options.AppendExtraBrowserArgs('--user-agent=telemetry')
|
| +
|
| + def testCommandLineOverriding(self):
|
| + # This test starts the browser with --user-agent=telemetry. This tests
|
| + # whether the user agent is then set.
|
| + t = self._browser.tabs[0]
|
| + t.Navigate(self.UrlOfUnittestFile('blank.html'))
|
| + t.WaitForDocumentReadyStateToBeInteractiveOrBetter()
|
| + self.assertEquals(t.EvaluateJavaScript('navigator.userAgent'),
|
| + 'telemetry')
|
| +
|
| +class DirtyProfileBrowserTest(browser_test_case.BrowserTestCase):
|
| + @classmethod
|
| + def CustomizeBrowserOptions(cls, options):
|
| + options.profile_type = 'small_profile'
|
| +
|
| + @benchmark.Disabled('chromeos') # crbug.com/243912
|
| + def testDirtyProfileCreation(self):
|
| + self.assertEquals(1, len(self._browser.tabs))
|
|
|