puffing-billy 0.2.1 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,45 +13,61 @@ end
13
13
 
14
14
  module Billy
15
15
  module TestServer
16
+ def initialize
17
+ Thin::Logging.silent = true
18
+ end
19
+
16
20
  def start_test_servers
17
21
  q = Queue.new
18
22
  Thread.new do
19
23
  EM.run do
20
- counter = 0
21
- echo = Proc.new do |env|
22
- req_body = env['rack.input'].read
23
- request_info = "#{env['REQUEST_METHOD']} #{env['PATH_INFO']}"
24
- res_body = request_info
25
- res_body += "\n#{req_body}" unless req_body.empty?
26
- counter += 1
27
- [
28
- 200,
29
- { 'HTTP-X-EchoServer' => request_info,
30
- 'HTTP-X-EchoCount' => "#{counter}" },
31
- [res_body]
32
- ]
33
- end
34
-
35
- Thin::Logging.silent = true
36
-
37
- http_server = Thin::Server.new '127.0.0.1', 0, echo
38
- http_server.start
39
-
40
- https_server = Thin::Server.new '127.0.0.1', 0, echo
41
- https_server.ssl = true
42
- https_server.ssl_options = {
43
- :private_key_file => File.expand_path('../../fixtures/test-server.key', __FILE__),
44
- :cert_chain_file => File.expand_path('../../fixtures/test-server.crt', __FILE__)
45
- }
46
- https_server.start
24
+ echo = echo_app_setup
47
25
 
26
+ http_server = start_server(echo)
48
27
  q.push http_server.backend.get_port
28
+
29
+ https_server = start_server(echo, true)
49
30
  q.push https_server.backend.get_port
31
+
32
+ echo_error = echo_app_setup(500)
33
+ error_server = start_server(echo_error)
34
+ q.push error_server.backend.get_port
50
35
  end
51
36
  end
52
37
 
53
- @http_url = "http://localhost:#{q.pop}"
38
+ @http_url = "http://localhost:#{q.pop}"
54
39
  @https_url = "https://localhost:#{q.pop}"
40
+ @error_url = "http://localhost:#{q.pop}"
41
+ end
42
+
43
+ def echo_app_setup(response_code = 200)
44
+ counter = 0
45
+ Proc.new do |env|
46
+ req_body = env['rack.input'].read
47
+ request_info = "#{env['REQUEST_METHOD']} #{env['PATH_INFO']}"
48
+ res_body = request_info
49
+ res_body += "\n#{req_body}" unless req_body.empty?
50
+ counter += 1
51
+ [
52
+ response_code,
53
+ { 'HTTP-X-EchoServer' => request_info,
54
+ 'HTTP-X-EchoCount' => "#{counter}" },
55
+ [res_body]
56
+ ]
57
+ end
58
+ end
59
+
60
+ def start_server(echo, ssl = false)
61
+ http_server = Thin::Server.new '127.0.0.1', 0, echo
62
+ if ssl
63
+ http_server.ssl = true
64
+ http_server.ssl_options = {
65
+ :private_key_file => File.expand_path('../../fixtures/test-server.key', __FILE__),
66
+ :cert_chain_file => File.expand_path('../../fixtures/test-server.crt', __FILE__)
67
+ }
68
+ end
69
+ http_server.start
70
+ http_server
55
71
  end
56
72
  end
57
73
  end
metadata CHANGED
@@ -1,286 +1,251 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puffing-billy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease:
4
+ version: 0.2.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Olly Smith
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-12 00:00:00.000000000 Z
11
+ date: 2014-02-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: thin
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: faraday
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: poltergeist
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: selenium-webdriver
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ">="
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ">="
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: capybara-webkit
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - "~>"
100
88
  - !ruby/object:Gem::Version
101
- version: '0'
89
+ version: '1.0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - "~>"
108
95
  - !ruby/object:Gem::Version
109
- version: '0'
96
+ version: '1.0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rack
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - ">="
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - ">="
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: guard
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ! '>='
115
+ - - ">="
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0'
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ! '>='
122
+ - - ">="
140
123
  - !ruby/object:Gem::Version
141
124
  version: '0'
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: rb-inotify
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ! '>='
129
+ - - ">="
148
130
  - !ruby/object:Gem::Version
149
131
  version: '0'
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ! '>='
136
+ - - ">="
156
137
  - !ruby/object:Gem::Version
157
138
  version: '0'
158
139
  - !ruby/object:Gem::Dependency
159
- name: rspec
140
+ name: pry
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
- - - ! '>='
143
+ - - ">="
164
144
  - !ruby/object:Gem::Version
165
145
  version: '0'
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
- - - ! '>='
150
+ - - ">="
172
151
  - !ruby/object:Gem::Version
173
152
  version: '0'
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: cucumber
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
- - - ! '>='
157
+ - - ">="
180
158
  - !ruby/object:Gem::Version
181
159
  version: '0'
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
- - - ! '>='
164
+ - - ">="
188
165
  - !ruby/object:Gem::Version
189
166
  version: '0'
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: eventmachine
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
- - - ! '>='
171
+ - - ">="
196
172
  - !ruby/object:Gem::Version
197
173
  version: '0'
198
174
  type: :runtime
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
- - - ! '>='
178
+ - - ">="
204
179
  - !ruby/object:Gem::Version
205
180
  version: '0'
206
181
  - !ruby/object:Gem::Dependency
207
182
  name: em-http-request
208
183
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
184
  requirements:
211
- - - ! '>='
185
+ - - ">="
212
186
  - !ruby/object:Gem::Version
213
187
  version: '0'
214
188
  type: :runtime
215
189
  prerelease: false
216
190
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
191
  requirements:
219
- - - ! '>='
192
+ - - ">="
220
193
  - !ruby/object:Gem::Version
221
194
  version: '0'
222
195
  - !ruby/object:Gem::Dependency
223
196
  name: eventmachine_httpserver
224
197
  requirement: !ruby/object:Gem::Requirement
225
- none: false
226
198
  requirements:
227
- - - ! '>='
199
+ - - ">="
228
200
  - !ruby/object:Gem::Version
229
201
  version: '0'
230
202
  type: :runtime
231
203
  prerelease: false
232
204
  version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
205
  requirements:
235
- - - ! '>='
206
+ - - ">="
236
207
  - !ruby/object:Gem::Version
237
208
  version: '0'
238
209
  - !ruby/object:Gem::Dependency
239
210
  name: http_parser.rb
240
211
  requirement: !ruby/object:Gem::Requirement
241
- none: false
242
212
  requirements:
243
- - - ! '>='
213
+ - - ">="
244
214
  - !ruby/object:Gem::Version
245
215
  version: '0'
246
216
  type: :runtime
247
217
  prerelease: false
248
218
  version_requirements: !ruby/object:Gem::Requirement
249
- none: false
250
219
  requirements:
251
- - - ! '>='
220
+ - - ">="
252
221
  - !ruby/object:Gem::Version
253
222
  version: '0'
254
223
  - !ruby/object:Gem::Dependency
255
224
  name: multi_json
256
225
  requirement: !ruby/object:Gem::Requirement
257
- none: false
258
226
  requirements:
259
- - - ! '>='
227
+ - - ">="
260
228
  - !ruby/object:Gem::Version
261
229
  version: '0'
262
230
  type: :runtime
263
231
  prerelease: false
264
232
  version_requirements: !ruby/object:Gem::Requirement
265
- none: false
266
233
  requirements:
267
- - - ! '>='
234
+ - - ">="
268
235
  - !ruby/object:Gem::Version
269
236
  version: '0'
270
237
  - !ruby/object:Gem::Dependency
271
238
  name: capybara
272
239
  requirement: !ruby/object:Gem::Requirement
273
- none: false
274
240
  requirements:
275
- - - ! '>='
241
+ - - ">="
276
242
  - !ruby/object:Gem::Version
277
243
  version: '0'
278
244
  type: :runtime
279
245
  prerelease: false
280
246
  version_requirements: !ruby/object:Gem::Requirement
281
- none: false
282
247
  requirements:
283
- - - ! '>='
248
+ - - ">="
284
249
  - !ruby/object:Gem::Version
285
250
  version: '0'
286
251
  description: A stubbing proxy server for ruby. Connect it to your browser in integration
@@ -292,8 +257,8 @@ executables:
292
257
  extensions: []
293
258
  extra_rdoc_files: []
294
259
  files:
295
- - .gitignore
296
- - .rspec
260
+ - ".gitignore"
261
+ - ".rspec"
297
262
  - Gemfile
298
263
  - Gemfile.lock
299
264
  - Guardfile
@@ -308,53 +273,61 @@ files:
308
273
  - lib/billy/cache.rb
309
274
  - lib/billy/config.rb
310
275
  - lib/billy/cucumber.rb
276
+ - lib/billy/json_utils.rb
311
277
  - lib/billy/mitm.crt
312
278
  - lib/billy/mitm.key
313
279
  - lib/billy/proxy.rb
314
280
  - lib/billy/proxy_connection.rb
315
281
  - lib/billy/proxy_request_stub.rb
282
+ - lib/billy/railtie.rb
316
283
  - lib/billy/rspec.rb
317
284
  - lib/billy/version.rb
285
+ - lib/puffing-billy.rb
286
+ - lib/puffing-billy/rspec.rb
287
+ - lib/tasks/billy.rake
318
288
  - log/.gitkeep
319
289
  - puffing-billy.gemspec
320
290
  - spec/features/examples/facebook_api_spec.rb
321
291
  - spec/features/examples/tumblr_api_spec.rb
322
292
  - spec/fixtures/test-server.crt
323
293
  - spec/fixtures/test-server.key
294
+ - spec/lib/billy/cache_spec.rb
324
295
  - spec/lib/billy/proxy_request_stub_spec.rb
296
+ - spec/lib/billy/resource_utils_spec.rb
325
297
  - spec/lib/proxy_spec.rb
326
298
  - spec/spec_helper.rb
327
299
  - spec/support/test_server.rb
328
300
  homepage: https://github.com/oesmith/puffing-billy
329
301
  licenses: []
302
+ metadata: {}
330
303
  post_install_message:
331
304
  rdoc_options: []
332
305
  require_paths:
333
306
  - lib
334
307
  required_ruby_version: !ruby/object:Gem::Requirement
335
- none: false
336
308
  requirements:
337
- - - ! '>='
309
+ - - ">="
338
310
  - !ruby/object:Gem::Version
339
311
  version: '0'
340
312
  required_rubygems_version: !ruby/object:Gem::Requirement
341
- none: false
342
313
  requirements:
343
- - - ! '>='
314
+ - - ">="
344
315
  - !ruby/object:Gem::Version
345
316
  version: '0'
346
317
  requirements: []
347
318
  rubyforge_project:
348
- rubygems_version: 1.8.23
319
+ rubygems_version: 2.2.0
349
320
  signing_key:
350
- specification_version: 3
321
+ specification_version: 4
351
322
  summary: Easy request stubs for browser tests.
352
323
  test_files:
353
324
  - spec/features/examples/facebook_api_spec.rb
354
325
  - spec/features/examples/tumblr_api_spec.rb
355
326
  - spec/fixtures/test-server.crt
356
327
  - spec/fixtures/test-server.key
328
+ - spec/lib/billy/cache_spec.rb
357
329
  - spec/lib/billy/proxy_request_stub_spec.rb
330
+ - spec/lib/billy/resource_utils_spec.rb
358
331
  - spec/lib/proxy_spec.rb
359
332
  - spec/spec_helper.rb
360
333
  - spec/support/test_server.rb