1# Copyright (c) 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. 4import unittest 5 6from telemetry.core import browser_finder 7from telemetry.unittest import options_for_unittests 8 9class TabTestCase(unittest.TestCase): 10 def __init__(self, *args): 11 self._extra_browser_args = [] 12 super(TabTestCase, self).__init__(*args) 13 14 def setUp(self): 15 self._browser = None 16 self._tab = None 17 options = options_for_unittests.GetCopy() 18 19 self.CustomizeBrowserOptions(options) 20 21 if self._extra_browser_args: 22 options.AppendExtraBrowserArgs(self._extra_browser_args) 23 24 browser_to_create = browser_finder.FindBrowser(options) 25 if not browser_to_create: 26 raise Exception('No browser found, cannot continue test.') 27 try: 28 self._browser = browser_to_create.Create() 29 self._browser.Start() 30 self._tab = self._browser.tabs[0] 31 self._tab.Navigate('about:blank') 32 33 except: 34 self.tearDown() 35 raise 36 37 def tearDown(self): 38 if self._tab: 39 self._tab.Disconnect() 40 if self._browser: 41 self._browser.Close() 42 43 def CustomizeBrowserOptions(self, options): 44 """Override to add test-specific options to the BrowserOptions object""" 45 pass 46