From d9fca104135551cf48649c2c8f4c63ec70257bde Mon Sep 17 00:00:00 2001 From: Thomas Walpole Date: Mon, 27 Nov 2017 22:35:04 -0800 Subject: [PATCH] Fix issue with current path query and regexps --- lib/capybara/queries/current_path_query.rb | 2 +- lib/capybara/spec/session/has_current_path_spec.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/capybara/queries/current_path_query.rb b/lib/capybara/queries/current_path_query.rb index eec9e428..9f412fb0 100644 --- a/lib/capybara/queries/current_path_query.rb +++ b/lib/capybara/queries/current_path_query.rb @@ -31,7 +31,7 @@ module Capybara end if @expected_path.is_a? Regexp - @actual_path.match(@expected_path) + @actual_path.to_s.match(@expected_path) else ::Addressable::URI.parse(@expected_path) == ::Addressable::URI.parse(@actual_path) end diff --git a/lib/capybara/spec/session/has_current_path_spec.rb b/lib/capybara/spec/session/has_current_path_spec.rb index 91151019..ef52e659 100644 --- a/lib/capybara/spec/session/has_current_path_spec.rb +++ b/lib/capybara/spec/session/has_current_path_spec.rb @@ -13,6 +13,12 @@ Capybara::SpecHelper.spec '#has_current_path?' do expect(@session).not_to have_current_path(/monkey/) end + it "should not raise an error when non-http" do + @session.reset_session! + expect(@session.has_current_path?(/monkey/)).to eq false + expect(@session.has_current_path?("/with_js")).to eq false + end + it "should handle non-escaped query options" do @session.click_link("Non-escaped query options") expect(@session).to have_current_path("/with_html?options[]=things")