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. 4 5from telemetry.unittest import browser_test_case 6 7 8class TabTestCase(browser_test_case.BrowserTestCase): 9 def __init__(self, *args): 10 super(TabTestCase, self).__init__(*args) 11 self._tab = None 12 13 def setUp(self): 14 super(TabTestCase, self).setUp() 15 16 if self._browser.supports_tab_control: 17 self._tab = self._browser.tabs.New() 18 while len(self._browser.tabs) > 1: 19 self._browser.tabs[0].Close() 20 else: 21 if not self._browser.tabs: 22 self.tearDownClass() 23 self.setUpClass() 24 self._tab = self._browser.tabs[0] 25 self._tab.Navigate('about:blank') 26 self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter() 27 28 def Navigate(self, filename, script_to_evaluate_on_commit=None): 29 """Navigates |tab| to |filename| in the unittest data directory. 30 31 Also sets up http server to point to the unittest data directory. 32 """ 33 url = self.UrlOfUnittestFile(filename) 34 self._tab.Navigate(url, script_to_evaluate_on_commit) 35 self._tab.WaitForDocumentReadyStateToBeComplete() 36