Chromium Code Reviews| Index: chrome/test/chromedriver/run_py_tests.py |
| diff --git a/chrome/test/chromedriver/run_py_tests.py b/chrome/test/chromedriver/run_py_tests.py |
| index 88ac936c5005e2ff57389ed42ec70bf1def8f06f..a93b8f63af9c724283bbc86c2b4db416e21cbc7f 100755 |
| --- a/chrome/test/chromedriver/run_py_tests.py |
| +++ b/chrome/test/chromedriver/run_py_tests.py |
| @@ -9,6 +9,7 @@ import ctypes |
| import optparse |
| import os |
| import sys |
| +import time |
| import unittest |
| import chromedriver |
| @@ -84,6 +85,34 @@ class ChromeDriverTest(unittest.TestCase): |
| self._driver.SwitchToFrameByIndex(0) |
| self.assertTrue(self._driver.ExecuteScript('return window.top != window')) |
| + def testExecuteInRemovedFrame(self): |
| + self._driver.ExecuteScript( |
| + 'var frame = document.createElement("iframe");' |
| + 'frame.id="id";' |
| + 'frame.name="name";' |
| + 'document.body.appendChild(frame);') |
| + self.assertTrue(self._driver.ExecuteScript('return window.top == window')) |
| + self._driver.SwitchToFrame('id') |
| + self.assertTrue(self._driver.ExecuteScript('return window.top != window')) |
| + self._driver.SwitchToMainFrame() |
| + self._driver.ExecuteScript( |
| + 'var frame = document.getElementById("id");' |
| + 'window.setTimeout(function() {' |
| + ' document.body.removeChild(frame);' |
| + '}, 1000);') |
|
kkania
2013/02/06 01:41:25
is there a non racy way to do this?
craigdh
2013/02/06 18:52:49
Yeah, just realized I can probably do it with a po
|
| + self._driver.SwitchToFrame('id') |
| + |
| + def _BecomesTrue(func, sec): |
| + timeout = time.time() + sec |
| + while time.time() < timeout: |
| + if func(): |
| + return True |
| + time.sleep(0.01) |
| + return False |
| + |
| + self.assertTrue(_BecomesTrue( |
| + lambda: self._driver.ExecuteScript('return window.top == window'), 5)) |
|
chrisgao (Use stgao instead)
2013/02/06 01:32:14
Are 5 seconds long enough if the bot is in heavy l
craigdh
2013/02/06 18:52:49
Done.
|
| + |
| def testGetTitle(self): |
| script = 'document.title = "title"; return 1;' |
| self.assertEquals(1, self._driver.ExecuteScript(script)) |