Index: chrome/test/chromedriver/test/run_py_tests.py |
diff --git a/chrome/test/chromedriver/test/run_py_tests.py b/chrome/test/chromedriver/test/run_py_tests.py |
index e41c0268b82f07d582f59d5ba933dd37ff0429ab..fd46b0652a1a92994eafcfc67457b38279b735e3 100755 |
--- a/chrome/test/chromedriver/test/run_py_tests.py |
+++ b/chrome/test/chromedriver/test/run_py_tests.py |
@@ -562,6 +562,29 @@ class ChromeDriverTest(ChromeDriverBaseTest): |
self._driver.MouseMoveTo(div, 10, 10) |
self.assertEquals(1, len(self._driver.FindElements('tag name', 'br'))) |
+ def testMoveToElementAndClick(self): |
+ self._driver.Load(self.GetHttpUrlForFile('/chromedriver/multiline.html')) |
+ |
+ # Check that link element spans two lines and that the first ClientRect is |
+ # above the second. |
+ link = self._driver.FindElements('tag name', 'a')[0] |
+ client_rects = self._driver.ExecuteScript( |
+ 'return arguments[0].getClientRects();', link) |
+ self.assertEquals(2, len(client_rects)) |
+ self.assertTrue(client_rects[0]['bottom'] < client_rects[1]['top']) |
+ |
+ # Check that the center of the link's bounding ClientRect is outside the |
+ # element. |
+ bounding_client_rect = self._driver.ExecuteScript( |
+ 'return arguments[0].getBoundingClientRect();', link) |
+ center = bounding_client_rect['left'] + bounding_client_rect['width'] / 2 |
+ self.assertTrue(client_rects[1]['right'] < center) |
+ self.assertTrue(center < client_rects[0]['left']) |
+ |
+ self._driver.MouseMoveTo(link) |
+ self._driver.MouseClick() |
+ self.assertTrue(self._driver.GetCurrentUrl().endswith('#top')) |
+ |
def testMouseClick(self): |
div = self._driver.ExecuteScript( |
'document.body.innerHTML = "<div>old</div>";' |