frameworks-capybara 0.2.13 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,11 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- frameworks-capybara (0.2.13)
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
@@ -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"])
@@ -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
@@ -2,7 +2,8 @@ require 'frameworks/capybara'
2
2
  require 'w3c_validators'
3
3
  require 'monkey-patches/cucumber-patches'
4
4
 
5
- if(ENV['XVFB']=='true')
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
@@ -1,3 +1,3 @@
1
1
  module FrameworksCapybara
2
- VERSION = '0.2.13'
2
+ VERSION = '0.2.14'
3
3
  end
@@ -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: 13
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 13
10
- version: 0.2.13
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: json
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: capybara-celerity
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: w3c_validators
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: *id006
137
+ version_requirements: *id008
110
138
  prerelease: false
111
139
  - !ruby/object:Gem::Dependency
112
140
  type: :development
113
- requirement: &id007 !ruby/object:Gem::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: *id007
151
+ version_requirements: *id009
124
152
  prerelease: false
125
153
  - !ruby/object:Gem::Dependency
126
154
  type: :development
127
- requirement: &id008 !ruby/object:Gem::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: *id008
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: