146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)# Copyright 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file. 4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)from telemetry.unittest import browser_test_case 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class TabTestCase(browser_test_case.BrowserTestCase): 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) def __init__(self, *args): 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) super(TabTestCase, self).__init__(*args) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) self._tab = None 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch def setUp(self): 146e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) super(TabTestCase, self).setUp() 156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch if self._browser.supports_tab_control: 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._tab = self._browser.tabs.New() 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch while len(self._browser.tabs) > 1: 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._browser.tabs[0].Close() 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch else: 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if not self._browser.tabs: 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.tearDownClass() 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.setUpClass() 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._tab = self._browser.tabs[0] 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._tab.Navigate('about:blank') 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter() 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) def Navigate(self, filename, script_to_evaluate_on_commit=None): 29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) """Navigates |tab| to |filename| in the unittest data directory. 30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) Also sets up http server to point to the unittest data directory. 32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) """ 336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) url = self.UrlOfUnittestFile(filename) 346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) self._tab.Navigate(url, script_to_evaluate_on_commit) 35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self._tab.WaitForDocumentReadyStateToBeComplete() 36