diff --git a/lib/capybara/poltergeist/browser.rb b/lib/capybara/poltergeist/browser.rb index 8d516eda..1b31d68d 100644 --- a/lib/capybara/poltergeist/browser.rb +++ b/lib/capybara/poltergeist/browser.rb @@ -391,6 +391,10 @@ def go_forward command 'go_forward' end + def refresh + command 'refresh' + end + def accept_confirm command 'set_confirm_process', true end diff --git a/lib/capybara/poltergeist/client/browser.coffee b/lib/capybara/poltergeist/client/browser.coffee index f3cec724..96a9bf33 100644 --- a/lib/capybara/poltergeist/client/browser.coffee +++ b/lib/capybara/poltergeist/client/browser.coffee @@ -520,6 +520,11 @@ class Poltergeist.Browser else @current_command.sendResponse(false) + refresh: -> + @currentPage.state = 'wait_for_loading' + @currentPage.reload() + @_waitForHistoryChange() + set_url_whitelist: (wildcards...)-> @currentPage.urlWhitelist = (@_wildcardToRegexp(wc) for wc in wildcards) @current_command.sendResponse(true) diff --git a/lib/capybara/poltergeist/client/compiled/browser.js b/lib/capybara/poltergeist/client/compiled/browser.js index d998d51b..597b3542 100644 --- a/lib/capybara/poltergeist/client/compiled/browser.js +++ b/lib/capybara/poltergeist/client/compiled/browser.js @@ -715,6 +715,12 @@ Poltergeist.Browser = (function() { } }; + Browser.prototype.refresh = function() { + this.currentPage.state = 'wait_for_loading'; + this.currentPage.reload(); + return this._waitForHistoryChange(); + }; + Browser.prototype.set_url_whitelist = function() { var wc, wildcards; wildcards = 1 <= arguments.length ? slice.call(arguments, 0) : []; diff --git a/lib/capybara/poltergeist/client/compiled/web_page.js b/lib/capybara/poltergeist/client/compiled/web_page.js index 7d3c1e30..0ceb176e 100644 --- a/lib/capybara/poltergeist/client/compiled/web_page.js +++ b/lib/capybara/poltergeist/client/compiled/web_page.js @@ -7,7 +7,7 @@ Poltergeist.WebPage = (function() { WebPage.CALLBACKS = ['onConsoleMessage', 'onError', 'onLoadFinished', 'onInitialized', 'onLoadStarted', 'onResourceRequested', 'onResourceReceived', 'onResourceError', 'onNavigationRequested', 'onUrlChanged', 'onPageCreated', 'onClosing']; - WebPage.DELEGATES = ['open', 'sendEvent', 'uploadFile', 'render', 'close', 'renderBase64', 'goBack', 'goForward']; + WebPage.DELEGATES = ['open', 'sendEvent', 'uploadFile', 'render', 'close', 'renderBase64', 'goBack', 'goForward', 'reload']; WebPage.COMMANDS = ['currentUrl', 'find', 'nodeCall', 'documentSize', 'beforeUpload', 'afterUpload', 'clearLocalStorage']; diff --git a/lib/capybara/poltergeist/client/web_page.coffee b/lib/capybara/poltergeist/client/web_page.coffee index 1ea03576..632ae7b2 100644 --- a/lib/capybara/poltergeist/client/web_page.coffee +++ b/lib/capybara/poltergeist/client/web_page.coffee @@ -6,7 +6,7 @@ class Poltergeist.WebPage 'onClosing'] @DELEGATES = ['open', 'sendEvent', 'uploadFile', 'render', 'close', - 'renderBase64', 'goBack', 'goForward'] + 'renderBase64', 'goBack', 'goForward', 'reload'] @COMMANDS = ['currentUrl', 'find', 'nodeCall', 'documentSize', 'beforeUpload', 'afterUpload', 'clearLocalStorage'] diff --git a/lib/capybara/poltergeist/driver.rb b/lib/capybara/poltergeist/driver.rb index 11996e10..572a1f99 100644 --- a/lib/capybara/poltergeist/driver.rb +++ b/lib/capybara/poltergeist/driver.rb @@ -361,6 +361,10 @@ def go_forward browser.go_forward end + def refresh + browser.refresh + end + def accept_modal(type, options = {}) case type when :confirm