Merge branch 'unload_refresh'

* unload_refresh:
  No longer automatically handle the repost prompt for FF
This commit is contained in:
Thomas Walpole 2018-02-15 15:58:12 -08:00
commit 5930e1f114
4 changed files with 23 additions and 5 deletions

View File

@ -51,10 +51,7 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
end
def refresh
accept_modal(nil, wait: 0.1) do
browser.navigate.refresh
end
rescue Capybara::ModalNotFound
browser.navigate.refresh
end
def go_back

View File

@ -17,6 +17,7 @@ Capybara::SpecHelper.spec '#refresh' do
end
it "it reposts" do
skip "Firefox insists on prompting without providing a way to suppress" if marionette?(@session)
@session.visit('/form')
@session.select('Sweden', from: 'form_region')
@session.click_button('awesome')

View File

@ -106,7 +106,7 @@ module Capybara
end
def marionette?(session)
session.driver.respond_to?(:marionette?, true) && session.driver.send(:marionette?)
session.respond_to?(:driver) && session.driver.respond_to?(:marionette?, true) && session.driver.send(:marionette?)
end
end
end

View File

@ -123,5 +123,25 @@ RSpec.describe Capybara::Selenium::Driver do
end
end
end
context "#refresh" do
def extract_results(session)
expect(session).to have_xpath("//pre[@id='results']")
YAML.load Nokogiri::HTML(session.body).xpath("//pre[@id='results']").first.inner_html.lstrip
end
it "can repost by accepting confirm" do
@session = TestSessions::SeleniumMarionette
@session.visit('/form')
@session.select('Sweden', from: 'form_region')
@session.click_button('awesome')
expect {
@session.accept_confirm(wait: 0.1) do
@session.refresh
sleep 2
end
}.to change{ extract_results(@session)['post_count'] }.by(1)
end
end
end