Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / unittest / tab_test_case.py
index a3e3278..81a198c 100644 (file)
@@ -1,46 +1,35 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Copyright 2012 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
-import unittest
 
-from telemetry.core import browser_finder
-from telemetry.unittest import options_for_unittests
+from telemetry.unittest import browser_test_case
 
-class TabTestCase(unittest.TestCase):
+
+class TabTestCase(browser_test_case.BrowserTestCase):
   def __init__(self, *args):
-    self._extra_browser_args = []
     super(TabTestCase, self).__init__(*args)
-
-  def setUp(self):
-    self._browser = None
     self._tab = None
-    options = options_for_unittests.GetCopy()
-
-    self.CustomizeBrowserOptions(options)
 
-    if self._extra_browser_args:
-      options.AppendExtraBrowserArgs(self._extra_browser_args)
-
-    browser_to_create = browser_finder.FindBrowser(options)
-    if not browser_to_create:
-      raise Exception('No browser found, cannot continue test.')
-    try:
-      self._browser = browser_to_create.Create()
-      self._browser.Start()
+  def setUp(self):
+    super(TabTestCase, self).setUp()
+
+    if self._browser.supports_tab_control:
+      self._tab = self._browser.tabs.New()
+      while len(self._browser.tabs) > 1:
+        self._browser.tabs[0].Close()
+    else:
+      if not self._browser.tabs:
+        self.tearDownClass()
+        self.setUpClass()
       self._tab = self._browser.tabs[0]
-      self._tab.Navigate('about:blank')
-      self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
-
-    except:
-      self.tearDown()
-      raise
+    self._tab.Navigate('about:blank')
+    self._tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
 
-  def tearDown(self):
-    if self._tab:
-      self._tab.Disconnect()
-    if self._browser:
-      self._browser.Close()
+  def Navigate(self, filename, script_to_evaluate_on_commit=None):
+    """Navigates |tab| to |filename| in the unittest data directory.
 
-  def CustomizeBrowserOptions(self, options):
-    """Override to add test-specific options to the BrowserOptions object"""
-    pass
+    Also sets up http server to point to the unittest data directory.
+    """
+    url = self.UrlOfUnittestFile(filename)
+    self._tab.Navigate(url, script_to_evaluate_on_commit)
+    self._tab.WaitForDocumentReadyStateToBeComplete()