-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# 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 unittest
-from telemetry.core import browser_finder
-from telemetry.unittest import options_for_unittests
+from telemetry.unittest import browser_test_case
-class TabTestCase(unittest.TestCase):
+
+class TabTestCase(browser_test_case.BrowserTestCase):
def __init__(self, *args):
- self._extra_browser_args = []
super(TabTestCase, self).__init__(*args)
-
- def setUp(self):
- self._browser = None
self._tab = None
- options = options_for_unittests.GetCopy()
-
- self.CustomizeBrowserOptions(options)
- if self._extra_browser_args:
- options.AppendExtraBrowserArgs(self._extra_browser_args)
-
- browser_to_create = browser_finder.FindBrowser(options)
- if not browser_to_create:
- raise Exception('No browser found, cannot continue test.')
- try:
- self._browser = browser_to_create.Create()
- self._browser.Start()
+ def setUp(self):
+ super(TabTestCase, self).setUp()
+
+ if self._browser.supports_tab_control:
+ self._tab = self._browser.tabs.New()
+ while len(self._browser.tabs) > 1:
+ self._browser.tabs[0].Close()
+ else:
+ if not self._browser.tabs:
+ self.tearDownClass()
+ self.setUpClass()
self._tab = self._browser.tabs[0]
- self._tab.Navigate('about:blank')
- self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
-
- except:
- self.tearDown()
- raise
+ self._tab.Navigate('about:blank')
+ self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
- def tearDown(self):
- if self._tab:
- self._tab.Disconnect()
- if self._browser:
- self._browser.Close()
+ def Navigate(self, filename, script_to_evaluate_on_commit=None):
+ """Navigates |tab| to |filename| in the unittest data directory.
- def CustomizeBrowserOptions(self, options):
- """Override to add test-specific options to the BrowserOptions object"""
- pass
+ Also sets up http server to point to the unittest data directory.
+ """
+ url = self.UrlOfUnittestFile(filename)
+ self._tab.Navigate(url, script_to_evaluate_on_commit)
+ self._tab.WaitForDocumentReadyStateToBeComplete()