Backed out changeset 1c0d8a46504a (bug 1291320)

This commit is contained in:
Sebastian Hengst 2017-03-23 21:48:31 +01:00
Родитель 6e50c8fc6d
Коммит 5396a97731
3 изменённых файлов: 35 добавлений и 87 удалений

Просмотреть файл

@ -1130,14 +1130,12 @@ GeckoDriver.prototype.goForward = function* (cmd, resp) {
yield goForward;
};
/**
* Causes the browser to reload the page in in current top-level browsing context.
*/
GeckoDriver.prototype.refresh = function* (cmd, resp) {
/** Refresh the page. */
GeckoDriver.prototype.refresh = function*(cmd, resp) {
assert.content(this.context);
assert.window(this.getCurrentWindow());
yield this.listener.refresh({pageTimeout: this.timeouts.pageLoad});
yield this.listener.refresh();
};
/**

Просмотреть файл

@ -27,7 +27,6 @@ class BaseNavigationTestCase(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(BaseNavigationTestCase, self).setUp()
self.test_page_frameset = self.marionette.absolute_url("frameset.html")
self.test_page_insecure = self.fixtures.where_is("test.html", on="https")
self.test_page_not_remote = "about:robots"
self.test_page_remote = self.marionette.absolute_url("test.html")
@ -127,14 +126,31 @@ class TestNavigate(BaseNavigationTestCase):
self.marionette.navigate("about:blank")
self.assertEqual("about:blank", self.marionette.get_url())
def test_refresh(self):
self.marionette.navigate(self.test_page_remote)
self.assertEqual("Marionette Test", self.marionette.title)
self.assertTrue(self.marionette.execute_script(
"""var elem = window.document.createElement('div'); elem.id = 'someDiv';
window.document.body.appendChild(elem); return true;"""))
self.assertFalse(self.marionette.execute_script(
"return window.document.getElementById('someDiv') == undefined"))
self.marionette.refresh()
# TODO(ato): Bug 1291320
time.sleep(0.2)
self.assertEqual("Marionette Test", self.marionette.title)
self.assertTrue(self.marionette.execute_script(
"return window.document.getElementById('someDiv') == undefined"))
def test_navigate_in_child_frame_changes_to_top(self):
self.marionette.navigate(self.test_page_frameset)
page_frameset = self.marionette.absolute_url("frameset.html")
self.marionette.navigate(page_frameset)
frame = self.marionette.find_element(By.NAME, "third")
self.marionette.switch_to_frame(frame)
self.assertRaises(errors.NoSuchElementException,
self.marionette.find_element, By.NAME, "third")
self.marionette.navigate(self.test_page_frameset)
self.marionette.navigate(page_frameset)
self.marionette.find_element(By.NAME, "third")
@skip_if_mobile("Bug 1323755 - Socket timeout")
@ -473,65 +489,6 @@ class TestBackForwardNavigation(BaseNavigationTestCase):
self.run_bfcache_test(test_pages)
class TestRefresh(BaseNavigationTestCase):
def test_basic(self):
self.marionette.navigate(self.test_page_remote)
self.assertEqual(self.test_page_remote, self.marionette.get_url())
self.marionette.execute_script("""
let elem = window.document.createElement('div');
elem.id = 'someDiv';
window.document.body.appendChild(elem);
""")
self.marionette.find_element(By.ID, "someDiv")
self.marionette.refresh()
self.assertEqual(self.test_page_remote, self.marionette.get_url())
with self.assertRaises(errors.NoSuchElementException):
self.marionette.find_element(By.ID, "someDiv")
def test_refresh_in_child_frame_navigates_to_top(self):
self.marionette.navigate(self.test_page_frameset)
self.assertEqual(self.test_page_frameset, self.marionette.get_url())
frame = self.marionette.find_element(By.NAME, "third")
self.marionette.switch_to_frame(frame)
self.assertRaises(errors.NoSuchElementException,
self.marionette.find_element, By.NAME, "third")
self.marionette.refresh()
self.marionette.find_element(By.NAME, "third")
def test_image(self):
image = self.marionette.absolute_url('black.png')
self.marionette.navigate(image)
self.assertEqual(image, self.marionette.get_url())
self.marionette.refresh()
self.assertEqual(image, self.marionette.get_url())
def test_timeout_error(self):
slow_page = self.marionette.absolute_url("slow?delay=3")
self.marionette.navigate(slow_page)
self.assertEqual(slow_page, self.marionette.get_url())
self.marionette.timeout.page_load = 0.5
with self.assertRaises(errors.TimeoutException):
self.marionette.refresh()
self.assertEqual(slow_page, self.marionette.get_url())
def test_insecure_error(self):
with self.assertRaises(errors.InsecureCertificateException):
self.marionette.navigate(self.test_page_insecure)
self.assertEqual(self.test_page_insecure, self.marionette.get_url())
with self.assertRaises(errors.InsecureCertificateException):
self.marionette.refresh()
class TestTLSNavigation(MarionetteTestCase):
insecure_tls = {"acceptInsecureCerts": True}
secure_tls = {"acceptInsecureCerts": False}

Просмотреть файл

@ -1133,26 +1133,6 @@ function goForward(msg) {
}, command_id, pageTimeout);
}
/**
* Causes the browser to reload the page in in current top-level browsing context.
*
* @param {number} command_id
* ID of the currently handled message between the driver and listener.
* @param {number} pageTimeout
* Timeout in milliseconds the method has to wait for the page being finished loading.
*/
function refresh(msg) {
let {command_id, pageTimeout} = msg.json;
// We need to move to the top frame before navigating
sendSyncMessage("Marionette:switchedToFrame", {frameValue: null});
curContainer.frame = content;
loadListener.navigate(() => {
curContainer.frame.location.reload(true);
}, command_id, pageTimeout);
}
/**
* Get URL of the top-level browsing context.
*/
@ -1174,6 +1154,19 @@ function getPageSource() {
return curContainer.frame.document.documentElement.outerHTML;
}
/**
* Refresh the page
*/
function refresh(msg) {
let command_id = msg.json.command_id;
curContainer.frame.location.reload(true);
let listen = function() {
removeEventListener("DOMContentLoaded", listen, false);
sendOk(command_id);
};
addEventListener("DOMContentLoaded", listen, false);
}
/**
* Find an element in the current browsing context's document using the
* given search strategy.