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
3 # found in the LICENSE file.
5 from telemetry.core import util
6 from telemetry.unittest import browser_test_case
9 class TabTestCase(browser_test_case.BrowserTestCase):
10 def __init__(self, *args):
11 super(TabTestCase, self).__init__(*args)
15 super(TabTestCase, self).setUp()
17 if self._browser.supports_tab_control:
19 self._tab = self._browser.tabs.New()
20 while len(self._browser.tabs) > 1:
21 self._browser.tabs[0].Close()
22 except util.TimeoutException:
23 self._RestartBrowser()
25 self._RestartBrowser()
26 self._tab.Navigate('about:blank')
27 self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
29 def Navigate(self, filename, script_to_evaluate_on_commit=None):
30 """Navigates |tab| to |filename| in the unittest data directory.
32 Also sets up http server to point to the unittest data directory.
34 url = self.UrlOfUnittestFile(filename)
35 self._tab.Navigate(url, script_to_evaluate_on_commit)
36 self._tab.WaitForDocumentReadyStateToBeComplete()
38 def _RestartBrowser(self):
39 if not self._browser.tabs:
42 self._tab = self._browser.tabs[0]