falcon-capybara 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/falcon/capybara.rb +1 -1
- data/lib/falcon/capybara/drivers.md +16 -0
- data/lib/falcon/capybara/drivers.rb +12 -1
- data/lib/falcon/capybara/servers.md +13 -0
- data/lib/falcon/capybara/servers.rb +26 -3
- data/lib/falcon/capybara/version.rb +1 -1
- data/lib/falcon/capybara/wrapper.rb +10 -35
- metadata +9 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a729f1548db40e54fa9de296a0cd8dee98559aee2eeb246852867197f080226e
|
4
|
+
data.tar.gz: 0e9bdd77739597ad47c3b4b895021d59a46a7bd8f807ebd198e65c47908e4e1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 901cc06fa726b2844a6f53ff2f9f53017292cddd0d034a9f063dbc6f256cfa21e028b4ca764c91d8597894c35164133df041289c915e3008963ca4924f2b3e32
|
7
|
+
data.tar.gz: d5f4cf87a4ea682e39bcc181c6b0c45ab9183a9daf260d5d9321e1c03258fbf652a3bb96c71a330192fdbb2ecdd3a6a68f1c25d715df387a6e0cf1865769e44f
|
data/lib/falcon/capybara.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
# Falcon::Capybara::Drivers
|
2
|
+
|
3
|
+
Provides Capybara driver definitions for using Chrome with self-signed HTTPS via localhost **only**.
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
In your Capybara configuration, you'd typically select one of the named server configurations:
|
8
|
+
|
9
|
+
~~~ ruby
|
10
|
+
Capybara.configure do |config|
|
11
|
+
config.javascript_driver = :selenium_chrome_https
|
12
|
+
|
13
|
+
# Or for headless:
|
14
|
+
config.javascript_driver = :selenium_chrome_headless_https
|
15
|
+
end
|
16
|
+
~~~
|
@@ -19,15 +19,26 @@
|
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
21
|
require 'capybara'
|
22
|
-
require 'selenium/webdriver'
|
23
22
|
|
23
|
+
# A selenium driver for chrome which allows insecure localhost https protocol.
|
24
|
+
# @scope Falcon Capybara Drivers
|
25
|
+
# @name selenium_chrome_https
|
26
|
+
# @attribute [Block]
|
24
27
|
Capybara.register_driver :selenium_chrome_https do |app|
|
28
|
+
require 'selenium/webdriver'
|
29
|
+
|
25
30
|
Capybara.drivers[:selenium_chrome].call(app).tap do |driver|
|
26
31
|
driver.options[:options].args << '--allow-insecure-localhost'
|
27
32
|
end
|
28
33
|
end
|
29
34
|
|
35
|
+
# A headless selenium driver for chrome which allows insecure localhost https protocol.
|
36
|
+
# @scope Falcon Capybara Drivers
|
37
|
+
# @name selenium_chrome_headless_https
|
38
|
+
# @attribute [Block]
|
30
39
|
Capybara.register_driver :selenium_chrome_headless_https do |app|
|
40
|
+
require 'selenium/webdriver'
|
41
|
+
|
31
42
|
Capybara.drivers[:selenium_chrome_headless].call(app).tap do |driver|
|
32
43
|
driver.options[:options].args << '--allow-insecure-localhost'
|
33
44
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Falcon::Capybara::Servers
|
2
|
+
|
3
|
+
Provides Capybara server definitions for using Falcon with Capybara integration & acceptance tests.
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
In your Capybara configuration, you'd typically select one of the named server configurations:
|
8
|
+
|
9
|
+
~~~ ruby
|
10
|
+
Capybara.configure do |config|
|
11
|
+
config.server = :falcon_https
|
12
|
+
end
|
13
|
+
~~~
|
@@ -20,6 +20,29 @@
|
|
20
20
|
|
21
21
|
require 'capybara'
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
# The default Falcon server wrapper which uses the `HTTP` scheme.
|
24
|
+
# @scope Falcon Capybara Servers
|
25
|
+
# @name falcon
|
26
|
+
# @attribute [Block]
|
27
|
+
Capybara.register_server(:falcon) do |*arguments|
|
28
|
+
require_relative 'wrapper'
|
29
|
+
Falcon::Capybara::Wrapper.new.call(*arguments)
|
30
|
+
end
|
31
|
+
|
32
|
+
# An explicit Falcon server wrapper which uses the `HTTP` scheme.
|
33
|
+
# @scope Falcon Capybara Servers
|
34
|
+
# @name falcon_http
|
35
|
+
# @attribute [Block]
|
36
|
+
Capybara.register_server(:falcon_http) do |*arguments|
|
37
|
+
require_relative 'wrapper'
|
38
|
+
Falcon::Capybara::Wrapper.new('http').call(*arguments)
|
39
|
+
end
|
40
|
+
|
41
|
+
# The default Falcon server wrapper which uses the `HTTPS` scheme.
|
42
|
+
# @scope Falcon Capybara Servers
|
43
|
+
# @name falcon_https
|
44
|
+
# @attribute [Block]
|
45
|
+
Capybara.register_server(:falcon_https) do |*arguments|
|
46
|
+
require_relative 'wrapper'
|
47
|
+
Falcon::Capybara::Wrapper.new('https').call(*arguments)
|
48
|
+
end
|
@@ -26,34 +26,23 @@ require 'async/io/notification'
|
|
26
26
|
|
27
27
|
module Falcon
|
28
28
|
module Capybara
|
29
|
+
# Implements a wrapper for starting the Falcon server for Capybara.
|
29
30
|
class Wrapper
|
31
|
+
# @parameter scheme [String] The scheme for the server to bind to.
|
32
|
+
# e.g. `http` or `https`.
|
30
33
|
def initialize(scheme = "http")
|
31
|
-
@job = nil
|
32
34
|
@scheme = scheme
|
33
|
-
|
34
|
-
@job_available = Async::IO::Notification.new
|
35
|
-
@job_complete = Async::IO::Notification.new
|
36
|
-
end
|
37
|
-
|
38
|
-
def close
|
39
|
-
@job_available.close
|
40
|
-
@job_complete.close
|
41
|
-
end
|
42
|
-
|
43
|
-
def remote(&block)
|
44
|
-
@job = block
|
45
|
-
@job_available.signal
|
46
|
-
|
47
|
-
Async do
|
48
|
-
Async.logger.debug (self) {"Waiting for job completion..."}
|
49
|
-
@job_complete.wait
|
50
|
-
end.wait
|
51
35
|
end
|
52
36
|
|
37
|
+
# Build a server endpoint using the given scheme.
|
53
38
|
def endpoint(host, port)
|
54
39
|
Falcon::Endpoint.parse("#{@scheme}://#{host}:#{port}")
|
55
40
|
end
|
56
41
|
|
42
|
+
# Run the Falcon server hosting the given rack application.
|
43
|
+
# @parameter rack_app [Proc] A Rack application.
|
44
|
+
# @parameter port [Integer] The port number to bind to.
|
45
|
+
# @parameter host [String] The local host to bind to.
|
57
46
|
def call(rack_app, port, host)
|
58
47
|
require 'async/reactor'
|
59
48
|
require 'falcon/server'
|
@@ -69,22 +58,8 @@ module Falcon
|
|
69
58
|
|
70
59
|
server = Falcon::Server.new(app, endpoint, endpoint.protocol, endpoint.scheme)
|
71
60
|
|
72
|
-
|
73
|
-
|
74
|
-
server.run
|
75
|
-
end
|
76
|
-
|
77
|
-
while true
|
78
|
-
Async.logger.debug (self) {"Waiting for job..."}
|
79
|
-
@job_available.wait while @job.nil?
|
80
|
-
|
81
|
-
Async.logger.debug (self) {"Running job #{@job}"}
|
82
|
-
@job.call
|
83
|
-
@job = nil
|
84
|
-
|
85
|
-
Async.logger.debug (self) {"Completing job #{@job}"}
|
86
|
-
@job_complete.signal
|
87
|
-
end
|
61
|
+
Async.logger.debug (self) {"Running server..."}
|
62
|
+
server.run
|
88
63
|
end
|
89
64
|
end
|
90
65
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: falcon-capybara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05
|
11
|
+
date: 2020-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -66,34 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: bake-bundler
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: bake-modernize
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
69
|
- !ruby/object:Gem::Dependency
|
98
70
|
name: bundler
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,14 +122,16 @@ dependencies:
|
|
150
122
|
- - "~>"
|
151
123
|
- !ruby/object:Gem::Version
|
152
124
|
version: '4.0'
|
153
|
-
description:
|
154
|
-
email:
|
125
|
+
description:
|
126
|
+
email:
|
155
127
|
executables: []
|
156
128
|
extensions: []
|
157
129
|
extra_rdoc_files: []
|
158
130
|
files:
|
159
131
|
- lib/falcon/capybara.rb
|
132
|
+
- lib/falcon/capybara/drivers.md
|
160
133
|
- lib/falcon/capybara/drivers.rb
|
134
|
+
- lib/falcon/capybara/servers.md
|
161
135
|
- lib/falcon/capybara/servers.rb
|
162
136
|
- lib/falcon/capybara/version.rb
|
163
137
|
- lib/falcon/capybara/wrapper.rb
|
@@ -165,7 +139,7 @@ homepage: https://github.com/socketry/falcon-capybara
|
|
165
139
|
licenses:
|
166
140
|
- MIT
|
167
141
|
metadata: {}
|
168
|
-
post_install_message:
|
142
|
+
post_install_message:
|
169
143
|
rdoc_options: []
|
170
144
|
require_paths:
|
171
145
|
- lib
|
@@ -181,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
155
|
version: '0'
|
182
156
|
requirements: []
|
183
157
|
rubygems_version: 3.1.2
|
184
|
-
signing_key:
|
158
|
+
signing_key:
|
185
159
|
specification_version: 4
|
186
160
|
summary: Use the falcon web server to run capybara/selenium tests.
|
187
161
|
test_files: []
|