remi-rackbox 0.0.6 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/README.markdown +0 -2
  2. data/VERSION.yml +4 -0
  3. data/lib/rackbox.rb +11 -94
  4. data/lib/rackbox/matchers.rb +17 -0
  5. data/lib/rackbox/{rack_content_length_fix.rb → rack/content_length_fix.rb} +0 -0
  6. data/lib/rackbox/rack/extensions_for_rspec.rb +31 -0
  7. data/lib/rackbox/rack/sticky_sessions.rb +54 -0
  8. data/lib/rackbox/rackbox.rb +35 -0
  9. data/lib/rackbox/spec/configuration.rb +63 -0
  10. data/lib/rackbox/spec/helpers.rb +34 -0
  11. data/lib/rspec/custom_matcher.rb +52 -0
  12. metadata +18 -86
  13. data/examples/rack/config.ru +0 -4
  14. data/examples/rack/run-specs +0 -2
  15. data/examples/rack/spec/blackbox/home_page_spec.rb +0 -14
  16. data/examples/rack/spec/rcov.opts +0 -2
  17. data/examples/rack/spec/spec.opts +0 -4
  18. data/examples/rack/spec/spec_helper.rb +0 -6
  19. data/examples/rails/README +0 -256
  20. data/examples/rails/Rakefile +0 -10
  21. data/examples/rails/app/controllers/application.rb +0 -15
  22. data/examples/rails/app/controllers/welcome_controller.rb +0 -5
  23. data/examples/rails/app/helpers/application_helper.rb +0 -3
  24. data/examples/rails/app/helpers/welcome_helper.rb +0 -2
  25. data/examples/rails/config/boot.rb +0 -109
  26. data/examples/rails/config/environment.rb +0 -75
  27. data/examples/rails/config/environments/development.rb +0 -17
  28. data/examples/rails/config/environments/production.rb +0 -24
  29. data/examples/rails/config/environments/test.rb +0 -22
  30. data/examples/rails/config/initializers/inflections.rb +0 -10
  31. data/examples/rails/config/initializers/mime_types.rb +0 -5
  32. data/examples/rails/config/initializers/new_rails_defaults.rb +0 -17
  33. data/examples/rails/config/locales/en.yml +0 -5
  34. data/examples/rails/config/routes.rb +0 -43
  35. data/examples/rails/db/development.sqlite3 +0 -0
  36. data/examples/rails/db/schema.rb +0 -14
  37. data/examples/rails/db/test.sqlite3 +0 -0
  38. data/examples/rails/doc/README_FOR_APP +0 -5
  39. data/examples/rails/lib/tasks/rspec.rake +0 -158
  40. data/examples/rails/public/404.html +0 -30
  41. data/examples/rails/public/422.html +0 -30
  42. data/examples/rails/public/500.html +0 -33
  43. data/examples/rails/public/dispatch.cgi +0 -10
  44. data/examples/rails/public/dispatch.fcgi +0 -24
  45. data/examples/rails/public/dispatch.rb +0 -10
  46. data/examples/rails/public/favicon.ico +0 -0
  47. data/examples/rails/public/images/rails.png +0 -0
  48. data/examples/rails/public/javascripts/application.js +0 -2
  49. data/examples/rails/public/javascripts/controls.js +0 -963
  50. data/examples/rails/public/javascripts/dragdrop.js +0 -973
  51. data/examples/rails/public/javascripts/effects.js +0 -1128
  52. data/examples/rails/public/javascripts/prototype.js +0 -4320
  53. data/examples/rails/public/robots.txt +0 -5
  54. data/examples/rails/run-specs +0 -2
  55. data/examples/rails/script/about +0 -4
  56. data/examples/rails/script/autospec +0 -5
  57. data/examples/rails/script/console +0 -3
  58. data/examples/rails/script/dbconsole +0 -3
  59. data/examples/rails/script/destroy +0 -3
  60. data/examples/rails/script/generate +0 -3
  61. data/examples/rails/script/performance/benchmarker +0 -3
  62. data/examples/rails/script/performance/profiler +0 -3
  63. data/examples/rails/script/performance/request +0 -3
  64. data/examples/rails/script/plugin +0 -3
  65. data/examples/rails/script/process/inspector +0 -3
  66. data/examples/rails/script/process/reaper +0 -3
  67. data/examples/rails/script/process/spawner +0 -3
  68. data/examples/rails/script/runner +0 -3
  69. data/examples/rails/script/server +0 -3
  70. data/examples/rails/script/spec +0 -5
  71. data/examples/rails/script/spec_server +0 -125
  72. data/examples/rails/spec/blackbox/home_page_spec.rb +0 -21
  73. data/examples/rails/spec/rcov.opts +0 -2
  74. data/examples/rails/spec/spec.opts +0 -4
  75. data/examples/rails/spec/spec_helper.rb +0 -11
  76. data/examples/rails/test/functional/welcome_controller_test.rb +0 -8
  77. data/examples/rails/test/performance/browsing_test.rb +0 -9
  78. data/examples/rails/test/test_helper.rb +0 -38
  79. data/rackbox.gemspec +0 -17
  80. data/run-specs +0 -11
@@ -8,8 +8,6 @@ This currently only works with [RSpec][].
8
8
  Installation
9
9
  ------------
10
10
 
11
- **NOTE** I haven't built the gem yet! This will work in a little while, once I build the gem ...
12
-
13
11
  $ sudo gem install remi-rackbox -s http://gems.github.com
14
12
 
15
13
  Rails
@@ -0,0 +1,4 @@
1
+ ---
2
+ :patch: 0
3
+ :major: 0
4
+ :minor: 7
@@ -1,105 +1,22 @@
1
+ # TODO split up into different files! sheesh!
2
+
1
3
  $:.unshift File.dirname(__FILE__)
2
4
  require 'rubygems'
3
5
  begin
4
6
  require 'thin' # required for Rails pre Rails 2.3, as Thin has the Rack::Adapter::Rails
5
7
  rescue LoadError
6
8
  end
7
- require 'rack'
8
- require 'rackbox/rack_content_length_fix'
9
-
10
- # To add blackbox testing to a Rails app,
11
- # in your spec_helper.rb
12
- #
13
- # require 'rackbox'
14
- #
15
- # Spec::Runner.configure do |config|
16
- # config.use_blackbox = true
17
- # end
18
- #
19
- class RackBox
20
- class << self
21
- # the Rack appliction to do 'Black Box' testing against
22
- #
23
- # To set, in your spec_helper.rb or someplace:
24
- # RackBox.app = Rack::Adapter::Rails.new :root => '/root/directory/of/rails/app', :environment => 'test'
25
- #
26
- # If not explicitly set, uses RAILS_ROOT (if defined?) and RAILS_ENV (if defined?)
27
- attr_accessor :app
28
-
29
- def app
30
- unless @app and @app.respond_to?:call
31
- if File.file? 'config.ru'
32
- @app = Rack::Builder.new { eval(File.read('config.ru')) }
33
- elsif defined?RAILS_ENV and defined?RAILS_ROOT
34
- raise "You need the Rack::Adapter::Rails to run Rails apps with RackBox." +
35
- " Try: sudo gem install thin" unless defined?Rack::Adapter::Rails
36
- @app = Rack::Adapter::Rails.new :root => RAILS_ROOT, :environment => RAILS_ENV
37
- else
38
- raise "RackBox.app not configured."
39
- end
40
- end
41
- @app
42
- end
43
- end
44
- end
45
9
 
46
- module RackBox::SpecHelpers
47
- # A port of Merb's request() method, used in tests
48
- #
49
- # At the moment, we're using #req instead because #request conflicts
50
- # with an existing RSpec-Rails method
51
- #
52
- # Usage:
53
- #
54
- # req '/'
55
- # req login_path
56
- # req url_for(:controller => 'login')
57
- #
58
- # req '/', :method => :post, :params => { 'chunky' => 'bacon' }
59
- #
60
- # TODO support inner hashes, so { :foo => { :chunky => :bacon } } becomes 'foo[chunky]=bacon'
61
- #
62
- # TODO take any additional options and pass them along to the environment, so we can say
63
- # req '/', :user_agent => 'some custom user agent'
64
- #
65
- def req url, options = {}
66
- options[:method] ||= :get
67
- options[:params] ||= { }
68
- Rack::MockRequest.new(RackBox.app).send options[:method], url, :input => Rack::Utils.build_query(options[:params])
69
- end
10
+ require 'rack'
70
11
 
71
- alias request req unless defined? request
72
- end
12
+ require 'rackbox/rack/content_length_fix'
13
+ require 'rackbox/rack/sticky_sessions'
14
+ require 'rackbox/rack/extensions_for_rspec'
73
15
 
74
- spec_configuration_class = nil
75
- spec_configuration_class = Spec::Example::Configuration if defined? Spec::Example::Configuration
76
- spec_configuration_class = Spec::Runner::Configuration if defined? Spec::Runner::Configuration
16
+ require 'rackbox/rackbox'
77
17
 
78
- if spec_configuration_class
79
- spec_configuration_class.class_eval do
80
- # Adds blackbox testing to your Rails application using RackBox.
81
- #
82
- # To use, put your 'blackbox' specs into the spec/blackbox
83
- # directory, eg. spec/blackbox/login_spec.rb
84
- #
85
- # In these specs, the RackBox::SpecHelpers#req method will be available to you
86
- #
87
- def use_blackbox= bool
88
- if bool == true
89
- before(:all, :type => :blackbox) do
90
- self.class.instance_eval {
91
- # include our own helpers, eg. RackBox::SpecHelpers#req
92
- include RackBox::SpecHelpers
18
+ require 'rspec/custom_matcher'
19
+ require 'rackbox/matchers'
93
20
 
94
- # include generated url methods, eg. login_path.
95
- # default_url_options needs to have a host set for the Urls to work
96
- if defined?ActionController::UrlWriter
97
- include ActionController::UrlWriter
98
- default_url_options[:host] = 'example.com'
99
- end
100
- }
101
- end
102
- end
103
- end
104
- end
105
- end
21
+ require 'rackbox/spec/helpers'
22
+ require 'rackbox/spec/configuration'
@@ -0,0 +1,17 @@
1
+ # Custom RSpec matchers
2
+ module RackBox::Matchers
3
+ def self.included base
4
+
5
+ # this should really just be matcher(:foo){ ... }
6
+ # but there's a bit of other meta logic to deal with here
7
+ Object.send :remove_const, :RedirectTo if defined? RedirectTo
8
+ undef redirect_to if defined? redirect_to
9
+
10
+ # the actual matcher logic
11
+ matcher(:redirect_to, base) do |response, url|
12
+ return false unless response['Location']
13
+ response['Location'] == url
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,31 @@
1
+ # some more Rack extensions to help when testing
2
+ class Rack::MockResponse
3
+
4
+ # these methods help with RSpec specs so we can ask things like:
5
+ #
6
+ # request('/').should be_successful
7
+ # request('/').should be_redirect
8
+ # request('/').should be_error
9
+ #
10
+
11
+ def success?
12
+ self.status.to_s.start_with?'2' # 200 status codes are successful
13
+ end
14
+
15
+ def redirect?
16
+ self.status.to_s.start_with?'3' # 300 status codes are redirects
17
+ end
18
+
19
+ def client_error?
20
+ self.status.to_s.start_with?'4' # 400 status codes are client errors
21
+ end
22
+
23
+ def server_error?
24
+ self.status.to_s.start_with?'5' # 500 status codes are server errors
25
+ end
26
+
27
+ def error?
28
+ self.status.to_s.start_with?('4') || self.status.to_s.start_with?('5') # 400 & 500 status codes are errors
29
+ end
30
+
31
+ end
@@ -0,0 +1,54 @@
1
+ #
2
+ # little extension to Rack::MockRequest to track cookies
3
+ #
4
+ class Rack::MockRequest
5
+ # cookies is a hash of persistent cookies (by domain)
6
+ # that let you test cookies for your app
7
+ #
8
+ # cookies = {
9
+ # 'example.org' => {
10
+ # 'cookie-name' => 'cookie-value',
11
+ # 'chunky' => 'bacon'
12
+ # }
13
+ # }
14
+ attr_accessor :cookies
15
+
16
+ # shortcut to get cookies for a particular domain
17
+ def cookies_for domain
18
+ @cookies ||= {}
19
+ @cookies[ domain ]
20
+ end
21
+
22
+ # oh geez ... it looks like i basically copy/pasted this. there's gotta be a way to do this that's
23
+ # more resilient to Rack changes to this method. i don't like overriding the whole method!
24
+ #
25
+ def request method = "GET", uri = "", opts = { }
26
+
27
+ env = self.class.env_for(uri, opts.merge(:method => method))
28
+
29
+ unless @cookies.nil? or @cookies.empty? or @cookies[env['SERVER_NAME']].nil? or @cookies[env['SERVER_NAME']].empty?
30
+ env['HTTP_COOKIE'] = @cookies[env['SERVER_NAME']].map{ |k,v| "#{ k }=#{ v }" }.join('; ')
31
+ end
32
+
33
+ if opts[:lint]
34
+ app = Rack::Lint.new(@app)
35
+ else
36
+ app = @app
37
+ end
38
+
39
+ errors = env["rack.errors"]
40
+ response = Rack::MockResponse.new(*(app.call(env) + [errors]))
41
+
42
+ if response.original_headers['Set-Cookie']
43
+ @cookies ||= {}
44
+ @cookies[ env['SERVER_NAME'] ] ||= {}
45
+ response.original_headers['Set-Cookie'].map{ |str| /(.*); path/.match(str)[1] }.each do |cookie|
46
+ name, value = cookie.split('=').first, cookie.split('=')[1]
47
+ @cookies[ env['SERVER_NAME'] ][ name ] = value
48
+ end
49
+ end
50
+
51
+ response
52
+ end
53
+
54
+ end
@@ -0,0 +1,35 @@
1
+ # To add blackbox testing to a Rails app,
2
+ # in your spec_helper.rb
3
+ #
4
+ # require 'rackbox'
5
+ #
6
+ # Spec::Runner.configure do |config|
7
+ # config.use_blackbox = true
8
+ # end
9
+ #
10
+ class RackBox
11
+ class << self
12
+ # the Rack appliction to do 'Black Box' testing against
13
+ #
14
+ # To set, in your spec_helper.rb or someplace:
15
+ # RackBox.app = Rack::Adapter::Rails.new :root => '/root/directory/of/rails/app', :environment => 'test'
16
+ #
17
+ # If not explicitly set, uses RAILS_ROOT (if defined?) and RAILS_ENV (if defined?)
18
+ attr_accessor :app
19
+
20
+ def app
21
+ unless @app and @app.respond_to?:call
22
+ if File.file? 'config.ru'
23
+ @app = Rack::Builder.new { eval(File.read('config.ru')) }
24
+ elsif defined?RAILS_ENV and defined?RAILS_ROOT
25
+ raise "You need the Rack::Adapter::Rails to run Rails apps with RackBox." +
26
+ " Try: sudo gem install thin" unless defined?Rack::Adapter::Rails
27
+ @app = Rack::Adapter::Rails.new :root => RAILS_ROOT, :environment => RAILS_ENV
28
+ else
29
+ raise "RackBox.app not configured."
30
+ end
31
+ end
32
+ @app
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,63 @@
1
+ # Extend the RSpec configuration class with a use_blackbox option
2
+ #
3
+ # To add blackbox testing to a Rails app,
4
+ # in your spec_helper.rb
5
+ #
6
+ # require 'rackbox'
7
+ #
8
+ # Spec::Runner.configure do |config|
9
+ # config.use_blackbox = true
10
+ # end
11
+ #
12
+
13
+ spec_configuration_class = nil
14
+ spec_configuration_class = Spec::Example::Configuration if defined? Spec::Example::Configuration
15
+ spec_configuration_class = Spec::Runner::Configuration if defined? Spec::Runner::Configuration
16
+
17
+ if spec_configuration_class
18
+ spec_configuration_class.class_eval do
19
+ # Adds blackbox testing to your Rails application using RackBox.
20
+ #
21
+ # To use, put your 'blackbox' specs into the spec/blackbox
22
+ # directory, eg. spec/blackbox/login_spec.rb
23
+ #
24
+ # In these specs, the RackBox::SpecHelpers#req method will be available to you
25
+ #
26
+ def use_blackbox= bool
27
+ if bool == true
28
+
29
+ before(:all, :type => :blackbox) do
30
+ self.class.instance_eval {
31
+ # include our own helpers, eg. RackBox::SpecHelpers#req
32
+ include RackBox::SpecHelpers
33
+ include RackBox::Matchers
34
+
35
+ # include generated url methods, eg. login_path.
36
+ # default_url_options needs to have a host set for the Urls to work
37
+ if defined?ActionController::UrlWriter
38
+ include ActionController::UrlWriter
39
+ default_url_options[:host] = 'example.com'
40
+ end
41
+
42
+ attr_accessor :rackbox_request
43
+ }
44
+ end
45
+
46
+ before(:each, :type => :blackbox) do
47
+
48
+ # i'm sure there's a better way to write this!
49
+ #
50
+ # i believe metaid would write this as:
51
+ # metaclass.class_eval do ... end
52
+ #
53
+ (class << self; self; end).class_eval do
54
+ include RackBox::Matchers
55
+ end
56
+
57
+ @rackbox_request = Rack::MockRequest.new RackBox.app
58
+ end
59
+
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,34 @@
1
+ # Helper methods to include in specs that want to use blackbox testing
2
+ #
3
+ # This module has the RackBox::SpecHelpers#request method, which is
4
+ # the main method used by RackBox blackbox tests
5
+ #
6
+ module RackBox::SpecHelpers
7
+
8
+ # A port of Merb's request() method, used in tests
9
+ #
10
+ # At the moment, we're using #req instead because #request conflicts
11
+ # with an existing RSpec-Rails method
12
+ #
13
+ # Usage:
14
+ #
15
+ # req '/'
16
+ # req login_path
17
+ # req url_for(:controller => 'login')
18
+ #
19
+ # req '/', :method => :post, :params => { 'chunky' => 'bacon' }
20
+ #
21
+ # TODO support inner hashes, so { :foo => { :chunky => :bacon } } becomes 'foo[chunky]=bacon'
22
+ #
23
+ # TODO take any additional options and pass them along to the environment, so we can say
24
+ # req '/', :user_agent => 'some custom user agent'
25
+ #
26
+ def req url, options = {}
27
+ options[:method] ||= (options[:params]) ? :post : :get # if params, default to POST, else default to GET
28
+ options[:params] ||= { }
29
+ @rackbox_request.send options[:method], url, :input => Rack::Utils.build_query(options[:params])
30
+ end
31
+
32
+ alias request req unless defined? request
33
+
34
+ end
@@ -0,0 +1,52 @@
1
+ # created by: http://github.com/xdotcommer
2
+ # from: http://github.com/xdotcommer/rspec-custom-matchers/blob/0ecfccd659d5038cdfc88fdc1fee08373e1ee75c/custom_matcher.rb
3
+ class CustomMatcher
4
+ def self.create(class_name, &block)
5
+ klass = Class.new(CustomMatcher)
6
+ klass.send(:define_method, :matcher, &block) if block_given?
7
+ Object.const_set(build_class_name(class_name), klass)
8
+ end
9
+
10
+ def initialize(expected = nil)
11
+ @expected = expected
12
+ end
13
+
14
+ def failure_message
15
+ message
16
+ end
17
+
18
+ def negative_failure_message
19
+ message(false)
20
+ end
21
+
22
+ def matcher(target, expected)
23
+ target == expected
24
+ end
25
+
26
+ def matches?(target)
27
+ @target = target
28
+ if self.method(:matcher).arity == 2
29
+ matcher(@target, @expected)
30
+ else
31
+ matcher(@target)
32
+ end
33
+ end
34
+
35
+ private
36
+ def message(positive = true)
37
+ "#{positive ? 'Expected' : 'Did not expect'} #{@target.inspect} to #{class_display_name} #{@expected.inspect if self.method(:matcher).arity == 2}"
38
+ end
39
+
40
+ def class_display_name
41
+ self.class.to_s.gsub(/[A-Z]/) {|m| ' ' + m.downcase }.lstrip
42
+ end
43
+
44
+ def self.build_class_name(class_name)
45
+ class_name.to_s.split('_').map {|s| s.capitalize}.join
46
+ end
47
+ end
48
+
49
+ def matcher(name, context = self.class, &block)
50
+ klass = CustomMatcher.create(name, &block)
51
+ context.send(:define_method, name) { |*args| klass.new(*args) }
52
+ end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remi-rackbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
- - remi Taylor
7
+ - remi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-21 00:00:00 -08:00
12
+ date: 2009-01-27 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -22,95 +22,27 @@ extensions: []
22
22
  extra_rdoc_files: []
23
23
 
24
24
  files:
25
- - examples/rack/config.ru
26
- - examples/rack/run-specs
27
- - examples/rack/spec/spec.opts
28
- - examples/rack/spec/spec_helper.rb
29
- - examples/rack/spec/blackbox/home_page_spec.rb
30
- - examples/rack/spec/rcov.opts
31
- - examples/rails/app/controllers/application.rb
32
- - examples/rails/app/controllers/welcome_controller.rb
33
- - examples/rails/app/helpers/application_helper.rb
34
- - examples/rails/app/helpers/welcome_helper.rb
35
- - examples/rails/lib/tasks/rspec.rake
36
- - examples/rails/db/test.sqlite3
37
- - examples/rails/db/development.sqlite3
38
- - examples/rails/db/schema.rb
39
- - examples/rails/log/test.log
40
- - examples/rails/log/development.log
41
- - examples/rails/log/production.log
42
- - examples/rails/log/server.log
43
- - examples/rails/run-specs
44
- - examples/rails/spec/spec.opts
45
- - examples/rails/spec/spec_helper.rb
46
- - examples/rails/spec/blackbox/home_page_spec.rb
47
- - examples/rails/spec/rcov.opts
48
- - examples/rails/doc/README_FOR_APP
49
- - examples/rails/public/dispatch.cgi
50
- - examples/rails/public/dispatch.rb
51
- - examples/rails/public/422.html
52
- - examples/rails/public/images/rails.png
53
- - examples/rails/public/404.html
54
- - examples/rails/public/500.html
55
- - examples/rails/public/robots.txt
56
- - examples/rails/public/favicon.ico
57
- - examples/rails/public/javascripts/prototype.js
58
- - examples/rails/public/javascripts/application.js
59
- - examples/rails/public/javascripts/dragdrop.js
60
- - examples/rails/public/javascripts/controls.js
61
- - examples/rails/public/javascripts/effects.js
62
- - examples/rails/public/dispatch.fcgi
63
- - examples/rails/test/test_helper.rb
64
- - examples/rails/test/functional/welcome_controller_test.rb
65
- - examples/rails/test/performance/browsing_test.rb
66
- - examples/rails/Rakefile
67
- - examples/rails/script/spec_server
68
- - examples/rails/script/autospec
69
- - examples/rails/script/destroy
70
- - examples/rails/script/dbconsole
71
- - examples/rails/script/performance/profiler
72
- - examples/rails/script/performance/request
73
- - examples/rails/script/performance/benchmarker
74
- - examples/rails/script/generate
75
- - examples/rails/script/process/reaper
76
- - examples/rails/script/process/inspector
77
- - examples/rails/script/process/spawner
78
- - examples/rails/script/spec
79
- - examples/rails/script/console
80
- - examples/rails/script/runner
81
- - examples/rails/script/server
82
- - examples/rails/script/plugin
83
- - examples/rails/script/about
84
- - examples/rails/README
85
- - examples/rails/config/boot.rb
86
- - examples/rails/config/locales/en.yml
87
- - examples/rails/config/environments/development.rb
88
- - examples/rails/config/environments/test.rb
89
- - examples/rails/config/environments/production.rb
90
- - examples/rails/config/routes.rb
91
- - examples/rails/config/database.yml
92
- - examples/rails/config/environment.rb
93
- - examples/rails/config/initializers/new_rails_defaults.rb
94
- - examples/rails/config/initializers/mime_types.rb
95
- - examples/rails/config/initializers/inflections.rb
96
- - lib/rackbox/rack_content_length_fix.rb
97
- - lib/rackbox.rb
25
+ - VERSION.yml
98
26
  - README.markdown
99
- - run-specs
100
- - rackbox.gemspec
27
+ - lib/rackbox.rb
28
+ - lib/rspec
29
+ - lib/rspec/custom_matcher.rb
30
+ - lib/rackbox
31
+ - lib/rackbox/rack
32
+ - lib/rackbox/rack/extensions_for_rspec.rb
33
+ - lib/rackbox/rack/sticky_sessions.rb
34
+ - lib/rackbox/rack/content_length_fix.rb
35
+ - lib/rackbox/spec
36
+ - lib/rackbox/spec/configuration.rb
37
+ - lib/rackbox/spec/helpers.rb
38
+ - lib/rackbox/rackbox.rb
39
+ - lib/rackbox/matchers.rb
101
40
  has_rdoc: true
102
41
  homepage: http://github.com/remi/rackbox
103
42
  post_install_message:
104
43
  rdoc_options:
105
- - --quiet
106
- - --title
107
- - RackBox - Merb-like BlackBox testing for Rack apps
108
- - --opname
109
- - index.html
110
- - --line-numbers
111
- - --main
112
- - RackBox
113
44
  - --inline-source
45
+ - --charset=UTF-8
114
46
  require_paths:
115
47
  - lib
116
48
  required_ruby_version: !ruby/object:Gem::Requirement