| Index: chrome/test/webdriver/webdriver_remote_tests.py
 | 
| ===================================================================
 | 
| --- chrome/test/webdriver/webdriver_remote_tests.py	(revision 77600)
 | 
| +++ chrome/test/webdriver/webdriver_remote_tests.py	(working copy)
 | 
| @@ -18,10 +18,11 @@
 | 
|  import types
 | 
|  import unittest
 | 
|  import urllib2
 | 
| -from selenium.common.exceptions import ErrorInResponseException
 | 
| -from selenium.common.exceptions import NoSuchElementException
 | 
| -from selenium.remote.webdriver import WebDriver
 | 
| -from selenium.remote.webdriver.webelement import WebElement
 | 
| +from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
 | 
| +from selenium.webdriver.common.exceptions import ErrorInResponseException
 | 
| +from selenium.webdriver.common.exceptions import NoSuchElementException
 | 
| +from selenium.webdriver.remote.webdriver import WebDriver
 | 
| +from selenium.webdriver.remote.webelement import WebElement
 | 
|  from urlparse import urlparse
 | 
|  
 | 
|  
 | 
| @@ -54,7 +55,7 @@
 | 
|      self.assertURL(url)
 | 
|  
 | 
|    def assertURL(self, url):
 | 
| -    u = self.driver.get_current_url()
 | 
| +    u = self.driver.current_url
 | 
|      self.assertEqual(u, url)
 | 
|  
 | 
|    """A new instance of chrome driver is started for every test case"""
 | 
| @@ -69,7 +70,7 @@
 | 
|        sys.exit(-1)
 | 
|  
 | 
|      time.sleep(5)
 | 
| -    self.driver = WebDriver.WebDriver(WEBDRIVER_SERVER_URL, "chrome", "ANY")
 | 
| +    self.driver = WebDriver(WEBDRIVER_SERVER_URL, {})
 | 
|      self.assertTrue(self.driver)
 | 
|  
 | 
|    def tearDown(self):
 | 
| @@ -96,7 +97,43 @@
 | 
|      search = string.lower(search)
 | 
|      self.assertNotEqual(-1, string.find(text, search))
 | 
|  
 | 
| +class RemoteWebdriverNativeEventsTest(RemoteWebDriverTest):
 | 
| +  def setUp(self):
 | 
| +    global WEBDRIVER_SERVER_URL
 | 
| +    global WEBDRIVER_PROCESS
 | 
| +    WEBDRIVER_PROCESS = subprocess.Popen([WEBDRIVER_EXE,
 | 
| +                                         '--port=%d' % WEBDRIVER_PORT])
 | 
| +    if WEBDRIVER_PROCESS == None:
 | 
| +      print "Chromium executable not found.  The path used was: "
 | 
| +      print WEBDRIVER_EXE
 | 
| +      sys.exit(-1)
 | 
|  
 | 
| +    time.sleep(5)
 | 
| +    custom_cap = DesiredCapabilities.CHROME
 | 
| +    custom_cap["chrome"] = {"nativeEvents" : True}
 | 
| +    self.driver = WebDriver(WEBDRIVER_SERVER_URL, custom_cap)
 | 
| +    self.assertTrue(self.driver)
 | 
| +
 | 
| +  def testCanStartWithNativeEventsCapabilities(self):
 | 
| +    self.assertTrue(self.driver.capabilities["chrome"]["nativeEvents"])
 | 
| +
 | 
| +  def testSendKeysNative(self):
 | 
| +    self.navigate(SEARCH)
 | 
| +    # Find the Google search Button.
 | 
| +    q = self.driver.find_element_by_name("q")
 | 
| +    # Send some keys.
 | 
| +    q.send_keys("toukyou")
 | 
| +    self.assertEqual(q.get_text(), "toukyou")
 | 
| +
 | 
| +  def testSendKeysNativeIME(self):
 | 
| +    self.navigate(SEARCH)
 | 
| +    q = self.driver.find_element_by_name("q")
 | 
| +    #TODO(timothe): Send the key combination that switches an JPN IME on/OFF.
 | 
| +    #q.send_keys(Keys.F7)
 | 
| +    q.send_keys("toukyou")
 | 
| +    self.assertEqual(q.get_text(), "\xe6\x9d\xb1\xe4\xba\xac")
 | 
| +
 | 
| +
 | 
|  class TestFindElement(RemoteWebDriverTest):
 | 
|    def testFindByName(self):
 | 
|      self.navigate(SEARCH)
 | 
| @@ -119,7 +156,7 @@
 | 
|      q = self.driver.find_element_by_name("oq")
 | 
|      self.assertTrue(isinstance(q, WebElement))
 | 
|  
 | 
| - def testFindElementById(self):
 | 
| +  def testFindElementById(self):
 | 
|      self.navigate(SEARCH)
 | 
|      # Find the padding for the logo near the search bar.
 | 
|      elem = self.driver.find_element_by_id("logocont")
 | 
| @@ -163,7 +200,7 @@
 | 
|      q = self.driver.find_element_by_name("oq")
 | 
|      self.assertTrue(isinstance(q, WebElement))
 | 
|  
 | 
| - def testFindElementById(self):
 | 
| +  def testFindElementById(self):
 | 
|      self.navigate(SEARCH)
 | 
|      # Find the padding for the logo near the search bar.
 | 
|      elem = self.driver.find_element_by_id("logocont")
 | 
| @@ -276,7 +313,7 @@
 | 
|                            'be started for testing; This flag is ignored if '
 | 
|                            '--url is provided for a remote server.'))
 | 
|    parser.add_option('-p', '--port', dest='port', action='store',
 | 
| -                    type='int', default=8080,
 | 
| +                    type='int', default=WEBDRIVER_PORT,
 | 
|                      help=('The port to start the WebDriver server executable '
 | 
|                            'on; This flag is ignored if --url is provided for a '
 | 
|                            'remote server.'))
 | 
| 
 |