agile-proxy-jruby 0.1.25-jruby

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +7 -0
  2. data/.bowerrc +3 -0
  3. data/.gitignore +10 -0
  4. data/.rspec +2 -0
  5. data/.rubocop.yml +36 -0
  6. data/.travis.yml +10 -0
  7. data/Gemfile +4 -0
  8. data/Guardfile +20 -0
  9. data/LICENSE +22 -0
  10. data/README.md +131 -0
  11. data/Rakefile +15 -0
  12. data/agile-proxy.gemspec +60 -0
  13. data/assets/index.html +39 -0
  14. data/assets/ui/app/AgileProxyApi.js +31 -0
  15. data/assets/ui/app/app.js +1 -0
  16. data/assets/ui/app/controller/Stubs.js +64 -0
  17. data/assets/ui/app/controller/main.js +12 -0
  18. data/assets/ui/app/directive/AppEnhancedFormElement.js +21 -0
  19. data/assets/ui/app/directive/AppFor.js +16 -0
  20. data/assets/ui/app/directive/AppResponseEditor.js +54 -0
  21. data/assets/ui/app/model/RequestSpec.js +6 -0
  22. data/assets/ui/app/routes.js +11 -0
  23. data/assets/ui/app/service/Dialog.js +49 -0
  24. data/assets/ui/app/service/DomId.js +10 -0
  25. data/assets/ui/app/service/Error.js +7 -0
  26. data/assets/ui/app/service/Stub.js +36 -0
  27. data/assets/ui/app/view/404.html +2 -0
  28. data/assets/ui/app/view/dialog/error.html +10 -0
  29. data/assets/ui/app/view/dialog/yesNo.html +8 -0
  30. data/assets/ui/app/view/responses/editForm.html +78 -0
  31. data/assets/ui/app/view/status.html +1 -0
  32. data/assets/ui/app/view/stubs.html +19 -0
  33. data/assets/ui/app/view/stubs/edit.html +58 -0
  34. data/assets/ui/css/main.css +3 -0
  35. data/bin/agile_proxy +4 -0
  36. data/bower.json +27 -0
  37. data/config.yml +6 -0
  38. data/db.yml +10 -0
  39. data/db/migrations/20140818110800_create_users.rb +9 -0
  40. data/db/migrations/20140818134700_create_applications.rb +10 -0
  41. data/db/migrations/20140818135200_create_request_specs.rb +13 -0
  42. data/db/migrations/20140821115300_create_responses.rb +14 -0
  43. data/db/migrations/20140823082900_add_method_to_request_specs.rb +7 -0
  44. data/db/migrations/20140823083900_rename_request_spec_columns.rb +8 -0
  45. data/db/migrations/20141031072100_add_url_type_to_request_specs.rb +8 -0
  46. data/db/migrations/20141105125600_add_conditions_to_request_specs.rb +7 -0
  47. data/db/migrations/20141106083100_add_username_and_password_to_applications.rb +8 -0
  48. data/db/migrations/20141119143800_add_record_to_applications.rb +7 -0
  49. data/db/migrations/20141119174300_create_recordings.rb +18 -0
  50. data/db/migrations/20150221152500_add_record_requests_to_request_specs.rb +7 -0
  51. data/db/schema.rb +78 -0
  52. data/db/seed.rb +26 -0
  53. data/echo_server.rb +19 -0
  54. data/examples/README.md +1 -0
  55. data/examples/facebook_api.html +59 -0
  56. data/examples/tumblr_api.html +22 -0
  57. data/lib/agile_proxy.rb +8 -0
  58. data/lib/agile_proxy/api/applications.rb +77 -0
  59. data/lib/agile_proxy/api/recordings.rb +52 -0
  60. data/lib/agile_proxy/api/request_spec_recordings.rb +52 -0
  61. data/lib/agile_proxy/api/request_specs.rb +86 -0
  62. data/lib/agile_proxy/api/root.rb +45 -0
  63. data/lib/agile_proxy/cli.rb +116 -0
  64. data/lib/agile_proxy/config.rb +66 -0
  65. data/lib/agile_proxy/handlers/handler.rb +43 -0
  66. data/lib/agile_proxy/handlers/proxy_handler.rb +111 -0
  67. data/lib/agile_proxy/handlers/request_handler.rb +75 -0
  68. data/lib/agile_proxy/handlers/stub_handler.rb +146 -0
  69. data/lib/agile_proxy/mitm.crt +22 -0
  70. data/lib/agile_proxy/mitm.key +27 -0
  71. data/lib/agile_proxy/model/application.rb +20 -0
  72. data/lib/agile_proxy/model/recording.rb +17 -0
  73. data/lib/agile_proxy/model/request_spec.rb +48 -0
  74. data/lib/agile_proxy/model/response.rb +51 -0
  75. data/lib/agile_proxy/model/user.rb +17 -0
  76. data/lib/agile_proxy/proxy_connection.rb +112 -0
  77. data/lib/agile_proxy/rack/get_only_cache.rb +30 -0
  78. data/lib/agile_proxy/route.rb +106 -0
  79. data/lib/agile_proxy/router.rb +99 -0
  80. data/lib/agile_proxy/server.rb +119 -0
  81. data/lib/agile_proxy/servers/api.rb +40 -0
  82. data/lib/agile_proxy/servers/request_spec.rb +40 -0
  83. data/lib/agile_proxy/servers/request_spec_direct.rb +35 -0
  84. data/lib/agile_proxy/version.rb +6 -0
  85. data/load_proxy.js +39 -0
  86. data/log/.gitkeep +0 -0
  87. data/spec/common_helper.rb +32 -0
  88. data/spec/fixtures/example_static_file.html +1 -0
  89. data/spec/fixtures/test-server.crt +15 -0
  90. data/spec/fixtures/test-server.key +15 -0
  91. data/spec/integration/helpers/request_spec_helper.rb +84 -0
  92. data/spec/integration/specs/lib/server_spec.rb +474 -0
  93. data/spec/integration_spec_helper.rb +16 -0
  94. data/spec/spec_helper.rb +39 -0
  95. data/spec/support/test_server.rb +105 -0
  96. data/spec/unit/agile_proxy/api/applications_spec.rb +102 -0
  97. data/spec/unit/agile_proxy/api/common_helper.rb +31 -0
  98. data/spec/unit/agile_proxy/api/recordings_spec.rb +115 -0
  99. data/spec/unit/agile_proxy/api/request_spec_recordings_spec.rb +119 -0
  100. data/spec/unit/agile_proxy/api/request_specs_spec.rb +159 -0
  101. data/spec/unit/agile_proxy/handlers/handler_spec.rb +8 -0
  102. data/spec/unit/agile_proxy/handlers/proxy_handler_spec.rb +138 -0
  103. data/spec/unit/agile_proxy/handlers/request_handler_spec.rb +76 -0
  104. data/spec/unit/agile_proxy/handlers/stub_handler_spec.rb +177 -0
  105. data/spec/unit/agile_proxy/model/recording_spec.rb +0 -0
  106. data/spec/unit/agile_proxy/model/request_spec_spec.rb +45 -0
  107. data/spec/unit/agile_proxy/model/response_spec.rb +38 -0
  108. data/spec/unit/agile_proxy/server_spec.rb +91 -0
  109. data/spec/unit/agile_proxy/servers/api_spec.rb +35 -0
  110. data/spec/unit/agile_proxy/servers/request_spec_direct_spec.rb +51 -0
  111. data/spec/unit/agile_proxy/servers/request_spec_spec.rb +35 -0
  112. metadata +736 -0
@@ -0,0 +1,45 @@
1
+ require 'agile_proxy/model/request_spec'
2
+ describe AgileProxy::RequestSpec do
3
+ let(:response_class) do
4
+ Class.new do
5
+ def initialize(config = {})
6
+ @config = config
7
+ end
8
+ attr_accessor :config
9
+
10
+ end
11
+ end
12
+ let(:mock_response) { response_class.new }
13
+ before :each do
14
+ stub_const('AgileProxy::Response', response_class)
15
+ end
16
+ it 'Should allow a nested response' do
17
+ subject.should accept_nested_attributes_for(:response)
18
+ end
19
+ it 'Should belong to a user' do
20
+ expect(subject).to belong_to(:user)
21
+ end
22
+ it 'Should belong to an application' do
23
+ expect(subject).to belong_to(:application)
24
+ end
25
+ it 'Should belong to a response' do
26
+ expect(subject).to belong_to(:response)
27
+ end
28
+
29
+ describe 'Interface for the stub handler' do
30
+ context '#call (without #and_return)' do
31
+ let(:subject) { AgileProxy::RequestSpec.new(url: 'url') }
32
+ it 'returns a 204 empty response' do
33
+ expect(subject).to receive(:response).and_return nil
34
+ expect(subject.call({}, {}, nil)).to eql [204, { 'Content-Type' => 'text/plain' }, '']
35
+ end
36
+ end
37
+ context '#call With conditions' do
38
+ let(:subject) { AgileProxy::RequestSpec.new(url: 'url', conditions: '{"a": 1, "b": 2}') }
39
+ it 'returns a the correct json' do
40
+ expect(subject.conditions_json).to eql('a' => 1, 'b' => 2)
41
+ end
42
+
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,38 @@
1
+ require 'em-synchrony'
2
+ require 'spec_helper'
3
+ describe AgileProxy::Response do
4
+ it 'Should have many requests ' do
5
+ expect(subject).to have_many(:request_specs)
6
+ end
7
+ it 'Should serialize the headers in json format' do
8
+ expect(subject).to serialize(:headers)
9
+ end
10
+ describe 'With a configured delay' do
11
+ before :each do
12
+ subject.delay = 0.5
13
+ subject.content = 'Test'
14
+ subject.content_type = 'text/plain'
15
+ end
16
+ it 'Should respond with a delay using the Em::Synchrony.sleep method' do
17
+ expect(EventMachine::Synchrony).to receive(:sleep).with(0.5)
18
+ expect(subject.to_rack({}, {}, '')).to eql([200, { 'Content-Type' => 'text/plain', 'Cache-Control' => 'no-store' }, ['Test']])
19
+ end
20
+
21
+ end
22
+ describe 'Using templates' do
23
+ describe 'Using text' do
24
+ before :each do
25
+ subject.is_template = true
26
+ subject.content = 'Hello {{name}}'
27
+ subject.content_type = 'text/plain'
28
+ end
29
+ it 'Should pass the params to the template and the output should be correct' do
30
+ expect(subject.to_rack({ name: 'World' }, {}, '')).to eql([200, { 'Content-Type' => 'text/plain', 'Cache-Control' => 'no-store' }, ['Hello World']])
31
+ end
32
+ it 'Should deal with if a parameter is missing' do
33
+ expect(subject.to_rack({}, {}, '')).to eql([200, { 'Content-Type' => 'text/plain', 'Cache-Control' => 'no-store' }, ["Hello "]])
34
+ end
35
+ end
36
+ end
37
+
38
+ end
@@ -0,0 +1,91 @@
1
+ require 'spec_helper'
2
+
3
+ describe AgileProxy::Server do
4
+ let(:subject) { AgileProxy::Server.new }
5
+ let(:active_record_base_class) do
6
+ Class.new do
7
+ def self.establish_connection(_options)
8
+ end
9
+ class << self
10
+ attr_accessor :configurations
11
+ end
12
+ end
13
+ end
14
+ let(:request_spec_server_class) { Class.new }
15
+ let(:request_spec_direct_server_class) { Class.new }
16
+ let(:api_server_class) { Class.new }
17
+ let(:em_class) { Class.new }
18
+ let(:socket_class) { Class.new }
19
+ before :each do
20
+ stub_const('ActiveRecord::Base', active_record_base_class)
21
+ stub_const('::EM', em_class)
22
+ stub_const('AgileProxy::Servers::Api', api_server_class)
23
+ stub_const('AgileProxy::Servers::RequestSpec', request_spec_server_class)
24
+ stub_const('AgileProxy::Servers::RequestSpecDirect', request_spec_direct_server_class)
25
+ end
26
+ context 'Initialization' do
27
+ context 'In test environment' do
28
+ before :each do
29
+ expect(AgileProxy.config).to receive(:environment).and_return 'test'
30
+ expect(active_record_base_class).to receive(:establish_connection).with('adapter' => 'sqlite3', 'database' => 'db/test.db')
31
+ end
32
+ it 'Should establish the correct active record connection according to the environment' do
33
+ subject
34
+
35
+ end
36
+ end
37
+ context 'In development environment' do
38
+ before :each do
39
+ expect(AgileProxy.config).to receive(:environment).and_return 'development'
40
+ expect(active_record_base_class).to receive(:establish_connection).with('adapter' => 'sqlite3', 'database' => 'db/development.db')
41
+ end
42
+ it 'Should establish the correct active record connection according to the environment' do
43
+ subject
44
+
45
+ end
46
+ end
47
+ end
48
+ context 'Starting the servers' do
49
+ it 'Should alias start to main_loop' do
50
+ expect(subject).to receive(:main_loop)
51
+ subject.start
52
+ end
53
+ end
54
+ context 'Within Main Loop' do
55
+
56
+ # Note that we are not really testing the main loop here - it is better tested using integration tests which exercise it properly
57
+ inner_loop = nil
58
+ error_handler = nil
59
+ before :each do
60
+ expect(em_class).to receive(:error_handler) do |&blk|
61
+ error_handler = blk
62
+ end
63
+ expect(api_server_class).to receive(:start).with('localhost', 3020)
64
+ expect_any_instance_of(request_spec_server_class).to receive(:port).at_least(:once).and_return '3100'
65
+ expect(em_class).to receive(:run) do |&blk|
66
+ inner_loop = blk
67
+ end
68
+ expect(request_spec_server_class).to receive(:start).and_return request_spec_server_class.new
69
+ expect(request_spec_direct_server_class).to receive(:start).and_return request_spec_direct_server_class.new
70
+ subject.start
71
+ inner_loop.call
72
+ end
73
+ context 'Server accessors' do
74
+ it 'Should return something from url' do
75
+ expect(subject.url).to eql 'http://localhost:3100'
76
+ end
77
+ it 'Should return something from webserver_host' do
78
+ expect(subject.webserver_host).to eql 'localhost'
79
+ end
80
+ end
81
+ context 'Error handler' do
82
+ let(:exception) { StandardError.new('This is a test error') }
83
+ it 'Should output the errors to stdout' do
84
+ expect(subject).to receive(:puts).at_least(:once)
85
+ expect(exception).to receive(:backtrace).and_return %w(line1 line2)
86
+ error_handler.call(exception)
87
+ end
88
+ end
89
+
90
+ end
91
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+ describe AgileProxy::Servers::Api do
3
+ let(:subject) { AgileProxy::Servers::Api }
4
+ let(:rack_builder_class) { Class.new }
5
+ let(:goliath_runner_class) { Class.new }
6
+ let(:rack_static_class) { Class.new }
7
+ let(:api_root_class) { Class.new }
8
+ before :each do
9
+ stub_const('Goliath::Rack::Builder', rack_builder_class)
10
+ stub_const('Rack::Static', rack_static_class)
11
+ stub_const('Goliath::Runner', goliath_runner_class)
12
+ stub_const('AgileProxy::Api::Root', api_root_class)
13
+ end
14
+ it 'Should start a goliath server when the start method is called' do
15
+ builder_block = nil
16
+ expect(rack_builder_class).to receive(:app) do |&blk|
17
+ builder_block = blk
18
+ rack_builder_class.new.instance_eval(&blk)
19
+ end
20
+ expect_any_instance_of(rack_builder_class).to receive(:use).with(rack_static_class, root: instance_of(String), urls: ['/ui'], index: 'index.html')
21
+ expect_any_instance_of(rack_builder_class).to receive(:map) do |_instance, path, &blk|
22
+ expect(path).to eql '/api'
23
+ expect_any_instance_of(rack_builder_class).to receive(:run).with(kind_of(api_root_class))
24
+ rack_builder_class.new.instance_eval(&blk)
25
+
26
+ end
27
+ expect_any_instance_of(goliath_runner_class).to receive(:run)
28
+ expect_any_instance_of(goliath_runner_class).to receive(:initialize).with([], nil)
29
+ expect_any_instance_of(goliath_runner_class).to receive(:address=).with('localhost')
30
+ expect_any_instance_of(goliath_runner_class).to receive(:port=).with('3020')
31
+ expect_any_instance_of(goliath_runner_class).to receive(:app=)
32
+ subject.start('localhost', '3020')
33
+
34
+ end
35
+ end
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+ describe AgileProxy::Servers::RequestSpecDirect do
3
+ let(:subject) { AgileProxy::Servers::RequestSpecDirect }
4
+ let(:rack_builder_class) { Class.new }
5
+ let(:goliath_runner_class) { Class.new }
6
+ let(:rack_static_class) { Class.new }
7
+ let(:rack_cascade_class) { Class.new }
8
+ let(:stub_handler_class) { Class.new }
9
+ before :each do
10
+ stub_const('Goliath::Rack::Builder', rack_builder_class)
11
+ stub_const('Rack::Static', rack_static_class)
12
+ stub_const('Rack::Cascade', rack_cascade_class)
13
+ stub_const('Goliath::Runner', goliath_runner_class)
14
+ stub_const('AgileProxy::StubHandler', stub_handler_class)
15
+ end
16
+ it 'Should start a rack server with a static handler when the start method is called' do
17
+ builder_block = nil
18
+ expect(rack_builder_class).to receive(:app) do |&blk|
19
+ builder_block = blk
20
+ rack_builder_class.new.instance_eval(&blk)
21
+ end
22
+ expect_any_instance_of(rack_builder_class).to receive(:map) do |_instance, path, &blk|
23
+ expect(path).to eql '/'
24
+ end
25
+ expect_any_instance_of(goliath_runner_class).to receive(:run)
26
+ expect_any_instance_of(goliath_runner_class).to receive(:initialize).with([], nil)
27
+ expect_any_instance_of(goliath_runner_class).to receive(:address=).with('localhost')
28
+ expect_any_instance_of(goliath_runner_class).to receive(:port=).with('3030')
29
+ expect_any_instance_of(goliath_runner_class).to receive(:app=)
30
+ subject.start('localhost', '3030', ['/ui', '/images'])
31
+
32
+ end
33
+ it 'Should start a rack server with no static handler if the start method is called with 2 params' do
34
+ builder_block = nil
35
+ expect(rack_builder_class).to receive(:app) do |&blk|
36
+ builder_block = blk
37
+ rack_builder_class.new.instance_eval(&blk)
38
+ end
39
+ expect_any_instance_of(rack_builder_class).not_to receive(:use)
40
+ expect_any_instance_of(rack_builder_class).to receive(:map) do |_instance, path, &blk|
41
+ expect(path).to eql '/'
42
+ end
43
+ expect_any_instance_of(goliath_runner_class).to receive(:run)
44
+ expect_any_instance_of(goliath_runner_class).to receive(:initialize).with([], nil)
45
+ expect_any_instance_of(goliath_runner_class).to receive(:address=).with('localhost')
46
+ expect_any_instance_of(goliath_runner_class).to receive(:port=).with('3030')
47
+ expect_any_instance_of(goliath_runner_class).to receive(:app=)
48
+ subject.start('localhost', '3030')
49
+
50
+ end
51
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+ describe AgileProxy::Servers::RequestSpec do
3
+ let(:subject) { AgileProxy::Servers::RequestSpec }
4
+ let(:rack_builder_class) { Class.new }
5
+ let(:goliath_runner_class) { Class.new }
6
+ let(:rack_static_class) { Class.new }
7
+ let(:request_handler_class) { Class.new }
8
+ let(:config_class) {Class.new}
9
+ before :each do
10
+ stub_const('Goliath::Rack::Builder', rack_builder_class)
11
+ stub_const('Rack::Static', rack_static_class)
12
+ stub_const('Goliath::Proxy::Runner', goliath_runner_class)
13
+ stub_const('AgileProxy::RequestHandler', request_handler_class)
14
+ stub_const('AgileProxy::Config', config_class)
15
+ end
16
+ context 'With started server' do
17
+ before :each do
18
+ expect_any_instance_of(goliath_runner_class).to receive(:run)
19
+ expect_any_instance_of(goliath_runner_class).to receive(:initialize).with([], nil)
20
+ expect_any_instance_of(goliath_runner_class).to receive(:address=).with('127.0.0.1')
21
+ expect_any_instance_of(goliath_runner_class).to receive(:port=).with('3100')
22
+ expect_any_instance_of(goliath_runner_class).to receive(:app=).with(instance_of(request_handler_class))
23
+ expect(AgileProxy).to receive(:config).at_least(:once).and_return config_class.new
24
+ expect_any_instance_of(config_class).to receive(:proxy_port).at_least(:once).and_return '3100'
25
+ allow_any_instance_of(config_class).to receive(:reset)
26
+ end
27
+ it 'Should start the server and return the instance' do
28
+ expect(subject.start).to be_a_kind_of(subject)
29
+ end
30
+ it 'Should return the port it is running on' do
31
+ expect(subject.start.port).to eql '3100'
32
+
33
+ end
34
+ end
35
+ end
metadata ADDED
@@ -0,0 +1,736 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: agile-proxy-jruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.25
5
+ platform: jruby
6
+ authors:
7
+ - Gary Taylor
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: '0'
25
+ prerelease: false
26
+ type: :development
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '3.1'
34
+ - - '>='
35
+ - !ruby/object:Gem::Version
36
+ version: 3.1.0
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ version: '3.1'
42
+ - - '>='
43
+ - !ruby/object:Gem::Version
44
+ version: 3.1.0
45
+ prerelease: false
46
+ type: :development
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec-mocks
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '3.1'
54
+ - - '>='
55
+ - !ruby/object:Gem::Version
56
+ version: 3.1.3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '3.1'
62
+ - - '>='
63
+ - !ruby/object:Gem::Version
64
+ version: 3.1.3
65
+ prerelease: false
66
+ type: :development
67
+ - !ruby/object:Gem::Dependency
68
+ name: faraday
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ~>
72
+ - !ruby/object:Gem::Version
73
+ version: '0.9'
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: 0.9.0
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ~>
80
+ - !ruby/object:Gem::Version
81
+ version: '0.9'
82
+ - - '>='
83
+ - !ruby/object:Gem::Version
84
+ version: 0.9.0
85
+ prerelease: false
86
+ type: :development
87
+ - !ruby/object:Gem::Dependency
88
+ name: poltergeist
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '1.5'
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: 1.5.1
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: '1.5'
102
+ - - '>='
103
+ - !ruby/object:Gem::Version
104
+ version: 1.5.1
105
+ prerelease: false
106
+ type: :development
107
+ - !ruby/object:Gem::Dependency
108
+ name: selenium-webdriver
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ~>
112
+ - !ruby/object:Gem::Version
113
+ version: '2.43'
114
+ - - '>='
115
+ - !ruby/object:Gem::Version
116
+ version: 2.43.0
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ~>
120
+ - !ruby/object:Gem::Version
121
+ version: '2.43'
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: 2.43.0
125
+ prerelease: false
126
+ type: :development
127
+ - !ruby/object:Gem::Dependency
128
+ name: guard
129
+ version_requirements: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: '2.6'
134
+ - - '>='
135
+ - !ruby/object:Gem::Version
136
+ version: 2.6.1
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '2.6'
142
+ - - '>='
143
+ - !ruby/object:Gem::Version
144
+ version: 2.6.1
145
+ prerelease: false
146
+ type: :development
147
+ - !ruby/object:Gem::Dependency
148
+ name: rb-inotify
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ~>
152
+ - !ruby/object:Gem::Version
153
+ version: '0.9'
154
+ - - '>='
155
+ - !ruby/object:Gem::Version
156
+ version: 0.9.5
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ~>
160
+ - !ruby/object:Gem::Version
161
+ version: '0.9'
162
+ - - '>='
163
+ - !ruby/object:Gem::Version
164
+ version: 0.9.5
165
+ prerelease: false
166
+ type: :development
167
+ - !ruby/object:Gem::Dependency
168
+ name: cucumber
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: '1.3'
174
+ - - '>='
175
+ - !ruby/object:Gem::Version
176
+ version: 1.3.17
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ~>
180
+ - !ruby/object:Gem::Version
181
+ version: '1.3'
182
+ - - '>='
183
+ - !ruby/object:Gem::Version
184
+ version: 1.3.17
185
+ prerelease: false
186
+ type: :development
187
+ - !ruby/object:Gem::Dependency
188
+ name: rest-client
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ~>
192
+ - !ruby/object:Gem::Version
193
+ version: '1.7'
194
+ - - '>='
195
+ - !ruby/object:Gem::Version
196
+ version: 1.7.2
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ~>
200
+ - !ruby/object:Gem::Version
201
+ version: '1.7'
202
+ - - '>='
203
+ - !ruby/object:Gem::Version
204
+ version: 1.7.2
205
+ prerelease: false
206
+ type: :development
207
+ - !ruby/object:Gem::Dependency
208
+ name: require_all
209
+ version_requirements: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - ~>
212
+ - !ruby/object:Gem::Version
213
+ version: '1.3'
214
+ - - '>='
215
+ - !ruby/object:Gem::Version
216
+ version: 1.3.2
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ version: '1.3'
222
+ - - '>='
223
+ - !ruby/object:Gem::Version
224
+ version: 1.3.2
225
+ prerelease: false
226
+ type: :development
227
+ - !ruby/object:Gem::Dependency
228
+ name: faker
229
+ version_requirements: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - ~>
232
+ - !ruby/object:Gem::Version
233
+ version: '1.2'
234
+ - - '>='
235
+ - !ruby/object:Gem::Version
236
+ version: 1.2.0
237
+ requirement: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ~>
240
+ - !ruby/object:Gem::Version
241
+ version: '1.2'
242
+ - - '>='
243
+ - !ruby/object:Gem::Version
244
+ version: 1.2.0
245
+ prerelease: false
246
+ type: :development
247
+ - !ruby/object:Gem::Dependency
248
+ name: yard
249
+ version_requirements: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - ~>
252
+ - !ruby/object:Gem::Version
253
+ version: '0.8'
254
+ - - '>='
255
+ - !ruby/object:Gem::Version
256
+ version: '0.8'
257
+ requirement: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - ~>
260
+ - !ruby/object:Gem::Version
261
+ version: '0.8'
262
+ - - '>='
263
+ - !ruby/object:Gem::Version
264
+ version: '0.8'
265
+ prerelease: false
266
+ type: :development
267
+ - !ruby/object:Gem::Dependency
268
+ name: simplecov
269
+ version_requirements: !ruby/object:Gem::Requirement
270
+ requirements:
271
+ - - ~>
272
+ - !ruby/object:Gem::Version
273
+ version: '0.9'
274
+ - - '>='
275
+ - !ruby/object:Gem::Version
276
+ version: 0.9.1
277
+ requirement: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - ~>
280
+ - !ruby/object:Gem::Version
281
+ version: '0.9'
282
+ - - '>='
283
+ - !ruby/object:Gem::Version
284
+ version: 0.9.1
285
+ prerelease: false
286
+ type: :development
287
+ - !ruby/object:Gem::Dependency
288
+ name: travis
289
+ version_requirements: !ruby/object:Gem::Requirement
290
+ requirements:
291
+ - - ~>
292
+ - !ruby/object:Gem::Version
293
+ version: '1.7'
294
+ - - '>='
295
+ - !ruby/object:Gem::Version
296
+ version: 1.7.5
297
+ requirement: !ruby/object:Gem::Requirement
298
+ requirements:
299
+ - - ~>
300
+ - !ruby/object:Gem::Version
301
+ version: '1.7'
302
+ - - '>='
303
+ - !ruby/object:Gem::Version
304
+ version: 1.7.5
305
+ prerelease: false
306
+ type: :development
307
+ - !ruby/object:Gem::Dependency
308
+ name: eventmachine
309
+ version_requirements: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ~>
312
+ - !ruby/object:Gem::Version
313
+ version: '1.0'
314
+ - - '>='
315
+ - !ruby/object:Gem::Version
316
+ version: 1.0.3
317
+ requirement: !ruby/object:Gem::Requirement
318
+ requirements:
319
+ - - ~>
320
+ - !ruby/object:Gem::Version
321
+ version: '1.0'
322
+ - - '>='
323
+ - !ruby/object:Gem::Version
324
+ version: 1.0.3
325
+ prerelease: false
326
+ type: :runtime
327
+ - !ruby/object:Gem::Dependency
328
+ name: em-synchrony
329
+ version_requirements: !ruby/object:Gem::Requirement
330
+ requirements:
331
+ - - ~>
332
+ - !ruby/object:Gem::Version
333
+ version: '1.0'
334
+ - - '>='
335
+ - !ruby/object:Gem::Version
336
+ version: 1.0.3
337
+ requirement: !ruby/object:Gem::Requirement
338
+ requirements:
339
+ - - ~>
340
+ - !ruby/object:Gem::Version
341
+ version: '1.0'
342
+ - - '>='
343
+ - !ruby/object:Gem::Version
344
+ version: 1.0.3
345
+ prerelease: false
346
+ type: :runtime
347
+ - !ruby/object:Gem::Dependency
348
+ name: em-http-request
349
+ version_requirements: !ruby/object:Gem::Requirement
350
+ requirements:
351
+ - - ~>
352
+ - !ruby/object:Gem::Version
353
+ version: '1.1'
354
+ - - '>='
355
+ - !ruby/object:Gem::Version
356
+ version: 1.1.2
357
+ requirement: !ruby/object:Gem::Requirement
358
+ requirements:
359
+ - - ~>
360
+ - !ruby/object:Gem::Version
361
+ version: '1.1'
362
+ - - '>='
363
+ - !ruby/object:Gem::Version
364
+ version: 1.1.2
365
+ prerelease: false
366
+ type: :runtime
367
+ - !ruby/object:Gem::Dependency
368
+ name: grape
369
+ version_requirements: !ruby/object:Gem::Requirement
370
+ requirements:
371
+ - - ~>
372
+ - !ruby/object:Gem::Version
373
+ version: '0.10'
374
+ - - '>='
375
+ - !ruby/object:Gem::Version
376
+ version: 0.10.1
377
+ requirement: !ruby/object:Gem::Requirement
378
+ requirements:
379
+ - - ~>
380
+ - !ruby/object:Gem::Version
381
+ version: '0.10'
382
+ - - '>='
383
+ - !ruby/object:Gem::Version
384
+ version: 0.10.1
385
+ prerelease: false
386
+ type: :runtime
387
+ - !ruby/object:Gem::Dependency
388
+ name: activerecord
389
+ version_requirements: !ruby/object:Gem::Requirement
390
+ requirements:
391
+ - - ~>
392
+ - !ruby/object:Gem::Version
393
+ version: '4.2'
394
+ - - '>='
395
+ - !ruby/object:Gem::Version
396
+ version: 4.2.0
397
+ requirement: !ruby/object:Gem::Requirement
398
+ requirements:
399
+ - - ~>
400
+ - !ruby/object:Gem::Version
401
+ version: '4.2'
402
+ - - '>='
403
+ - !ruby/object:Gem::Version
404
+ version: 4.2.0
405
+ prerelease: false
406
+ type: :runtime
407
+ - !ruby/object:Gem::Dependency
408
+ name: activerecord-jdbc-adapter
409
+ version_requirements: !ruby/object:Gem::Requirement
410
+ requirements:
411
+ - - '>='
412
+ - !ruby/object:Gem::Version
413
+ version: '0'
414
+ requirement: !ruby/object:Gem::Requirement
415
+ requirements:
416
+ - - '>='
417
+ - !ruby/object:Gem::Version
418
+ version: '0'
419
+ prerelease: false
420
+ type: :runtime
421
+ - !ruby/object:Gem::Dependency
422
+ name: activerecord-jdbcsqlite3-adapter
423
+ version_requirements: !ruby/object:Gem::Requirement
424
+ requirements:
425
+ - - '>='
426
+ - !ruby/object:Gem::Version
427
+ version: '0'
428
+ requirement: !ruby/object:Gem::Requirement
429
+ requirements:
430
+ - - '>='
431
+ - !ruby/object:Gem::Version
432
+ version: '0'
433
+ prerelease: false
434
+ type: :runtime
435
+ - !ruby/object:Gem::Dependency
436
+ name: grape-kaminari
437
+ version_requirements: !ruby/object:Gem::Requirement
438
+ requirements:
439
+ - - ~>
440
+ - !ruby/object:Gem::Version
441
+ version: '0.1'
442
+ - - '>='
443
+ - !ruby/object:Gem::Version
444
+ version: 0.1.7
445
+ requirement: !ruby/object:Gem::Requirement
446
+ requirements:
447
+ - - ~>
448
+ - !ruby/object:Gem::Version
449
+ version: '0.1'
450
+ - - '>='
451
+ - !ruby/object:Gem::Version
452
+ version: 0.1.7
453
+ prerelease: false
454
+ type: :runtime
455
+ - !ruby/object:Gem::Dependency
456
+ name: shoulda-matchers
457
+ version_requirements: !ruby/object:Gem::Requirement
458
+ requirements:
459
+ - - '='
460
+ - !ruby/object:Gem::Version
461
+ version: 2.8.0.rc2
462
+ requirement: !ruby/object:Gem::Requirement
463
+ requirements:
464
+ - - '='
465
+ - !ruby/object:Gem::Version
466
+ version: 2.8.0.rc2
467
+ prerelease: false
468
+ type: :runtime
469
+ - !ruby/object:Gem::Dependency
470
+ name: flavour_saver
471
+ version_requirements: !ruby/object:Gem::Requirement
472
+ requirements:
473
+ - - ~>
474
+ - !ruby/object:Gem::Version
475
+ version: '0.3'
476
+ - - '>='
477
+ - !ruby/object:Gem::Version
478
+ version: 0.3.4
479
+ requirement: !ruby/object:Gem::Requirement
480
+ requirements:
481
+ - - ~>
482
+ - !ruby/object:Gem::Version
483
+ version: '0.3'
484
+ - - '>='
485
+ - !ruby/object:Gem::Version
486
+ version: 0.3.4
487
+ prerelease: false
488
+ type: :runtime
489
+ - !ruby/object:Gem::Dependency
490
+ name: thor
491
+ version_requirements: !ruby/object:Gem::Requirement
492
+ requirements:
493
+ - - ~>
494
+ - !ruby/object:Gem::Version
495
+ version: '0.19'
496
+ - - '>='
497
+ - !ruby/object:Gem::Version
498
+ version: 0.19.1
499
+ requirement: !ruby/object:Gem::Requirement
500
+ requirements:
501
+ - - ~>
502
+ - !ruby/object:Gem::Version
503
+ version: '0.19'
504
+ - - '>='
505
+ - !ruby/object:Gem::Version
506
+ version: 0.19.1
507
+ prerelease: false
508
+ type: :runtime
509
+ - !ruby/object:Gem::Dependency
510
+ name: goliath
511
+ version_requirements: !ruby/object:Gem::Requirement
512
+ requirements:
513
+ - - ~>
514
+ - !ruby/object:Gem::Version
515
+ version: '1.0'
516
+ - - '>='
517
+ - !ruby/object:Gem::Version
518
+ version: 1.0.4
519
+ requirement: !ruby/object:Gem::Requirement
520
+ requirements:
521
+ - - ~>
522
+ - !ruby/object:Gem::Version
523
+ version: '1.0'
524
+ - - '>='
525
+ - !ruby/object:Gem::Version
526
+ version: 1.0.4
527
+ prerelease: false
528
+ type: :runtime
529
+ - !ruby/object:Gem::Dependency
530
+ name: rack-cache
531
+ version_requirements: !ruby/object:Gem::Requirement
532
+ requirements:
533
+ - - ~>
534
+ - !ruby/object:Gem::Version
535
+ version: '1.2'
536
+ - - '>='
537
+ - !ruby/object:Gem::Version
538
+ version: '1.2'
539
+ requirement: !ruby/object:Gem::Requirement
540
+ requirements:
541
+ - - ~>
542
+ - !ruby/object:Gem::Version
543
+ version: '1.2'
544
+ - - '>='
545
+ - !ruby/object:Gem::Version
546
+ version: '1.2'
547
+ prerelease: false
548
+ type: :runtime
549
+ - !ruby/object:Gem::Dependency
550
+ name: goliath-proxy
551
+ version_requirements: !ruby/object:Gem::Requirement
552
+ requirements:
553
+ - - ~>
554
+ - !ruby/object:Gem::Version
555
+ version: '0.0'
556
+ - - '>='
557
+ - !ruby/object:Gem::Version
558
+ version: 0.0.1
559
+ requirement: !ruby/object:Gem::Requirement
560
+ requirements:
561
+ - - ~>
562
+ - !ruby/object:Gem::Version
563
+ version: '0.0'
564
+ - - '>='
565
+ - !ruby/object:Gem::Version
566
+ version: 0.0.1
567
+ prerelease: false
568
+ type: :runtime
569
+ description: An agile, programmable, controllable proxy server for use standalone or as part of an integration test suite with clients for many languages
570
+ email:
571
+ - gary.taylor@hismessages.com
572
+ executables:
573
+ - agile_proxy
574
+ extensions: []
575
+ extra_rdoc_files: []
576
+ files:
577
+ - .bowerrc
578
+ - .gitignore
579
+ - .rspec
580
+ - .rubocop.yml
581
+ - .travis.yml
582
+ - Gemfile
583
+ - Guardfile
584
+ - LICENSE
585
+ - README.md
586
+ - Rakefile
587
+ - agile-proxy.gemspec
588
+ - assets/index.html
589
+ - assets/ui/app/AgileProxyApi.js
590
+ - assets/ui/app/app.js
591
+ - assets/ui/app/controller/Stubs.js
592
+ - assets/ui/app/controller/main.js
593
+ - assets/ui/app/directive/AppEnhancedFormElement.js
594
+ - assets/ui/app/directive/AppFor.js
595
+ - assets/ui/app/directive/AppResponseEditor.js
596
+ - assets/ui/app/model/RequestSpec.js
597
+ - assets/ui/app/routes.js
598
+ - assets/ui/app/service/Dialog.js
599
+ - assets/ui/app/service/DomId.js
600
+ - assets/ui/app/service/Error.js
601
+ - assets/ui/app/service/Stub.js
602
+ - assets/ui/app/view/404.html
603
+ - assets/ui/app/view/dialog/error.html
604
+ - assets/ui/app/view/dialog/yesNo.html
605
+ - assets/ui/app/view/responses/editForm.html
606
+ - assets/ui/app/view/status.html
607
+ - assets/ui/app/view/stubs.html
608
+ - assets/ui/app/view/stubs/edit.html
609
+ - assets/ui/css/main.css
610
+ - bin/agile_proxy
611
+ - bower.json
612
+ - config.yml
613
+ - db.yml
614
+ - db/migrations/20140818110800_create_users.rb
615
+ - db/migrations/20140818134700_create_applications.rb
616
+ - db/migrations/20140818135200_create_request_specs.rb
617
+ - db/migrations/20140821115300_create_responses.rb
618
+ - db/migrations/20140823082900_add_method_to_request_specs.rb
619
+ - db/migrations/20140823083900_rename_request_spec_columns.rb
620
+ - db/migrations/20141031072100_add_url_type_to_request_specs.rb
621
+ - db/migrations/20141105125600_add_conditions_to_request_specs.rb
622
+ - db/migrations/20141106083100_add_username_and_password_to_applications.rb
623
+ - db/migrations/20141119143800_add_record_to_applications.rb
624
+ - db/migrations/20141119174300_create_recordings.rb
625
+ - db/migrations/20150221152500_add_record_requests_to_request_specs.rb
626
+ - db/schema.rb
627
+ - db/seed.rb
628
+ - echo_server.rb
629
+ - examples/README.md
630
+ - examples/facebook_api.html
631
+ - examples/tumblr_api.html
632
+ - lib/agile_proxy.rb
633
+ - lib/agile_proxy/api/applications.rb
634
+ - lib/agile_proxy/api/recordings.rb
635
+ - lib/agile_proxy/api/request_spec_recordings.rb
636
+ - lib/agile_proxy/api/request_specs.rb
637
+ - lib/agile_proxy/api/root.rb
638
+ - lib/agile_proxy/cli.rb
639
+ - lib/agile_proxy/config.rb
640
+ - lib/agile_proxy/handlers/handler.rb
641
+ - lib/agile_proxy/handlers/proxy_handler.rb
642
+ - lib/agile_proxy/handlers/request_handler.rb
643
+ - lib/agile_proxy/handlers/stub_handler.rb
644
+ - lib/agile_proxy/mitm.crt
645
+ - lib/agile_proxy/mitm.key
646
+ - lib/agile_proxy/model/application.rb
647
+ - lib/agile_proxy/model/recording.rb
648
+ - lib/agile_proxy/model/request_spec.rb
649
+ - lib/agile_proxy/model/response.rb
650
+ - lib/agile_proxy/model/user.rb
651
+ - lib/agile_proxy/proxy_connection.rb
652
+ - lib/agile_proxy/rack/get_only_cache.rb
653
+ - lib/agile_proxy/route.rb
654
+ - lib/agile_proxy/router.rb
655
+ - lib/agile_proxy/server.rb
656
+ - lib/agile_proxy/servers/api.rb
657
+ - lib/agile_proxy/servers/request_spec.rb
658
+ - lib/agile_proxy/servers/request_spec_direct.rb
659
+ - lib/agile_proxy/version.rb
660
+ - load_proxy.js
661
+ - log/.gitkeep
662
+ - spec/common_helper.rb
663
+ - spec/fixtures/example_static_file.html
664
+ - spec/fixtures/test-server.crt
665
+ - spec/fixtures/test-server.key
666
+ - spec/integration/helpers/request_spec_helper.rb
667
+ - spec/integration/specs/lib/server_spec.rb
668
+ - spec/integration_spec_helper.rb
669
+ - spec/spec_helper.rb
670
+ - spec/support/test_server.rb
671
+ - spec/unit/agile_proxy/api/applications_spec.rb
672
+ - spec/unit/agile_proxy/api/common_helper.rb
673
+ - spec/unit/agile_proxy/api/recordings_spec.rb
674
+ - spec/unit/agile_proxy/api/request_spec_recordings_spec.rb
675
+ - spec/unit/agile_proxy/api/request_specs_spec.rb
676
+ - spec/unit/agile_proxy/handlers/handler_spec.rb
677
+ - spec/unit/agile_proxy/handlers/proxy_handler_spec.rb
678
+ - spec/unit/agile_proxy/handlers/request_handler_spec.rb
679
+ - spec/unit/agile_proxy/handlers/stub_handler_spec.rb
680
+ - spec/unit/agile_proxy/model/recording_spec.rb
681
+ - spec/unit/agile_proxy/model/request_spec_spec.rb
682
+ - spec/unit/agile_proxy/model/response_spec.rb
683
+ - spec/unit/agile_proxy/server_spec.rb
684
+ - spec/unit/agile_proxy/servers/api_spec.rb
685
+ - spec/unit/agile_proxy/servers/request_spec_direct_spec.rb
686
+ - spec/unit/agile_proxy/servers/request_spec_spec.rb
687
+ homepage: https://github.com/garytaylor/agileproxy
688
+ licenses: []
689
+ metadata: {}
690
+ post_install_message:
691
+ rdoc_options: []
692
+ require_paths:
693
+ - lib
694
+ required_ruby_version: !ruby/object:Gem::Requirement
695
+ requirements:
696
+ - - '>='
697
+ - !ruby/object:Gem::Version
698
+ version: '0'
699
+ required_rubygems_version: !ruby/object:Gem::Requirement
700
+ requirements:
701
+ - - '>='
702
+ - !ruby/object:Gem::Version
703
+ version: '0'
704
+ requirements: []
705
+ rubyforge_project:
706
+ rubygems_version: 2.4.5
707
+ signing_key:
708
+ specification_version: 4
709
+ summary: An agile, programmable, controllable flexible proxy server for development or test use
710
+ test_files:
711
+ - spec/common_helper.rb
712
+ - spec/fixtures/example_static_file.html
713
+ - spec/fixtures/test-server.crt
714
+ - spec/fixtures/test-server.key
715
+ - spec/integration/helpers/request_spec_helper.rb
716
+ - spec/integration/specs/lib/server_spec.rb
717
+ - spec/integration_spec_helper.rb
718
+ - spec/spec_helper.rb
719
+ - spec/support/test_server.rb
720
+ - spec/unit/agile_proxy/api/applications_spec.rb
721
+ - spec/unit/agile_proxy/api/common_helper.rb
722
+ - spec/unit/agile_proxy/api/recordings_spec.rb
723
+ - spec/unit/agile_proxy/api/request_spec_recordings_spec.rb
724
+ - spec/unit/agile_proxy/api/request_specs_spec.rb
725
+ - spec/unit/agile_proxy/handlers/handler_spec.rb
726
+ - spec/unit/agile_proxy/handlers/proxy_handler_spec.rb
727
+ - spec/unit/agile_proxy/handlers/request_handler_spec.rb
728
+ - spec/unit/agile_proxy/handlers/stub_handler_spec.rb
729
+ - spec/unit/agile_proxy/model/recording_spec.rb
730
+ - spec/unit/agile_proxy/model/request_spec_spec.rb
731
+ - spec/unit/agile_proxy/model/response_spec.rb
732
+ - spec/unit/agile_proxy/server_spec.rb
733
+ - spec/unit/agile_proxy/servers/api_spec.rb
734
+ - spec/unit/agile_proxy/servers/request_spec_direct_spec.rb
735
+ - spec/unit/agile_proxy/servers/request_spec_spec.rb
736
+ has_rdoc: