tab_test_case.py revision 868fa2fe829687343ffae624259930155e16dbd8
1e3365aa452673f7ea3244bb6638551f13ab7570dNick Lewycky# Copyright (c) 2012 The Chromium Authors. All rights reserved. 23ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar# Use of this source code is governed by a BSD-style license that can be 33ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar# found in the LICENSE file. 43ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbarimport unittest 53ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar 63ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbarfrom telemetry.core import browser_finder 73ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbarfrom telemetry.unittest import options_for_unittests 83ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar 93ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbarclass TabTestCase(unittest.TestCase): 103ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar def __init__(self, *args): 1155fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth self._extra_browser_args = [] 1255fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth super(TabTestCase, self).__init__(*args) 1355fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth 1453ec55215075c8f4ddd47ca6ed7d382f16beb670Daniel Dunbar def setUp(self): 151b3bb6efc59a21f794b534078f9ae7e95393f510Daniel Dunbar self._browser = None 164ad4b3ebbe5769143389dccfcfadb666a4ba5940Daniel Dunbar self._tab = None 17f353c8cc2ee1cc16ff194b399a8d951f707fb129Daniel Dunbar options = options_for_unittests.GetCopy() 181b3bb6efc59a21f794b534078f9ae7e95393f510Daniel Dunbar 19f353c8cc2ee1cc16ff194b399a8d951f707fb129Daniel Dunbar self.CustomizeBrowserOptions(options) 20f353c8cc2ee1cc16ff194b399a8d951f707fb129Daniel Dunbar 217f9fc3f7ce076645cb6aefc99c64d9446caf13d6Chris Lattner if self._extra_browser_args: 224d7b14734f2285695dcec347f8718b512093390aTed Kremenek for arg in self._extra_browser_args: 236981330cc231e4e2ccbd38679209e04b776483ebHans Wennborg options.extra_browser_args.append(arg) 2455fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth 2576b86c2e79a58910a641d449f229889d671d8a38Hans Wennborg browser_to_create = browser_finder.FindBrowser(options) 26b1e25a1bc03292dc538d336573e0be1490223171Reid Kleckner if not browser_to_create: 27b1e25a1bc03292dc538d336573e0be1490223171Reid Kleckner raise Exception('No browser found, cannot continue test.') 28b1e25a1bc03292dc538d336573e0be1490223171Reid Kleckner try: 29b1e25a1bc03292dc538d336573e0be1490223171Reid Kleckner self._browser = browser_to_create.Create() 30b1e25a1bc03292dc538d336573e0be1490223171Reid Kleckner self._tab = self._browser.tabs[0] 31c706c8e440abf61910c042380e19c67932998395Eric Christopher except: 32548f6c8e8010b181cb151df92f0a989363cb993eDavid Blaikie self.tearDown() 33256053b31e697fdf0cc48f17d621c82fc3b8dff0Michael J. Spencer raise 3403013fa9a0bf1ef4b907f5fec006c8f4000fdd21Michael J. Spencer 3555fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth def tearDown(self): 3603013fa9a0bf1ef4b907f5fec006c8f4000fdd21Michael J. Spencer if self._tab: 3755fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth self._tab.Disconnect() 38f2462be34a49e2108c9b4151f8e6d3fe1b916179Dylan Noblesmith if self._browser: 3969d3b4f7c9fa818d2536b4f1b220b942ae392128Dylan Noblesmith self._browser.Close() 40f110a9c6876e36ef77a54b191ea4ecf3443ac620Eric Christopher 41f110a9c6876e36ef77a54b191ea4ecf3443ac620Eric Christopher def CustomizeBrowserOptions(self, options): 4288a8fa366e1a76507ae2212f9c3f110df865c3a5NAKAMURA Takumi """Override to add test-specific options to the BrowserOptions object""" 4388a8fa366e1a76507ae2212f9c3f110df865c3a5NAKAMURA Takumi pass 441b3bb6efc59a21f794b534078f9ae7e95393f510Daniel Dunbar