http_stub 0.25.1 → 0.26.0

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.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/lib/http_stub.rb +32 -9
  3. data/lib/http_stub/configurer.rb +2 -10
  4. data/lib/http_stub/configurer/dsl/scenario_builder.rb +13 -11
  5. data/lib/http_stub/configurer/dsl/server.rb +32 -43
  6. data/lib/http_stub/configurer/dsl/server_endpoint_template.rb +23 -0
  7. data/lib/http_stub/configurer/dsl/session.rb +55 -0
  8. data/lib/http_stub/configurer/dsl/session_endpoint_template.rb +22 -0
  9. data/lib/http_stub/configurer/dsl/session_factory.rb +34 -0
  10. data/lib/http_stub/configurer/dsl/stub_builder.rb +18 -8
  11. data/lib/http_stub/configurer/dsl/stub_builder_template.rb +26 -0
  12. data/lib/http_stub/configurer/request/http/basic.rb +9 -3
  13. data/lib/http_stub/configurer/request/http/factory.rb +7 -16
  14. data/lib/http_stub/configurer/request/http/multipart.rb +5 -7
  15. data/lib/http_stub/configurer/request/stub.rb +3 -3
  16. data/lib/http_stub/configurer/request/triggers.rb +25 -0
  17. data/lib/http_stub/configurer/server/command_processor.rb +8 -10
  18. data/lib/http_stub/configurer/server/configuration.rb +33 -0
  19. data/lib/http_stub/configurer/server/facade.rb +21 -43
  20. data/lib/http_stub/configurer/server/request_processor.rb +2 -2
  21. data/lib/http_stub/configurer/server/session_facade.rb +64 -0
  22. data/lib/http_stub/extensions/core/uri.rb +28 -0
  23. data/lib/http_stub/extensions/rack/handler.rb +1 -0
  24. data/lib/http_stub/extensions/sinatra/namespace.rb +9 -0
  25. data/lib/http_stub/rake/server_tasks.rb +1 -4
  26. data/lib/http_stub/server/application/application.rb +17 -98
  27. data/lib/http_stub/server/application/configuration.rb +38 -0
  28. data/lib/http_stub/server/application/cross_origin_support.rb +7 -5
  29. data/lib/http_stub/server/application/request_support.rb +38 -0
  30. data/lib/http_stub/server/application/response_support.rb +19 -0
  31. data/lib/http_stub/server/application/routes/memory.rb +37 -0
  32. data/lib/http_stub/server/application/routes/resource.rb +23 -0
  33. data/lib/http_stub/server/application/routes/scenario.rb +52 -0
  34. data/lib/http_stub/server/application/routes/session.rb +65 -0
  35. data/lib/http_stub/server/application/routes/stub.rb +75 -0
  36. data/lib/http_stub/server/application/session_uri_support.rb +15 -0
  37. data/lib/http_stub/server/memory/controller.rb +25 -0
  38. data/lib/http_stub/server/memory/memory.rb +32 -0
  39. data/lib/http_stub/server/registry.rb +25 -8
  40. data/lib/http_stub/server/request/factory.rb +23 -0
  41. data/lib/http_stub/server/request/parameters.rb +2 -2
  42. data/lib/http_stub/server/request/request.rb +6 -11
  43. data/lib/http_stub/server/request/sinatra_request.rb +26 -0
  44. data/lib/http_stub/server/scenario/controller.rb +16 -11
  45. data/lib/http_stub/server/scenario/not_found_error.rb +15 -0
  46. data/lib/http_stub/server/session.rb +14 -0
  47. data/lib/http_stub/server/session/configuration.rb +32 -0
  48. data/lib/http_stub/server/session/controller.rb +40 -0
  49. data/lib/http_stub/server/session/empty.rb +15 -0
  50. data/lib/http_stub/server/session/identifier_strategy.rb +24 -0
  51. data/lib/http_stub/server/session/registry.rb +38 -0
  52. data/lib/http_stub/server/session/session.rb +80 -0
  53. data/lib/http_stub/server/stub/controller.rb +18 -12
  54. data/lib/http_stub/server/stub/empty.rb +1 -1
  55. data/lib/http_stub/server/stub/match/controller.rb +9 -5
  56. data/lib/http_stub/server/stub/payload/response_body_modifier.rb +3 -1
  57. data/lib/http_stub/server/stub/registry.rb +6 -13
  58. data/lib/http_stub/server/stub/triggers.rb +11 -9
  59. data/lib/http_stub/server/views/_home.haml +2 -0
  60. data/lib/http_stub/server/views/_post_link_function.haml +26 -0
  61. data/lib/http_stub/server/views/_session.haml +16 -0
  62. data/lib/http_stub/server/views/_stub.haml +8 -2
  63. data/lib/http_stub/server/views/_stubs.haml +4 -0
  64. data/lib/http_stub/server/views/application.sass +4 -1
  65. data/lib/http_stub/server/views/layout.haml +1 -0
  66. data/lib/http_stub/server/views/scenario.haml +4 -3
  67. data/lib/http_stub/server/views/scenarios.haml +7 -6
  68. data/lib/http_stub/server/views/session.haml +3 -0
  69. data/lib/http_stub/server/views/sessions.haml +6 -0
  70. data/lib/http_stub/server/views/stubs.haml +1 -4
  71. data/lib/http_stub/server/views/transactional_session.haml +2 -0
  72. data/lib/http_stub/version.rb +1 -1
  73. data/spec/acceptance/configurer_initialization_spec.rb +40 -51
  74. data/spec/acceptance/configurer_part_spec.rb +5 -7
  75. data/spec/acceptance/cross_origin_support_spec.rb +7 -13
  76. data/spec/acceptance/endpoint_template_spec.rb +2 -4
  77. data/spec/acceptance/request_reference_spec.rb +1 -3
  78. data/spec/acceptance/scenario_spec.rb +7 -9
  79. data/spec/acceptance/server_defaults_spec.rb +2 -4
  80. data/spec/acceptance/server_memory_spec.rb +20 -0
  81. data/spec/acceptance/session_spec.rb +125 -0
  82. data/spec/acceptance/stub_body_request_matching_spec.rb +2 -4
  83. data/spec/acceptance/stub_control_values_spec.rb +19 -18
  84. data/spec/acceptance/stub_match_last_spec.rb +0 -4
  85. data/spec/acceptance/stub_match_list_spec.rb +0 -4
  86. data/spec/acceptance/stub_miss_list_spec.rb +0 -4
  87. data/spec/acceptance/stub_spec.rb +11 -11
  88. data/spec/acceptance/stub_trigger_spec.rb +60 -13
  89. data/spec/lib/http_stub/configurer/dsl/scenario_builder_spec.rb +83 -30
  90. data/spec/lib/http_stub/configurer/dsl/server_endpoint_template_spec.rb +167 -0
  91. data/spec/lib/http_stub/configurer/dsl/server_spec.rb +306 -176
  92. data/spec/lib/http_stub/configurer/dsl/session_endpoint_template_spec.rb +150 -0
  93. data/spec/lib/http_stub/configurer/dsl/session_factory_spec.rb +97 -0
  94. data/spec/lib/http_stub/configurer/dsl/session_spec.rb +222 -0
  95. data/spec/lib/http_stub/configurer/dsl/stub_builder_spec.rb +209 -48
  96. data/spec/lib/http_stub/configurer/dsl/stub_builder_template_spec.rb +203 -0
  97. data/spec/lib/http_stub/configurer/request/http/basic_spec.rb +80 -4
  98. data/spec/lib/http_stub/configurer/request/http/factory_spec.rb +115 -56
  99. data/spec/lib/http_stub/configurer/request/http/multipart_spec.rb +39 -6
  100. data/spec/lib/http_stub/configurer/request/stub_spec.rb +50 -108
  101. data/spec/lib/http_stub/configurer/request/triggers_spec.rb +101 -0
  102. data/spec/lib/http_stub/configurer/server/command_processor_integration_spec.rb +11 -10
  103. data/spec/lib/http_stub/configurer/server/configuration_spec.rb +139 -0
  104. data/spec/lib/http_stub/configurer/server/facade_spec.rb +65 -142
  105. data/spec/lib/http_stub/configurer/server/request_processor_spec.rb +7 -6
  106. data/spec/lib/http_stub/configurer/server/session_facade_spec.rb +336 -0
  107. data/spec/lib/http_stub/configurer_spec.rb +105 -0
  108. data/spec/lib/http_stub/extensions/core/uri_spec.rb +75 -0
  109. data/spec/lib/http_stub/extensions/rack/handler_spec.rb +1 -1
  110. data/spec/lib/http_stub/extensions/sinatra/namespace_spec.rb +36 -0
  111. data/spec/lib/http_stub/rake/server_tasks_smoke_spec.rb +4 -3
  112. data/spec/lib/http_stub/rake/server_tasks_spec.rb +47 -10
  113. data/spec/lib/http_stub/server/application/application_spec.rb +44 -301
  114. data/spec/lib/http_stub/server/application/configuration_spec.rb +59 -0
  115. data/spec/lib/http_stub/server/application/cross_origin_support_spec.rb +23 -20
  116. data/spec/lib/http_stub/server/application/request_support_integration_spec.rb +93 -0
  117. data/spec/lib/http_stub/server/application/request_support_spec.rb +61 -0
  118. data/spec/lib/http_stub/server/application/response_support_spec.rb +30 -0
  119. data/spec/lib/http_stub/server/application/routes/memory_spec.rb +41 -0
  120. data/spec/lib/http_stub/server/application/routes/resource_spec.rb +16 -0
  121. data/spec/lib/http_stub/server/application/routes/scenario_spec.rb +117 -0
  122. data/spec/lib/http_stub/server/application/routes/session_integration_spec.rb +46 -0
  123. data/spec/lib/http_stub/server/application/routes/session_spec.rb +186 -0
  124. data/spec/lib/http_stub/server/application/{application_integration_spec.rb → routes/stub_integration_spec.rb} +16 -38
  125. data/spec/lib/http_stub/server/application/routes/stub_spec.rb +202 -0
  126. data/spec/lib/http_stub/server/application/session_uri_support_spec.rb +48 -0
  127. data/spec/lib/http_stub/server/application/text_formatting_support_spec.rb +3 -3
  128. data/spec/lib/http_stub/server/memory/controller_spec.rb +47 -0
  129. data/spec/lib/http_stub/server/memory/memory_spec.rb +122 -0
  130. data/spec/lib/http_stub/server/registry_spec.rb +153 -34
  131. data/spec/lib/http_stub/server/request/factory_spec.rb +74 -0
  132. data/spec/lib/http_stub/server/request/parameters_spec.rb +5 -8
  133. data/spec/lib/http_stub/server/request/request_spec.rb +52 -52
  134. data/spec/lib/http_stub/server/request/sinatra_request_spec.rb +132 -0
  135. data/spec/lib/http_stub/server/scenario/controller_spec.rb +121 -35
  136. data/spec/lib/http_stub/server/scenario/not_found_error_spec.rb +25 -0
  137. data/spec/lib/http_stub/server/session/configuration_spec.rb +94 -0
  138. data/spec/lib/http_stub/server/session/controller_spec.rb +106 -0
  139. data/spec/lib/http_stub/server/session/empty_spec.rb +13 -0
  140. data/spec/lib/http_stub/server/session/identifier_strategy_spec.rb +126 -0
  141. data/spec/lib/http_stub/server/session/registry_spec.rb +214 -0
  142. data/spec/lib/http_stub/server/session/session_spec.rb +444 -0
  143. data/spec/lib/http_stub/server/stub/controller_spec.rb +89 -37
  144. data/spec/lib/http_stub/server/stub/empty_spec.rb +2 -2
  145. data/spec/lib/http_stub/server/stub/match/controller_spec.rb +59 -16
  146. data/spec/lib/http_stub/server/stub/payload/response_body_modifier_spec.rb +7 -8
  147. data/spec/lib/http_stub/server/stub/registry_integration_spec.rb +42 -15
  148. data/spec/lib/http_stub/server/stub/registry_spec.rb +38 -59
  149. data/spec/lib/http_stub/server/stub/triggers_spec.rb +93 -34
  150. data/spec/spec_helper.rb +13 -1
  151. data/spec/support/contain_file.rb +23 -0
  152. data/spec/support/cross_origin_server/application.rb +1 -1
  153. data/spec/support/cross_origin_server/index_page.rb +2 -2
  154. data/spec/support/cross_origin_server/integration.rb +3 -2
  155. data/spec/support/cross_origin_server/public/index.html +2 -1
  156. data/spec/support/http_stub/configurer_integration.rb +12 -14
  157. data/spec/support/http_stub/server/application/http_stub_rack_application_test.rb +47 -0
  158. data/spec/support/http_stub/server/driver.rb +56 -0
  159. data/spec/support/http_stub/server/memory_fixture.rb +17 -0
  160. data/spec/support/http_stub/server/request_fixture.rb +7 -6
  161. data/spec/support/http_stub/server/scenario_fixture.rb +13 -0
  162. data/spec/support/http_stub/server/session_fixture.rb +27 -0
  163. data/spec/support/http_stub/server_integration.rb +12 -17
  164. data/spec/support/http_stub/stub_fixture.rb +19 -6
  165. data/spec/support/include_in_json.rb +4 -4
  166. data/spec/support/rack/rack_application_test.rb +9 -0
  167. data/spec/support/rack/request_fixture.rb +13 -0
  168. data/spec/support/surpressed_output.rb +10 -0
  169. metadata +149 -36
  170. data/lib/http_stub/configurer/dsl/deprecated.rb +0 -60
  171. data/lib/http_stub/configurer/dsl/endpoint_template.rb +0 -38
  172. data/lib/http_stub/configurer/dsl/scenario_activator.rb +0 -15
  173. data/lib/http_stub/configurer/dsl/stub_activator_builder.rb +0 -24
  174. data/lib/http_stub/configurer/dsl/stub_builder_producer.rb +0 -21
  175. data/lib/http_stub/server/request.rb +0 -12
  176. data/lib/http_stub/server/scenario/activator.rb +0 -25
  177. data/lib/http_stub/server/views/_activate_scenario.haml +0 -23
  178. data/lib/http_stub/server/views/index.haml +0 -8
  179. data/spec/acceptance/activator_spec.rb +0 -81
  180. data/spec/lib/http_stub/configurer/dsl/deprecated_spec.rb +0 -240
  181. data/spec/lib/http_stub/configurer/dsl/endpoint_template_spec.rb +0 -255
  182. data/spec/lib/http_stub/configurer/dsl/scenario_activator_spec.rb +0 -62
  183. data/spec/lib/http_stub/configurer/dsl/stub_activator_builder_spec.rb +0 -120
  184. data/spec/lib/http_stub/configurer/dsl/stub_builder_producer_spec.rb +0 -85
  185. data/spec/lib/http_stub/server/request_spec.rb +0 -24
  186. data/spec/lib/http_stub/server/scenario/activator_spec.rb +0 -111
  187. data/spec/support/http_stub/server/scenario/scenario_fixture.rb +0 -15
@@ -0,0 +1,9 @@
1
+ self.instance_eval do
2
+ alias :namespace_pre_sinatra :namespace if self.respond_to?(:namespace, true)
3
+ end
4
+
5
+ require 'sinatra/namespace'
6
+
7
+ self.instance_eval do
8
+ alias :namespace :namespace_pre_sinatra if self.respond_to?(:namespace_pre_sinatra, true)
9
+ end
@@ -26,10 +26,7 @@ module HttpStub
26
26
 
27
27
  def run_application(args)
28
28
  HttpStub::Server::Application::Application.instance_eval do
29
- set :environment, :test
30
- set :port, args[:configurer] ? args[:configurer].stub_server.port : args[:port]
31
- enable :cross_origin_support if args[:configurer] &&
32
- args[:configurer].stub_server.enabled?(:cross_origin_support)
29
+ configure(args)
33
30
  run!
34
31
  end
35
32
  end
@@ -4,120 +4,39 @@ module HttpStub
4
4
 
5
5
  class Application < Sinatra::Base
6
6
 
7
- SUPPORTED_REQUEST_TYPES = [ :get, :post, :put, :delete, :patch, :options ].freeze
8
-
9
- private_constant :SUPPORTED_REQUEST_TYPES
7
+ register Sinatra::Namespace
8
+ register Sinatra::Partial
10
9
 
11
10
  set :root, File.expand_path("../..", __FILE__)
12
-
13
- register Sinatra::Partial
11
+ set :environment, :test
12
+ set :session_identifier, nil
14
13
 
15
14
  enable :dump_errors, :logging, :partial_underscores
16
15
  disable :protection, :cross_origin_support
17
16
 
18
- def self.any_request_type(path, opts={}, &block)
19
- SUPPORTED_REQUEST_TYPES.each { |type| self.send(type, path, opts, &block) }
17
+ def self.configure(args)
18
+ configuration = HttpStub::Server::Application::Configuration.new(args)
19
+ configuration.settings.each { |name, value| set(name, value) }
20
20
  end
21
21
 
22
- private_class_method :any_request_type
23
-
24
22
  def initialize
23
+ @session_configuration = HttpStub::Server::Session::Configuration.new(settings.session_identifier)
24
+ @server_memory = HttpStub::Server::Memory::Memory.new(@session_configuration)
25
25
  super()
26
- @scenario_registry = HttpStub::Server::Registry.new("scenario")
27
- @stub_registry = HttpStub::Server::Stub::Registry.new
28
- @stub_match_registry = HttpStub::Server::Registry.new("stub match")
29
- @stub_miss_registry = HttpStub::Server::Registry.new("stub miss")
30
- @scenario_controller = HttpStub::Server::Scenario::Controller.new(@scenario_registry, @stub_registry)
31
- @stub_controller =
32
- HttpStub::Server::Stub::Controller.new(@stub_registry, @stub_match_registry, @stub_miss_registry)
33
- @stub_match_controller = HttpStub::Server::Stub::Match::Controller.new(@stub_match_registry)
34
26
  end
35
27
 
36
- before do
37
- @response_pipeline = HttpStub::Server::Application::ResponsePipeline.new(self)
38
- @http_stub_request = HttpStub::Server::Request.create(request)
39
- end
28
+ include HttpStub::Server::Application::RequestSupport
29
+ include HttpStub::Server::Application::ResponseSupport
40
30
 
41
31
  register HttpStub::Server::Application::CrossOriginSupport
42
32
 
43
- get "/http_stub" do
44
- haml :index, {}
45
- end
46
-
47
- post "/http_stub/stubs" do
48
- response = @stub_controller.register(@http_stub_request, logger)
49
- @response_pipeline.process(response)
50
- end
51
-
52
- get "/http_stub/stubs" do
53
- haml :stubs, {}, stubs: @stub_registry.all
54
- end
55
-
56
- delete "/http_stub/stubs" do
57
- @stub_controller.clear(logger)
58
- halt 200, "OK"
59
- end
60
-
61
- post "/http_stub/stubs/memory" do
62
- @stub_registry.remember
63
- halt 200, "OK"
64
- end
65
-
66
- get "/http_stub/stubs/memory" do
67
- @stub_registry.recall
68
- halt 200, "OK"
69
- end
70
-
71
- get "/http_stub/stubs/matches" do
72
- haml :stub_matches, {}, matches: @stub_match_registry.all
73
- end
74
-
75
- get "/http_stub/stubs/matches/last" do
76
- response = @stub_match_controller.find_last(@http_stub_request, logger)
77
- @response_pipeline.process(response)
78
- end
79
-
80
- get "/http_stub/stubs/misses" do
81
- haml :stub_misses, {}, misses: @stub_miss_registry.all
82
- end
83
-
84
- get "/http_stub/stubs/:id" do
85
- haml :stub, {}, the_stub: @stub_registry.find(params[:id], logger)
86
- end
87
-
88
- post "/http_stub/scenarios" do
89
- response = @scenario_controller.register(@http_stub_request, logger)
90
- @response_pipeline.process(response)
91
- end
92
-
93
- get "/http_stub/scenarios" do
94
- pass unless params[:name]
95
- haml :scenario, {}, scenario: @scenario_registry.find(URI.decode_www_form_component(params[:name]), logger)
96
- end
97
-
98
- get "/http_stub/scenarios" do
99
- haml :scenarios, {}, scenarios: @scenario_registry.all.sort_by(&:name)
100
- end
101
-
102
- post "/http_stub/scenarios/activate" do
103
- response = @scenario_controller.activate(params[:name], logger)
104
- @response_pipeline.process(response)
105
- end
106
-
107
- delete "/http_stub/scenarios" do
108
- @scenario_controller.clear(logger)
109
- halt 200, "OK"
110
- end
111
-
112
- get "/application.css" do
113
- sass :application
114
- end
115
-
116
- any_request_type "*" do
117
- response = @stub_controller.match(@http_stub_request, logger)
118
- @response_pipeline.process(response)
119
- end
33
+ include HttpStub::Server::Application::Routes::Memory
34
+ include HttpStub::Server::Application::Routes::Resource
35
+ include HttpStub::Server::Application::Routes::Scenario
36
+ include HttpStub::Server::Application::Routes::Session
37
+ include HttpStub::Server::Application::Routes::Stub
120
38
 
39
+ helpers HttpStub::Server::Application::SessionUriSupport
121
40
  helpers HttpStub::Server::Application::TextFormattingSupport
122
41
 
123
42
  end
@@ -0,0 +1,38 @@
1
+ module HttpStub
2
+ module Server
3
+ module Application
4
+
5
+ class Configuration
6
+
7
+ def initialize(args)
8
+ @configurer = args[:configurer]
9
+ @port = args[:port]
10
+ end
11
+
12
+ def settings
13
+ @configurer ? configurer_settings : direct_settings
14
+ end
15
+
16
+ private
17
+
18
+ def configurer_settings
19
+ {
20
+ port: @configurer.stub_server.port,
21
+ session_identifier: @configurer.stub_server.session_identifier,
22
+ cross_origin_support: @configurer.stub_server.enabled?(:cross_origin_support)
23
+ }
24
+ end
25
+
26
+ def direct_settings
27
+ {
28
+ port: @port,
29
+ session_identifier: nil,
30
+ cross_origin_support: false
31
+ }
32
+ end
33
+
34
+ end
35
+
36
+ end
37
+ end
38
+ end
@@ -22,19 +22,21 @@ module HttpStub
22
22
  private
23
23
 
24
24
  def determine_allowed_methods
25
- @http_stub_request.headers["Access_Control_Request_Method"] || @http_stub_request.method.upcase
25
+ http_stub_request.headers["Access_Control_Request_Method"] || http_stub_request.method.upcase
26
26
  end
27
27
 
28
28
  def determine_allowed_headers
29
- @http_stub_request.headers["Access_Control_Request_Headers"] || @http_stub_request.headers.keys.join(",")
29
+ http_stub_request.headers["Access_Control_Request_Headers"] || http_stub_request.headers.keys.join(",")
30
30
  end
31
31
 
32
32
  end
33
33
 
34
34
  def self.registered(application)
35
- application.helpers HttpStub::Server::Application::CrossOriginSupport::Helpers
36
- application.before { add_headers_if_necessary }
37
- application.options("*") { handle_options_if_necessary }
35
+ application.instance_eval do
36
+ helpers HttpStub::Server::Application::CrossOriginSupport::Helpers
37
+ before { add_headers_if_necessary }
38
+ options("*") { handle_options_if_necessary }
39
+ end
38
40
  end
39
41
 
40
42
  end
@@ -0,0 +1,38 @@
1
+ module HttpStub
2
+ module Server
3
+ module Application
4
+
5
+ module RequestSupport
6
+
7
+ STUBBABLE_REQUEST_METHODS = [ :get, :post, :put, :patch, :delete, :options ].freeze
8
+
9
+ private_constant :STUBBABLE_REQUEST_METHODS
10
+
11
+ attr_reader :http_stub_request
12
+
13
+ def initialize
14
+ super()
15
+ @request_factory = HttpStub::Server::Request::Factory.new(@session_configuration, @server_memory)
16
+ end
17
+
18
+ def establish_http_stub_request
19
+ @http_stub_request = @request_factory.create(request, params, logger)
20
+ end
21
+
22
+ def self.included(application)
23
+ application.instance_eval do
24
+
25
+ def self.any_request_method(path, opts={}, &block)
26
+ STUBBABLE_REQUEST_METHODS.each { |request_method| self.send(request_method, path, opts, &block) }
27
+ end
28
+
29
+ before { establish_http_stub_request }
30
+
31
+ end
32
+ end
33
+
34
+ end
35
+
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,19 @@
1
+ module HttpStub
2
+ module Server
3
+ module Application
4
+
5
+ module ResponseSupport
6
+
7
+ def self.included(application)
8
+ application.instance_eval do
9
+
10
+ before { @response_pipeline = HttpStub::Server::Application::ResponsePipeline.new(self) }
11
+
12
+ end
13
+ end
14
+
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,37 @@
1
+ module HttpStub
2
+ module Server
3
+ module Application
4
+ module Routes
5
+
6
+ module Memory
7
+
8
+ def initialize
9
+ super()
10
+ @memory_controller = HttpStub::Server::Memory::Controller.new(@session_configuration, @server_memory)
11
+ end
12
+
13
+ def self.included(application)
14
+ application.instance_eval do
15
+
16
+ namespace "/http_stub/memory" do
17
+
18
+ get do
19
+ haml :stubs, {}, stubs: @memory_controller.find_stubs
20
+ end
21
+
22
+ delete do
23
+ @memory_controller.reset(logger)
24
+ halt 200, "OK"
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,23 @@
1
+ module HttpStub
2
+ module Server
3
+ module Application
4
+ module Routes
5
+
6
+ module Resource
7
+
8
+ def self.included(application)
9
+ application.instance_eval do
10
+
11
+ get "/application.css" do
12
+ sass :application
13
+ end
14
+
15
+ end
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,52 @@
1
+ module HttpStub
2
+ module Server
3
+ module Application
4
+ module Routes
5
+
6
+ module Scenario
7
+
8
+ def initialize
9
+ super()
10
+ @scenario_controller = HttpStub::Server::Scenario::Controller.new(@server_memory)
11
+ end
12
+
13
+ def self.included(application)
14
+ application.instance_eval do
15
+
16
+ namespace "/http_stub/scenarios" do
17
+
18
+ post do
19
+ response = @scenario_controller.register(http_stub_request, logger)
20
+ @response_pipeline.process(response)
21
+ end
22
+
23
+ get do
24
+ pass unless http_stub_request.parameters[:name]
25
+ haml :scenario, {}, scenario: @scenario_controller.find(http_stub_request, logger)
26
+ end
27
+
28
+ get do
29
+ haml :scenarios, {}, scenarios: @scenario_controller.find_all
30
+ end
31
+
32
+ post "/activate" do
33
+ response = @scenario_controller.activate(http_stub_request, logger)
34
+ @response_pipeline.process(response)
35
+ end
36
+
37
+ delete do
38
+ @scenario_controller.clear(logger)
39
+ halt 200, "OK"
40
+ end
41
+
42
+ end
43
+
44
+ end
45
+ end
46
+
47
+ end
48
+
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,65 @@
1
+ module HttpStub
2
+ module Server
3
+ module Application
4
+ module Routes
5
+
6
+ module Session
7
+
8
+ def initialize
9
+ super()
10
+ @session_controller = HttpStub::Server::Session::Controller.new(@session_configuration, @server_memory)
11
+ end
12
+
13
+ def self.included(application)
14
+ application.instance_eval do
15
+
16
+ namespace "/http_stub" do
17
+
18
+ get do
19
+ redirect settings.session_identifier? ? "/http_stub/sessions" : "/http_stub/sessions/transactional"
20
+ end
21
+
22
+ namespace "/sessions" do
23
+
24
+ get "/transactional" do
25
+ haml :transactional_session, {}, session: @session_controller.find_transactional(logger)
26
+ end
27
+
28
+ get do
29
+ pass unless http_stub_request.session_id
30
+ haml :session, {}, session: @session_controller.find(http_stub_request, logger)
31
+ end
32
+
33
+ get do
34
+ haml :sessions, {}, sessions: @session_controller.find_all
35
+ end
36
+
37
+ post "/default" do
38
+ @session_controller.mark_default(http_stub_request)
39
+ halt 200, "OK"
40
+ end
41
+
42
+ delete do
43
+ pass unless http_stub_request.session_id
44
+ @session_controller.delete(http_stub_request, logger)
45
+ halt 200, "OK"
46
+ end
47
+
48
+ delete do
49
+ @session_controller.clear(logger)
50
+ halt 200, "OK"
51
+ end
52
+
53
+ end
54
+
55
+ end
56
+
57
+ end
58
+ end
59
+
60
+ end
61
+
62
+ end
63
+ end
64
+ end
65
+ end