frameworks-capybara 0.2.16 → 0.2.17

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- frameworks-capybara (0.2.16)
4
+ frameworks-capybara (0.2.17)
5
5
  capybara (>= 1.0.0)
6
6
  capybara-celerity
7
7
  capybara-mechanize (>= 0.3.0)
@@ -49,7 +49,7 @@ module Frameworks
49
49
  end
50
50
 
51
51
  proxy = ENV['http_proxy'] || ENV['HTTP_PROXY']
52
- @proxy_host = proxy.scan(/http:\/\/(.*):80/)[0][0] if proxy
52
+ @proxy_host = proxy.scan(/http:\/\/(.*):80/)[0][0] if proxy && !proxy.empty?
53
53
  end
54
54
 
55
55
  def validate_online(src)
@@ -89,6 +89,27 @@ module Frameworks
89
89
  @static_sandbox = "#{scheme}://static.sandbox.dev"
90
90
  end
91
91
 
92
+ def setup_mechanize(agent, http_proxy=nil)
93
+ http_proxy = http_proxy || ENV['HTTP_PROXY'] || ENV['http_proxy']
94
+
95
+ if ENV['FW_CERT_LOCATION']
96
+ agent.cert, agent.key = ENV['FW_CERT_LOCATION'], ENV['FW_CERT_LOCATION']
97
+ end
98
+
99
+ agent.ca_file = ENV['CA_CERT_LOCATION'] if ENV['CA_CERT_LOCATION']
100
+ agent.set_proxy(http_proxy.scan(/http:\/\/(.*):80/)[0][0].to_s,80) if http_proxy && !http_proxy.empty?
101
+
102
+ #This is necessary because Mech2 does not ship with root certs like Mech1 did and boxes may not have the OpenSSL set installed
103
+ agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
104
+ end
105
+
106
+ def new_mechanize(http_proxy=nil)
107
+ require 'mechanize'
108
+ agent = Mechanize.new
109
+ setup_mechanize(agent, http_proxy)
110
+ agent
111
+ end
112
+
92
113
  end #EnvHelper
93
114
  end #Frameworks
94
115
 
@@ -100,22 +121,7 @@ World(Frameworks::EnvHelper)
100
121
  Before do
101
122
  #This is ugly but unavoidable since Capybara::RackTest::Driver.reset_host! does @browser = nil and wipes all brower level settings
102
123
  #it was either this or a monkey patch - need to think about pushing a softer reset change to capybara-mechanize to override this
103
- http_proxy = ENV['HTTP_PROXY'] || ENV['http_proxy']
104
- if page.driver.class == Capybara::Mechanize::Driver
105
-
106
- if ENV['FW_CERT_LOCATION']
107
- page.driver.browser.agent.cert, page.driver.browser.agent.key =
108
- ENV['FW_CERT_LOCATION'],
109
- ENV['FW_CERT_LOCATION']
110
- end
111
-
112
- page.driver.browser.agent.ca_file = ENV['CA_CERT_LOCATION'] if ENV['CA_CERT_LOCATION']
113
-
114
- page.driver.browser.agent.set_proxy(http_proxy.scan(/http:\/\/(.*):80/).to_s,80) if http_proxy
115
-
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
- page.driver.browser.agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
118
- end
124
+ setup_mechanize(page.driver.browser.agent) if page.driver.class == Capybara::Mechanize::Driver
119
125
 
120
126
  generate_base_urls
121
127
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module FrameworksCapybara
2
- VERSION = '0.2.16'
2
+ VERSION = '0.2.17'
3
3
  end
@@ -136,5 +136,23 @@ describe Frameworks::EnvHelper do
136
136
  validate_online(xhtml)
137
137
  end
138
138
  =end
139
+ end
140
+
141
+ describe "independent mechanize agent" do
142
+ include Frameworks::EnvHelper
143
+
144
+ it "should allow you to create an independent, configured mechanize object" do
145
+ ENV['HTTP_PROXY'] = 'http://mycache.co.uk:80'
146
+ agent = new_mechanize
147
+ agent.should be_a_kind_of Mechanize
148
+ agent.proxy_addr.should == 'mycache.co.uk'
149
+ end
150
+
151
+ it "the proxy should be separately configurable" do
152
+ agent = new_mechanize(http_proxy='http://mycache.co.uk:80')
153
+ agent.should be_a_kind_of Mechanize
154
+ agent.proxy_addr.should == 'mycache.co.uk'
155
+ end
156
+
139
157
  end
140
158
  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: 55
4
+ hash: 53
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 16
10
- version: 0.2.16
9
+ - 17
10
+ version: 0.2.17
11
11
  platform: ruby
12
12
  authors:
13
13
  - matt robbins
@@ -15,11 +15,10 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-07-18 00:00:00 +01:00
18
+ date: 2012-07-26 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- type: :runtime
23
22
  requirement: &id001 !ruby/object:Gem::Requirement
24
23
  none: false
25
24
  requirements:
@@ -31,11 +30,11 @@ dependencies:
31
30
  - 0
32
31
  - 0
33
32
  version: 1.0.0
34
- name: capybara
35
33
  version_requirements: *id001
36
34
  prerelease: false
37
- - !ruby/object:Gem::Dependency
35
+ name: capybara
38
36
  type: :runtime
37
+ - !ruby/object:Gem::Dependency
39
38
  requirement: &id002 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
@@ -47,11 +46,11 @@ dependencies:
47
46
  - 3
48
47
  - 0
49
48
  version: 0.3.0
50
- name: capybara-mechanize
51
49
  version_requirements: *id002
52
50
  prerelease: false
53
- - !ruby/object:Gem::Dependency
51
+ name: capybara-mechanize
54
52
  type: :runtime
53
+ - !ruby/object:Gem::Dependency
55
54
  requirement: &id003 !ruby/object:Gem::Requirement
56
55
  none: false
57
56
  requirements:
@@ -61,11 +60,11 @@ dependencies:
61
60
  segments:
62
61
  - 0
63
62
  version: "0"
64
- name: json
65
63
  version_requirements: *id003
66
64
  prerelease: false
67
- - !ruby/object:Gem::Dependency
65
+ name: json
68
66
  type: :runtime
67
+ - !ruby/object:Gem::Dependency
69
68
  requirement: &id004 !ruby/object:Gem::Requirement
70
69
  none: false
71
70
  requirements:
@@ -75,11 +74,11 @@ dependencies:
75
74
  segments:
76
75
  - 0
77
76
  version: "0"
78
- name: headless
79
77
  version_requirements: *id004
80
78
  prerelease: false
81
- - !ruby/object:Gem::Dependency
79
+ name: headless
82
80
  type: :runtime
81
+ - !ruby/object:Gem::Dependency
83
82
  requirement: &id005 !ruby/object:Gem::Requirement
84
83
  none: false
85
84
  requirements:
@@ -89,11 +88,11 @@ dependencies:
89
88
  segments:
90
89
  - 0
91
90
  version: "0"
92
- name: capybara-celerity
93
91
  version_requirements: *id005
94
92
  prerelease: false
95
- - !ruby/object:Gem::Dependency
93
+ name: capybara-celerity
96
94
  type: :runtime
95
+ - !ruby/object:Gem::Dependency
97
96
  requirement: &id006 !ruby/object:Gem::Requirement
98
97
  none: false
99
98
  requirements:
@@ -103,11 +102,11 @@ dependencies:
103
102
  segments:
104
103
  - 0
105
104
  version: "0"
106
- name: w3c_validators
107
105
  version_requirements: *id006
108
106
  prerelease: false
109
- - !ruby/object:Gem::Dependency
107
+ name: w3c_validators
110
108
  type: :runtime
109
+ - !ruby/object:Gem::Dependency
111
110
  requirement: &id007 !ruby/object:Gem::Requirement
112
111
  none: false
113
112
  requirements:
@@ -119,11 +118,11 @@ dependencies:
119
118
  - 10
120
119
  - 5
121
120
  version: 0.10.5
122
- name: cucumber
123
121
  version_requirements: *id007
124
122
  prerelease: false
123
+ name: cucumber
124
+ type: :runtime
125
125
  - !ruby/object:Gem::Dependency
126
- type: :development
127
126
  requirement: &id008 !ruby/object:Gem::Requirement
128
127
  none: false
129
128
  requirements:
@@ -133,11 +132,11 @@ dependencies:
133
132
  segments:
134
133
  - 0
135
134
  version: "0"
136
- name: rake
137
135
  version_requirements: *id008
138
136
  prerelease: false
139
- - !ruby/object:Gem::Dependency
137
+ name: rake
140
138
  type: :development
139
+ - !ruby/object:Gem::Dependency
141
140
  requirement: &id009 !ruby/object:Gem::Requirement
142
141
  none: false
143
142
  requirements:
@@ -149,9 +148,10 @@ dependencies:
149
148
  - 0
150
149
  - 0
151
150
  version: 1.0.0
152
- name: rspec
153
151
  version_requirements: *id009
154
152
  prerelease: false
153
+ name: rspec
154
+ type: :development
155
155
  description: Gem to ease the pain of managing capybara driver config and provide a home for common utils and patches
156
156
  email:
157
157
  - mcrobbins@gmail.com