frameworks-capybara 0.2.13 → 0.2.14
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.
- data/Gemfile.lock +7 -1
- data/frameworks-capybara.gemspec +2 -0
- data/lib/frameworks/capybara.rb +10 -0
- data/lib/frameworks/cucumber.rb +7 -2
- data/lib/version.rb +1 -1
- data/spec/frameworks_capybara_spec.rb +18 -3
- metadata +39 -11
data/Gemfile.lock
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
frameworks-capybara (0.2.
|
4
|
+
frameworks-capybara (0.2.14)
|
5
5
|
capybara (>= 1.0.0)
|
6
6
|
capybara-celerity
|
7
7
|
capybara-mechanize (>= 0.3.0)
|
8
|
+
capybara-webkit
|
8
9
|
cucumber (>= 0.10.5)
|
10
|
+
headless
|
9
11
|
json
|
10
12
|
w3c_validators
|
11
13
|
|
@@ -27,6 +29,9 @@ GEM
|
|
27
29
|
capybara-mechanize (0.3.0)
|
28
30
|
capybara (~> 1.1)
|
29
31
|
mechanize (~> 2.3)
|
32
|
+
capybara-webkit (0.12.1)
|
33
|
+
capybara (>= 1.0.0, < 1.2)
|
34
|
+
json
|
30
35
|
celerity (0.9.2)
|
31
36
|
childprocess (0.3.3)
|
32
37
|
ffi (~> 1.0.6)
|
@@ -41,6 +46,7 @@ GEM
|
|
41
46
|
ffi (1.0.11)
|
42
47
|
gherkin (2.11.1)
|
43
48
|
json (>= 1.4.6)
|
49
|
+
headless (0.3.1)
|
44
50
|
json (1.7.3)
|
45
51
|
libwebsocket (0.1.4)
|
46
52
|
addressable
|
data/frameworks-capybara.gemspec
CHANGED
@@ -22,7 +22,9 @@ Gem::Specification.new do |s|
|
|
22
22
|
|
23
23
|
s.add_runtime_dependency("capybara", [">=1.0.0"])
|
24
24
|
s.add_runtime_dependency("capybara-mechanize", [">=0.3.0"])
|
25
|
+
s.add_runtime_dependency("capybara-webkit")
|
25
26
|
s.add_runtime_dependency("json")
|
27
|
+
s.add_runtime_dependency("headless")
|
26
28
|
s.add_runtime_dependency("capybara-celerity")
|
27
29
|
s.add_runtime_dependency("w3c_validators")
|
28
30
|
s.add_runtime_dependency("cucumber", [">= 0.10.5"])
|
data/lib/frameworks/capybara.rb
CHANGED
@@ -8,6 +8,7 @@ require 'monkey-patches/net-http-persistent-patches'
|
|
8
8
|
require 'selenium-webdriver'
|
9
9
|
require 'capybara/mechanize/cucumber'
|
10
10
|
require 'capybara/celerity'
|
11
|
+
require 'capybara-webkit'
|
11
12
|
|
12
13
|
class CapybaraSetup
|
13
14
|
|
@@ -53,6 +54,8 @@ class CapybaraSetup
|
|
53
54
|
@driver = register_celerity_driver(capybara_opts)
|
54
55
|
when :mechanize then
|
55
56
|
@driver = register_mechanize_driver(capybara_opts)
|
57
|
+
when :webkit then
|
58
|
+
@driver = register_webkit_driver(capybara_opts)
|
56
59
|
else
|
57
60
|
@driver = register_selenium_driver(capybara_opts, selenium_remote_opts, custom_opts)
|
58
61
|
end
|
@@ -162,6 +165,13 @@ class CapybaraSetup
|
|
162
165
|
:mechanize
|
163
166
|
end
|
164
167
|
|
168
|
+
def register_webkit_driver(opts)
|
169
|
+
Capybara.register_driver :webkit do |app|
|
170
|
+
Capybara::Driver::Webkit.new(app)
|
171
|
+
end
|
172
|
+
:webkit
|
173
|
+
end
|
174
|
+
|
165
175
|
def clean_opts(opts, *args)
|
166
176
|
args.each do |arg|
|
167
177
|
opts.delete arg
|
data/lib/frameworks/cucumber.rb
CHANGED
@@ -2,7 +2,8 @@ require 'frameworks/capybara'
|
|
2
2
|
require 'w3c_validators'
|
3
3
|
require 'monkey-patches/cucumber-patches'
|
4
4
|
|
5
|
-
|
5
|
+
#This is hackish but means we only run once in cucumber and not every scenario
|
6
|
+
if(ENV['XVFB']=='true' || ENV['BROWSER'] == 'webkit')
|
6
7
|
puts "You have chosen to use XVFB - ensure you have yum installed Xvfb Xorg and firefox"
|
7
8
|
require 'headless'
|
8
9
|
headless = Headless.new
|
@@ -110,13 +111,17 @@ Before do
|
|
110
111
|
|
111
112
|
page.driver.browser.agent.ca_file = ENV['CA_CERT_LOCATION'] if ENV['CA_CERT_LOCATION']
|
112
113
|
|
113
|
-
#TODO: Fix proxy logic globally...use system proxy instead of PROXY_URL
|
114
114
|
page.driver.browser.agent.set_proxy(http_proxy.scan(/http:\/\/(.*):80/).to_s,80) if http_proxy
|
115
115
|
|
116
116
|
#This is necessary because Mech2 does not ship with root certs like Mech1 did and boxes may not have the OpenSSL set installed
|
117
117
|
page.driver.browser.agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
118
118
|
end
|
119
119
|
|
120
|
+
#TODO: See if this can be set at the driver level rather than in before do - and only want to start headless once
|
121
|
+
if page.driver.class == Capybara::Driver::Webkit
|
122
|
+
page.driver.browser.set_proxy(:host => http_proxy.scan(/http:\/\/(.*):80/).to_s,:port => '80') if http_proxy
|
123
|
+
end
|
124
|
+
|
120
125
|
generate_base_urls
|
121
126
|
end
|
122
127
|
|
data/lib/version.rb
CHANGED
@@ -275,7 +275,7 @@ describe CapybaraSetup do
|
|
275
275
|
end
|
276
276
|
it_behaves_like "Selenium Driver Options Array"
|
277
277
|
end
|
278
|
-
|
278
|
+
|
279
279
|
|
280
280
|
context "with Selenium driver and additional firefox preferences" do
|
281
281
|
before do
|
@@ -294,7 +294,7 @@ describe CapybaraSetup do
|
|
294
294
|
end
|
295
295
|
it_behaves_like "Selenium Driver Options Array"
|
296
296
|
end
|
297
|
-
|
297
|
+
|
298
298
|
|
299
299
|
context "with Selenium driver and new profile and custom prefs" do
|
300
300
|
before do
|
@@ -312,7 +312,7 @@ describe CapybaraSetup do
|
|
312
312
|
end
|
313
313
|
it_behaves_like "Selenium Driver Options Array"
|
314
314
|
end
|
315
|
-
|
315
|
+
|
316
316
|
context "with Remote Selenium driver and specified Chrome Switches" do
|
317
317
|
before do
|
318
318
|
ENV['BROWSER'] = 'remote'
|
@@ -449,6 +449,21 @@ describe CapybaraSetup do
|
|
449
449
|
end
|
450
450
|
|
451
451
|
end
|
452
|
+
|
453
|
+
describe "should allow Webkit driver to be created" do
|
454
|
+
context "with minimal Webkit driver" do
|
455
|
+
before do
|
456
|
+
ENV['BROWSER'] = 'webkit'
|
457
|
+
end
|
458
|
+
|
459
|
+
it "should be initialized correctly" do
|
460
|
+
Capybara.delete_session
|
461
|
+
CapybaraSetup.new.driver.should == :webkit
|
462
|
+
Capybara.current_session.driver.should be_a_kind_of Capybara::Driver::Webkit
|
463
|
+
end
|
464
|
+
end
|
465
|
+
end
|
466
|
+
|
452
467
|
end
|
453
468
|
end
|
454
469
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: frameworks-capybara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 14
|
10
|
+
version: 0.2.14
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- matt robbins
|
@@ -61,7 +61,7 @@ dependencies:
|
|
61
61
|
segments:
|
62
62
|
- 0
|
63
63
|
version: "0"
|
64
|
-
name:
|
64
|
+
name: capybara-webkit
|
65
65
|
version_requirements: *id003
|
66
66
|
prerelease: false
|
67
67
|
- !ruby/object:Gem::Dependency
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
segments:
|
76
76
|
- 0
|
77
77
|
version: "0"
|
78
|
-
name:
|
78
|
+
name: json
|
79
79
|
version_requirements: *id004
|
80
80
|
prerelease: false
|
81
81
|
- !ruby/object:Gem::Dependency
|
@@ -89,12 +89,40 @@ dependencies:
|
|
89
89
|
segments:
|
90
90
|
- 0
|
91
91
|
version: "0"
|
92
|
-
name:
|
92
|
+
name: headless
|
93
93
|
version_requirements: *id005
|
94
94
|
prerelease: false
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
type: :runtime
|
97
97
|
requirement: &id006 !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
hash: 3
|
103
|
+
segments:
|
104
|
+
- 0
|
105
|
+
version: "0"
|
106
|
+
name: capybara-celerity
|
107
|
+
version_requirements: *id006
|
108
|
+
prerelease: false
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
type: :runtime
|
111
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
112
|
+
none: false
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
hash: 3
|
117
|
+
segments:
|
118
|
+
- 0
|
119
|
+
version: "0"
|
120
|
+
name: w3c_validators
|
121
|
+
version_requirements: *id007
|
122
|
+
prerelease: false
|
123
|
+
- !ruby/object:Gem::Dependency
|
124
|
+
type: :runtime
|
125
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
98
126
|
none: false
|
99
127
|
requirements:
|
100
128
|
- - ">="
|
@@ -106,11 +134,11 @@ dependencies:
|
|
106
134
|
- 5
|
107
135
|
version: 0.10.5
|
108
136
|
name: cucumber
|
109
|
-
version_requirements: *
|
137
|
+
version_requirements: *id008
|
110
138
|
prerelease: false
|
111
139
|
- !ruby/object:Gem::Dependency
|
112
140
|
type: :development
|
113
|
-
requirement: &
|
141
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
114
142
|
none: false
|
115
143
|
requirements:
|
116
144
|
- - ">="
|
@@ -120,11 +148,11 @@ dependencies:
|
|
120
148
|
- 0
|
121
149
|
version: "0"
|
122
150
|
name: rake
|
123
|
-
version_requirements: *
|
151
|
+
version_requirements: *id009
|
124
152
|
prerelease: false
|
125
153
|
- !ruby/object:Gem::Dependency
|
126
154
|
type: :development
|
127
|
-
requirement: &
|
155
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
128
156
|
none: false
|
129
157
|
requirements:
|
130
158
|
- - ">="
|
@@ -136,7 +164,7 @@ dependencies:
|
|
136
164
|
- 0
|
137
165
|
version: 1.0.0
|
138
166
|
name: rspec
|
139
|
-
version_requirements: *
|
167
|
+
version_requirements: *id010
|
140
168
|
prerelease: false
|
141
169
|
description: Gem to ease the pain of managing capybara driver config and provide a home for common utils and patches
|
142
170
|
email:
|