http_stub 0.23.1 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/lib/http_stub.rb +4 -3
  3. data/lib/http_stub/configurer/dsl/server.rb +9 -0
  4. data/lib/http_stub/configurer/server/command.rb +1 -1
  5. data/lib/http_stub/configurer/server/command_processor.rb +2 -2
  6. data/lib/http_stub/rake/server_tasks.rb +11 -7
  7. data/lib/http_stub/server/application/application.rb +115 -0
  8. data/lib/http_stub/server/application/cross_origin_support.rb +34 -0
  9. data/lib/http_stub/server/application/response_pipeline.rb +20 -0
  10. data/lib/http_stub/server/application/text_formatting_support.rb +21 -0
  11. data/lib/http_stub/server/public/jquery-2.2.4.min.js +4 -0
  12. data/lib/http_stub/server/stub/response/file.rb +2 -2
  13. data/lib/http_stub/server/stub/response/text.rb +2 -2
  14. data/lib/http_stub/server/views/_activate_scenario.haml +1 -1
  15. data/lib/http_stub/server/views/layout.haml +1 -1
  16. data/lib/http_stub/version.rb +1 -1
  17. data/spec/acceptance/cross_origin_support_spec.rb +127 -0
  18. data/spec/acceptance/stub_match_spec.rb +0 -1
  19. data/spec/lib/http_stub/configurer/dsl/stub_builder_spec.rb +0 -4
  20. data/spec/lib/http_stub/configurer/request/stub_spec.rb +0 -7
  21. data/spec/lib/http_stub/configurer/server/command_processor_integration_spec.rb +2 -1
  22. data/spec/lib/http_stub/rake/server_tasks_smoke_spec.rb +7 -4
  23. data/spec/lib/http_stub/server/{application_integration_spec.rb → application/application_integration_spec.rb} +1 -1
  24. data/spec/lib/http_stub/server/{application_spec.rb → application/application_spec.rb} +8 -4
  25. data/spec/lib/http_stub/server/application/cross_origin_support_spec.rb +114 -0
  26. data/spec/lib/http_stub/server/{response_pipeline_spec.rb → application/response_pipeline_spec.rb} +5 -5
  27. data/spec/lib/http_stub/server/{application_helpers_spec.rb → application/text_formatting_support_spec.rb} +4 -4
  28. data/spec/lib/http_stub/server/registry_spec.rb +0 -5
  29. data/spec/spec_helper.rb +5 -14
  30. data/spec/support/browser_integration.rb +9 -0
  31. data/spec/support/cross_origin_server/application.rb +5 -0
  32. data/spec/support/cross_origin_server/index_page.rb +26 -0
  33. data/spec/support/cross_origin_server/integration.rb +24 -0
  34. data/spec/support/cross_origin_server/public/index.html +33 -0
  35. data/spec/support/server_integration.rb +9 -3
  36. metadata +56 -41
  37. data/lib/http_stub/server/application.rb +0 -110
  38. data/lib/http_stub/server/application_helpers.rb +0 -19
  39. data/lib/http_stub/server/public/jquery-2.2.1.min.js +0 -4
  40. data/lib/http_stub/server/response_pipeline.rb +0 -18
@@ -0,0 +1,24 @@
1
+ shared_context "cross origin server integration" do
2
+
3
+ before(:context) do
4
+ @cross_origin_server_pid = Process.spawn("ruby #{File.dirname(__FILE__)}/application.rb")
5
+ ::Wait.until!(description: "cross origin server started") do
6
+ Net::HTTP.get_response(cross_origin_server_host, "/", cross_origin_server_port)
7
+ end
8
+ end
9
+
10
+ after(:context) { Process.kill(9, @cross_origin_server_pid) }
11
+
12
+ def cross_origin_server_host
13
+ "localhost"
14
+ end
15
+
16
+ def cross_origin_server_port
17
+ 8005
18
+ end
19
+
20
+ def cross_origin_server_uri
21
+ "http://#{cross_origin_server_host}:#{cross_origin_server_port}"
22
+ end
23
+
24
+ end
@@ -0,0 +1,33 @@
1
+ <html>
2
+ <head>
3
+ <script type="application/javascript">
4
+
5
+ function activateScenario() {
6
+ var request = new XMLHttpRequest();
7
+ request.open("POST", "http://localhost:8001/http_stub/scenarios/activate", false);
8
+ request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
9
+
10
+ var result = "Failed";
11
+ try {
12
+ request.send(encodeURI("name=" + document.getElementById("scenario_name").value));
13
+ if (request.status == 200) {
14
+ result = "Succeeded";
15
+ }
16
+ } catch(error) {
17
+ //Intentionally blank
18
+ }
19
+
20
+ document.getElementById("response_indicator").innerHTML = result;
21
+ }
22
+
23
+ </script>
24
+ </head>
25
+ <body>
26
+ <label for="scenario_name">Scenario Name: </label><input id="scenario_name" type="text" />
27
+ <br/>
28
+ <button id="activate_scenario" onclick="activateScenario()">Activate</button>
29
+ <br/>
30
+ <hr/>
31
+ <label>Cross-Origin Request Response:</label><span id="response_indicator">&nbsp;</span>
32
+ </body>
33
+ </html>
@@ -3,11 +3,17 @@ shared_context "server integration" do
3
3
  include HtmlHelpers
4
4
 
5
5
  before(:context) do
6
- @pid = Process.spawn("rake example_server:start:foreground --trace")
7
- ::Wait.until!(description: "http stub server started") { Net::HTTP.get_response(server_host, "/", server_port) }
6
+ @server_pid = Process.spawn("rake #{server_name}:start:foreground --trace")
7
+ ::Wait.until!(description: "http stub server #{server_name} started") do
8
+ Net::HTTP.get_response(server_host, "/", server_port)
9
+ end
8
10
  end
9
11
 
10
- after(:context) { Process.kill(9, @pid) }
12
+ after(:context) { Process.kill(9, @server_pid) }
13
+
14
+ def server_name
15
+ "example_server"
16
+ end
11
17
 
12
18
  def server_host
13
19
  "localhost"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_stub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.1
4
+ version: 0.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - dueckes
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2016-05-30 00:00:00.000000000 Z
15
+ date: 2016-07-15 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rake
@@ -146,56 +146,56 @@ dependencies:
146
146
  requirements:
147
147
  - - "~>"
148
148
  - !ruby/object:Gem::Version
149
- version: '0.40'
149
+ version: '0.41'
150
150
  type: :development
151
151
  prerelease: false
152
152
  version_requirements: !ruby/object:Gem::Requirement
153
153
  requirements:
154
154
  - - "~>"
155
155
  - !ruby/object:Gem::Version
156
- version: '0.40'
156
+ version: '0.41'
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: rspec
159
159
  requirement: !ruby/object:Gem::Requirement
160
160
  requirements:
161
161
  - - "~>"
162
162
  - !ruby/object:Gem::Version
163
- version: '3.4'
163
+ version: '3.5'
164
164
  type: :development
165
165
  prerelease: false
166
166
  version_requirements: !ruby/object:Gem::Requirement
167
167
  requirements:
168
168
  - - "~>"
169
169
  - !ruby/object:Gem::Version
170
- version: '3.4'
170
+ version: '3.5'
171
171
  - !ruby/object:Gem::Dependency
172
- name: coderay
172
+ name: nokogiri
173
173
  requirement: !ruby/object:Gem::Requirement
174
174
  requirements:
175
175
  - - "~>"
176
176
  - !ruby/object:Gem::Version
177
- version: '1.1'
177
+ version: '1.6'
178
178
  type: :development
179
179
  prerelease: false
180
180
  version_requirements: !ruby/object:Gem::Requirement
181
181
  requirements:
182
182
  - - "~>"
183
183
  - !ruby/object:Gem::Version
184
- version: '1.1'
184
+ version: '1.6'
185
185
  - !ruby/object:Gem::Dependency
186
- name: rack-test
186
+ name: httparty
187
187
  requirement: !ruby/object:Gem::Requirement
188
188
  requirements:
189
189
  - - "~>"
190
190
  - !ruby/object:Gem::Version
191
- version: '0.6'
191
+ version: '0.13'
192
192
  type: :development
193
193
  prerelease: false
194
194
  version_requirements: !ruby/object:Gem::Requirement
195
195
  requirements:
196
196
  - - "~>"
197
197
  - !ruby/object:Gem::Version
198
- version: '0.6'
198
+ version: '0.13'
199
199
  - !ruby/object:Gem::Dependency
200
200
  name: json
201
201
  requirement: !ruby/object:Gem::Requirement
@@ -211,89 +211,89 @@ dependencies:
211
211
  - !ruby/object:Gem::Version
212
212
  version: '1.8'
213
213
  - !ruby/object:Gem::Dependency
214
- name: httparty
214
+ name: rack-test
215
215
  requirement: !ruby/object:Gem::Requirement
216
216
  requirements:
217
217
  - - "~>"
218
218
  - !ruby/object:Gem::Version
219
- version: '0.13'
219
+ version: '0.6'
220
220
  type: :development
221
221
  prerelease: false
222
222
  version_requirements: !ruby/object:Gem::Requirement
223
223
  requirements:
224
224
  - - "~>"
225
225
  - !ruby/object:Gem::Version
226
- version: '0.13'
226
+ version: '0.6'
227
227
  - !ruby/object:Gem::Dependency
228
- name: nokogiri
228
+ name: wait_until
229
229
  requirement: !ruby/object:Gem::Requirement
230
230
  requirements:
231
231
  - - "~>"
232
232
  - !ruby/object:Gem::Version
233
- version: '1.6'
233
+ version: '0.3'
234
234
  type: :development
235
235
  prerelease: false
236
236
  version_requirements: !ruby/object:Gem::Requirement
237
237
  requirements:
238
238
  - - "~>"
239
239
  - !ruby/object:Gem::Version
240
- version: '1.6'
240
+ version: '0.3'
241
241
  - !ruby/object:Gem::Dependency
242
- name: wait_until
242
+ name: selenium-webdriver
243
243
  requirement: !ruby/object:Gem::Requirement
244
244
  requirements:
245
245
  - - "~>"
246
246
  - !ruby/object:Gem::Version
247
- version: '0.3'
247
+ version: '2.53'
248
248
  type: :development
249
249
  prerelease: false
250
250
  version_requirements: !ruby/object:Gem::Requirement
251
251
  requirements:
252
252
  - - "~>"
253
253
  - !ruby/object:Gem::Version
254
- version: '0.3'
254
+ version: '2.53'
255
255
  - !ruby/object:Gem::Dependency
256
256
  name: simplecov
257
257
  requirement: !ruby/object:Gem::Requirement
258
258
  requirements:
259
259
  - - "~>"
260
260
  - !ruby/object:Gem::Version
261
- version: '0.11'
261
+ version: '0.12'
262
262
  type: :development
263
263
  prerelease: false
264
264
  version_requirements: !ruby/object:Gem::Requirement
265
265
  requirements:
266
266
  - - "~>"
267
267
  - !ruby/object:Gem::Version
268
- version: '0.11'
268
+ version: '0.12'
269
269
  - !ruby/object:Gem::Dependency
270
- name: travis-lint
270
+ name: codeclimate-test-reporter
271
271
  requirement: !ruby/object:Gem::Requirement
272
272
  requirements:
273
273
  - - "~>"
274
274
  - !ruby/object:Gem::Version
275
- version: '2.0'
275
+ version: '0.6'
276
276
  type: :development
277
277
  prerelease: false
278
278
  version_requirements: !ruby/object:Gem::Requirement
279
279
  requirements:
280
280
  - - "~>"
281
281
  - !ruby/object:Gem::Version
282
- version: '2.0'
282
+ version: '0.6'
283
283
  - !ruby/object:Gem::Dependency
284
- name: codeclimate-test-reporter
284
+ name: travis-lint
285
285
  requirement: !ruby/object:Gem::Requirement
286
286
  requirements:
287
287
  - - "~>"
288
288
  - !ruby/object:Gem::Version
289
- version: '0.5'
289
+ version: '2.0'
290
290
  type: :development
291
291
  prerelease: false
292
292
  version_requirements: !ruby/object:Gem::Requirement
293
293
  requirements:
294
294
  - - "~>"
295
295
  - !ruby/object:Gem::Version
296
- version: '0.5'
296
+ version: '2.0'
297
297
  description: fakeweb for a HTTP server, informing it to stub / fake responses
298
298
  email: matthew.ueckerman@myob.com
299
299
  executables: []
@@ -336,18 +336,19 @@ files:
336
336
  - "./lib/http_stub/rake/server_daemon_tasks.rb"
337
337
  - "./lib/http_stub/rake/server_tasks.rb"
338
338
  - "./lib/http_stub/rake/task_generators.rb"
339
- - "./lib/http_stub/server/application.rb"
340
- - "./lib/http_stub/server/application_helpers.rb"
339
+ - "./lib/http_stub/server/application/application.rb"
340
+ - "./lib/http_stub/server/application/cross_origin_support.rb"
341
+ - "./lib/http_stub/server/application/response_pipeline.rb"
342
+ - "./lib/http_stub/server/application/text_formatting_support.rb"
341
343
  - "./lib/http_stub/server/daemon.rb"
342
344
  - "./lib/http_stub/server/public/favicon.ico"
343
- - "./lib/http_stub/server/public/jquery-2.2.1.min.js"
345
+ - "./lib/http_stub/server/public/jquery-2.2.4.min.js"
344
346
  - "./lib/http_stub/server/registry.rb"
345
347
  - "./lib/http_stub/server/request.rb"
346
348
  - "./lib/http_stub/server/request/headers.rb"
347
349
  - "./lib/http_stub/server/request/parameters.rb"
348
350
  - "./lib/http_stub/server/request/request.rb"
349
351
  - "./lib/http_stub/server/response.rb"
350
- - "./lib/http_stub/server/response_pipeline.rb"
351
352
  - "./lib/http_stub/server/scenario.rb"
352
353
  - "./lib/http_stub/server/scenario/activator.rb"
353
354
  - "./lib/http_stub/server/scenario/controller.rb"
@@ -407,6 +408,7 @@ files:
407
408
  - "./spec/acceptance/activator_spec.rb"
408
409
  - "./spec/acceptance/configurer_initialization_spec.rb"
409
410
  - "./spec/acceptance/configurer_part_spec.rb"
411
+ - "./spec/acceptance/cross_origin_support_spec.rb"
410
412
  - "./spec/acceptance/endpoint_template_spec.rb"
411
413
  - "./spec/acceptance/request_reference_spec.rb"
412
414
  - "./spec/acceptance/scenario_spec.rb"
@@ -450,9 +452,11 @@ files:
450
452
  - "./spec/lib/http_stub/rake/server_daemon_tasks_smoke_spec.rb"
451
453
  - "./spec/lib/http_stub/rake/server_tasks_smoke_spec.rb"
452
454
  - "./spec/lib/http_stub/rake/server_tasks_spec.rb"
453
- - "./spec/lib/http_stub/server/application_helpers_spec.rb"
454
- - "./spec/lib/http_stub/server/application_integration_spec.rb"
455
- - "./spec/lib/http_stub/server/application_spec.rb"
455
+ - "./spec/lib/http_stub/server/application/application_integration_spec.rb"
456
+ - "./spec/lib/http_stub/server/application/application_spec.rb"
457
+ - "./spec/lib/http_stub/server/application/cross_origin_support_spec.rb"
458
+ - "./spec/lib/http_stub/server/application/response_pipeline_spec.rb"
459
+ - "./spec/lib/http_stub/server/application/text_formatting_support_spec.rb"
456
460
  - "./spec/lib/http_stub/server/daemon_integration_spec.rb"
457
461
  - "./spec/lib/http_stub/server/daemon_spec.rb"
458
462
  - "./spec/lib/http_stub/server/payload_file_consolidator_spec.rb"
@@ -461,7 +465,6 @@ files:
461
465
  - "./spec/lib/http_stub/server/request/parameters_spec.rb"
462
466
  - "./spec/lib/http_stub/server/request/request_spec.rb"
463
467
  - "./spec/lib/http_stub/server/request_spec.rb"
464
- - "./spec/lib/http_stub/server/response_pipeline_spec.rb"
465
468
  - "./spec/lib/http_stub/server/response_spec.rb"
466
469
  - "./spec/lib/http_stub/server/scenario/activator_spec.rb"
467
470
  - "./spec/lib/http_stub/server/scenario/controller_spec.rb"
@@ -504,7 +507,12 @@ files:
504
507
  - "./spec/resources/sample.pdf"
505
508
  - "./spec/resources/sample.txt"
506
509
  - "./spec/spec_helper.rb"
510
+ - "./spec/support/browser_integration.rb"
507
511
  - "./spec/support/configurer_integration.rb"
512
+ - "./spec/support/cross_origin_server/application.rb"
513
+ - "./spec/support/cross_origin_server/index_page.rb"
514
+ - "./spec/support/cross_origin_server/integration.rb"
515
+ - "./spec/support/cross_origin_server/public/index.html"
508
516
  - "./spec/support/html_helpers.rb"
509
517
  - "./spec/support/http_stub/empty_configurer.rb"
510
518
  - "./spec/support/http_stub/scenario_fixture.rb"
@@ -541,6 +549,7 @@ test_files:
541
549
  - "./spec/acceptance/activator_spec.rb"
542
550
  - "./spec/acceptance/configurer_initialization_spec.rb"
543
551
  - "./spec/acceptance/configurer_part_spec.rb"
552
+ - "./spec/acceptance/cross_origin_support_spec.rb"
544
553
  - "./spec/acceptance/endpoint_template_spec.rb"
545
554
  - "./spec/acceptance/request_reference_spec.rb"
546
555
  - "./spec/acceptance/scenario_spec.rb"
@@ -584,9 +593,11 @@ test_files:
584
593
  - "./spec/lib/http_stub/rake/server_daemon_tasks_smoke_spec.rb"
585
594
  - "./spec/lib/http_stub/rake/server_tasks_smoke_spec.rb"
586
595
  - "./spec/lib/http_stub/rake/server_tasks_spec.rb"
587
- - "./spec/lib/http_stub/server/application_helpers_spec.rb"
588
- - "./spec/lib/http_stub/server/application_integration_spec.rb"
589
- - "./spec/lib/http_stub/server/application_spec.rb"
596
+ - "./spec/lib/http_stub/server/application/application_integration_spec.rb"
597
+ - "./spec/lib/http_stub/server/application/application_spec.rb"
598
+ - "./spec/lib/http_stub/server/application/cross_origin_support_spec.rb"
599
+ - "./spec/lib/http_stub/server/application/response_pipeline_spec.rb"
600
+ - "./spec/lib/http_stub/server/application/text_formatting_support_spec.rb"
590
601
  - "./spec/lib/http_stub/server/daemon_integration_spec.rb"
591
602
  - "./spec/lib/http_stub/server/daemon_spec.rb"
592
603
  - "./spec/lib/http_stub/server/payload_file_consolidator_spec.rb"
@@ -595,7 +606,6 @@ test_files:
595
606
  - "./spec/lib/http_stub/server/request/parameters_spec.rb"
596
607
  - "./spec/lib/http_stub/server/request/request_spec.rb"
597
608
  - "./spec/lib/http_stub/server/request_spec.rb"
598
- - "./spec/lib/http_stub/server/response_pipeline_spec.rb"
599
609
  - "./spec/lib/http_stub/server/response_spec.rb"
600
610
  - "./spec/lib/http_stub/server/scenario/activator_spec.rb"
601
611
  - "./spec/lib/http_stub/server/scenario/controller_spec.rb"
@@ -638,7 +648,12 @@ test_files:
638
648
  - "./spec/resources/sample.pdf"
639
649
  - "./spec/resources/sample.txt"
640
650
  - "./spec/spec_helper.rb"
651
+ - "./spec/support/browser_integration.rb"
641
652
  - "./spec/support/configurer_integration.rb"
653
+ - "./spec/support/cross_origin_server/application.rb"
654
+ - "./spec/support/cross_origin_server/index_page.rb"
655
+ - "./spec/support/cross_origin_server/integration.rb"
656
+ - "./spec/support/cross_origin_server/public/index.html"
642
657
  - "./spec/support/html_helpers.rb"
643
658
  - "./spec/support/http_stub/empty_configurer.rb"
644
659
  - "./spec/support/http_stub/scenario_fixture.rb"
@@ -1,110 +0,0 @@
1
- module HttpStub
2
- module Server
3
-
4
- class Application < Sinatra::Base
5
-
6
- SUPPORTED_REQUEST_TYPES = [ :get, :post, :put, :delete, :patch, :options ].freeze
7
-
8
- private_constant :SUPPORTED_REQUEST_TYPES
9
-
10
- set :root, File.dirname(__FILE__)
11
-
12
- register Sinatra::Partial
13
-
14
- enable :dump_errors, :logging, :partial_underscores
15
- disable :protection
16
-
17
- def self.any_request_type(path, opts={}, &block)
18
- SUPPORTED_REQUEST_TYPES.each { |type| self.send(type, path, opts, &block) }
19
- end
20
- private_class_method :any_request_type
21
-
22
- def initialize
23
- super()
24
- @stub_registry = HttpStub::Server::Stub::Registry.new
25
- @scenario_registry = HttpStub::Server::Registry.new("scenario")
26
- @match_result_registry = HttpStub::Server::Registry.new("match result")
27
- @stub_controller = HttpStub::Server::Stub::Controller.new(@stub_registry, @match_result_registry)
28
- @scenario_controller = HttpStub::Server::Scenario::Controller.new(@scenario_registry, @stub_registry)
29
- end
30
-
31
- before do
32
- @response_pipeline = HttpStub::Server::ResponsePipeline.new(self)
33
- @http_stub_request = HttpStub::Server::Request.create(request)
34
- end
35
-
36
- get "/http_stub" do
37
- haml :index, {}
38
- end
39
-
40
- post "/http_stub/stubs" do
41
- response = @stub_controller.register(@http_stub_request, logger)
42
- @response_pipeline.process(response)
43
- end
44
-
45
- get "/http_stub/stubs" do
46
- haml :stubs, {}, stubs: @stub_registry.all
47
- end
48
-
49
- delete "/http_stub/stubs" do
50
- @stub_controller.clear(logger)
51
- halt 200, "OK"
52
- end
53
-
54
- post "/http_stub/stubs/memory" do
55
- @stub_registry.remember
56
- halt 200, "OK"
57
- end
58
-
59
- get "/http_stub/stubs/memory" do
60
- @stub_registry.recall
61
- halt 200, "OK"
62
- end
63
-
64
- get "/http_stub/stubs/matches" do
65
- haml :match_results, {}, match_results: @match_result_registry.all
66
- end
67
-
68
- get "/http_stub/stubs/:id" do
69
- haml :stub, {}, the_stub: @stub_registry.find(params[:id], logger)
70
- end
71
-
72
- post "/http_stub/scenarios" do
73
- response = @scenario_controller.register(@http_stub_request, logger)
74
- @response_pipeline.process(response)
75
- end
76
-
77
- get "/http_stub/scenarios" do
78
- pass unless params[:name]
79
- haml :scenario, {}, scenario: @scenario_registry.find(URI.decode_www_form_component(params[:name]), logger)
80
- end
81
-
82
- get "/http_stub/scenarios" do
83
- haml :scenarios, {}, scenarios: @scenario_registry.all.sort_by(&:name)
84
- end
85
-
86
- post "/http_stub/scenarios/activate" do
87
- response = @scenario_controller.activate(params[:name], logger)
88
- @response_pipeline.process(response)
89
- end
90
-
91
- delete "/http_stub/scenarios" do
92
- @scenario_controller.clear(logger)
93
- halt 200, "OK"
94
- end
95
-
96
- get "/application.css" do
97
- sass :application
98
- end
99
-
100
- any_request_type(//) do
101
- response = @stub_controller.match(@http_stub_request, logger)
102
- @response_pipeline.process(response)
103
- end
104
-
105
- helpers { include HttpStub::Server::ApplicationHelpers }
106
-
107
- end
108
-
109
- end
110
- end