Skip to content

Commit 70768db

Browse files
authored
Support ferrum 0.16 (#283)
1 parent 796d03a commit 70768db

File tree

5 files changed

+28
-8
lines changed

5 files changed

+28
-8
lines changed

cuprite.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ Gem::Specification.new do |s|
2525
s.required_ruby_version = ">= 2.7.0"
2626

2727
s.add_runtime_dependency "capybara", "~> 3.0"
28-
s.add_runtime_dependency "ferrum", "~> 0.15.0"
28+
s.add_runtime_dependency "ferrum", "~> 0.16.0"
2929
end

lib/capybara/cuprite/node.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ def set(value, options = {})
110110
command(:set, value.to_s)
111111
elsif self[:isContentEditable]
112112
command(:delete_text)
113-
send_keys(value.to_s)
113+
click.type(value.to_s)
114114
end
115115
end
116116

spec/features/driver_spec.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1072,7 +1072,10 @@ def create_screenshot(file, *args)
10721072

10731073
context "basic http authentication" do
10741074
it "denies without credentials" do
1075-
@session.visit "/cuprite/basic_auth"
1075+
expect { @session.visit "/cuprite/basic_auth" }.to raise_error(
1076+
Ferrum::StatusError,
1077+
%r{Request to http://.*/cuprite/basic_auth failed \(net::ERR_INVALID_AUTH_CREDENTIALS\)}
1078+
)
10761079

10771080
expect(@session.status_code).to eq(401)
10781081
expect(@session).not_to have_content("Welcome, authenticated client")

spec/support/test_app.rb

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ class TestApp
99
CUPRITE_VIEWS = "#{File.dirname(__FILE__)}/views"
1010
CUPRITE_PUBLIC = "#{File.dirname(__FILE__)}/public"
1111

12+
set :erb, layout: File.read("#{CUPRITE_VIEWS}/layout.erb")
13+
1214
helpers do
1315
def requires_credentials(login, password)
1416
return if authorized?(login, password)
@@ -67,17 +69,17 @@ def authorized?(login, password)
6769
sleep 1
6870
cookie_value = "test_cookie"
6971
response.set_cookie("stealth", cookie_value)
70-
"Cookie set to #{cookie_value}"
72+
render_string("Cookie set to #{cookie_value}")
7173
end
7274

7375
get "/cuprite/slow" do
7476
sleep 0.2
75-
"slow page"
77+
render_string("slow page")
7678
end
7779

7880
get "/cuprite/really_slow" do
7981
sleep 3
80-
"really slow page"
82+
render_string("really slow page")
8183
end
8284

8385
get "/cuprite/basic_auth" do
@@ -87,13 +89,13 @@ def authorized?(login, password)
8789

8890
post "/cuprite/post_basic_auth" do
8991
requires_credentials("login", "pass")
90-
"Authorized POST request"
92+
render_string("Authorized POST request")
9193
end
9294

9395
get "/cuprite/cacheable" do
9496
cache_control :public, max_age: 60
9597
etag "deadbeef"
96-
"Cacheable request <a href='/cuprite/cacheable'>click me</a>"
98+
render_string("Cacheable request <a href='/cuprite/cacheable'>click me</a>")
9799
end
98100

99101
get "/cuprite/:view" do |view|
@@ -110,4 +112,8 @@ def authorized?(login, password)
110112
def render_view(view)
111113
erb File.read("#{CUPRITE_VIEWS}/#{view}.erb")
112114
end
115+
116+
def render_string(str)
117+
erb str
118+
end
113119
end

spec/support/views/layout.erb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
<!-- this disable favicon.ico request for headless browser, so not mix with other requests -->
6+
<link rel="icon" href="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" />
7+
</head>
8+
<body>
9+
<%= yield %>
10+
</body>
11+
</html>

0 commit comments

Comments
 (0)