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 1cbf97a48eb820ef4661b72059ca5110cf6264f4..d30c47d93170658b5aff60e9f184496f9a4d28f9 100755 |
--- a/chrome/test/chromedriver/run_py_tests.py |
+++ b/chrome/test/chromedriver/run_py_tests.py |
@@ -86,6 +86,20 @@ 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);' |
+ 'window.addEventListener("message",' |
+ ' function(event) { document.body.removeChild(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.ExecuteScript('parent.postMessage("remove", "*");') |
+ self.assertTrue(self._driver.ExecuteScript('return window.top == window')) |
+ |
def testGetTitle(self): |
script = 'document.title = "title"; return 1;' |
self.assertEquals(1, self._driver.ExecuteScript(script)) |