rack-test 0.5.7 → 0.6.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.
@@ -2,7 +2,7 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  diff-lcs (1.1.2)
5
- rack (1.2.1)
5
+ rack (1.2.2)
6
6
  rspec (2.3.0)
7
7
  rspec-core (~> 2.3.0)
8
8
  rspec-expectations (~> 2.3.0)
@@ -11,10 +11,13 @@ GEM
11
11
  rspec-expectations (2.3.0)
12
12
  diff-lcs (~> 1.1.2)
13
13
  rspec-mocks (2.3.0)
14
- sinatra (1.0)
15
- rack (>= 1.0)
14
+ sinatra (1.2.3)
15
+ rack (~> 1.1)
16
+ tilt (< 2.0, >= 1.2.2)
17
+ tilt (1.2.2)
16
18
 
17
19
  PLATFORMS
20
+ java
18
21
  ruby
19
22
 
20
23
  DEPENDENCIES
@@ -1,3 +1,11 @@
1
+ == 0.6.0 / 2011-05-03
2
+
3
+ * Bug fixes
4
+
5
+ * Add support for HTTP OPTIONS verb (Paolo "Nusco" Perrotta)
6
+ * Call #finish on MockResponses if it's available (Aaron Patterson)
7
+ * Allow HTTP_HOST to be set via #header (Geoff Buesing)
8
+
1
9
  == 0.5.7 / 2011-01-01
2
10
 
3
11
  * Bug fixes
@@ -35,7 +35,12 @@ module Rack
35
35
  cookie_jar.merge(last_response.headers["Set-Cookie"], uri)
36
36
 
37
37
  @after_request.each { |hook| hook.call }
38
- @last_response
38
+
39
+ if @last_response.respond_to?(:finish)
40
+ @last_response.finish
41
+ else
42
+ @last_response
43
+ end
39
44
  end
40
45
 
41
46
  # Return the last request issued in the session. Raises an error if no
@@ -9,7 +9,7 @@ require "rack/test/uploaded_file"
9
9
 
10
10
  module Rack
11
11
  module Test
12
- VERSION = "0.5.7"
12
+ VERSION = "0.6.0"
13
13
 
14
14
  DEFAULT_HOST = "example.org"
15
15
  MULTIPART_BOUNDARY = "----------XnJLe9ZIbbGUYtzPQJ16u1"
@@ -84,6 +84,15 @@ module Rack
84
84
  process_request(uri, env, &block)
85
85
  end
86
86
 
87
+ # Issue an OPTIONS request for the given URI. See #get
88
+ #
89
+ # Example:
90
+ # options "/"
91
+ def options(uri, params = {}, env = {}, &block)
92
+ env = env_for(uri, env.merge(:method => "OPTIONS", :params => params))
93
+ process_request(uri, env, &block)
94
+ end
95
+
87
96
  # Issue a HEAD request for the given URI. See #get
88
97
  #
89
98
  # Example:
@@ -161,10 +170,10 @@ module Rack
161
170
  uri.path = "/#{uri.path}" unless uri.path[0] == ?/
162
171
  uri.host ||= @default_host
163
172
 
164
- env["HTTP_HOST"] ||= [uri.host, uri.port].compact.join(":")
165
-
166
173
  env = default_env.merge(env)
167
174
 
175
+ env["HTTP_HOST"] ||= [uri.host, uri.port].compact.join(":")
176
+
168
177
  env.update("HTTPS" => "on") if URI::HTTPS === uri
169
178
  env["HTTP_X_REQUESTED_WITH"] = "XMLHttpRequest" if env[:xhr]
170
179
 
@@ -62,6 +62,7 @@ module Rack
62
62
  :post,
63
63
  :put,
64
64
  :delete,
65
+ :options,
65
66
  :head,
66
67
  :follow_redirect!,
67
68
  :header,
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{rack-test}
5
- s.version = "0.5.7"
5
+ s.version = "0.6.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Bryan Helmkamp"]
9
- s.date = %q{2011-01-01}
9
+ s.date = %q{2011-05-03}
10
10
  s.description = %q{Rack::Test is a small, simple testing API for Rack apps. It can be used on its
11
11
  own or as a reusable starting point for Web frameworks and testing libraries
12
12
  to build on. Most of its initial functionality is an extraction of Merb 1.0's
@@ -50,7 +50,7 @@ request helpers feature.}
50
50
  s.homepage = %q{http://github.com/brynary/rack-test}
51
51
  s.require_paths = ["lib"]
52
52
  s.rubyforge_project = %q{rack-test}
53
- s.rubygems_version = %q{1.3.7}
53
+ s.rubygems_version = %q{1.6.1}
54
54
  s.summary = %q{Simple testing API built on Rack}
55
55
  s.test_files = [
56
56
  "spec/fixtures/fake_app.rb",
@@ -65,7 +65,6 @@ request helpers feature.}
65
65
  ]
66
66
 
67
67
  if s.respond_to? :specification_version then
68
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
69
68
  s.specification_version = 3
70
69
 
71
70
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -9,6 +9,10 @@ module Rack
9
9
  "meh"
10
10
  end
11
11
 
12
+ options "/" do
13
+ [200, {}, ""]
14
+ end
15
+
12
16
  get "/" do
13
17
  "Hello, GET: #{params.inspect}"
14
18
  end
@@ -58,7 +58,7 @@ describe Rack::Test::Session do
58
58
  last_request.POST["foo"].should == "bar"
59
59
 
60
60
  if Rack::Test.encoding_aware_strings?
61
- last_request.POST["utf8"].should == "\xE2\x98\x83".force_encoding("BINARY")
61
+ last_request.POST["utf8"].should == ""
62
62
  else
63
63
  last_request.POST["utf8"].should == "\xE2\x98\x83"
64
64
  end
@@ -228,6 +228,13 @@ describe Rack::Test::Session do
228
228
 
229
229
  last_request.env["CONTENT_TYPE"].should == "application/json"
230
230
  end
231
+
232
+ it "sets a Host to be sent with requests" do
233
+ header "Host", "www.example.ua"
234
+ request "/"
235
+
236
+ last_request.env["HTTP_HOST"].should == "www.example.ua"
237
+ end
231
238
 
232
239
  it "persists across multiple requests" do
233
240
  header "User-Agent", "Firefox"
@@ -325,7 +332,7 @@ describe Rack::Test::Session do
325
332
  describe "#last_response" do
326
333
  it "returns the most recent response" do
327
334
  request "/"
328
- last_response["Content-Type"].should == "text/html"
335
+ last_response["Content-Type"].should == "text/html;charset=utf-8"
329
336
  end
330
337
 
331
338
  it "raises an error if no requests have been issued" do
@@ -457,4 +464,12 @@ describe Rack::Test::Session do
457
464
  "delete"
458
465
  end
459
466
  end
467
+
468
+ describe "#options" do
469
+ it_should_behave_like "any #verb methods"
470
+
471
+ def verb
472
+ "options"
473
+ end
474
+ end
460
475
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-test
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
5
- prerelease: false
4
+ hash: 7
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 5
9
- - 7
10
- version: 0.5.7
8
+ - 6
9
+ - 0
10
+ version: 0.6.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bryan Helmkamp
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-01 00:00:00 -05:00
18
+ date: 2011-05-03 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -106,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  requirements: []
107
107
 
108
108
  rubyforge_project: rack-test
109
- rubygems_version: 1.3.7
109
+ rubygems_version: 1.6.1
110
110
  signing_key:
111
111
  specification_version: 3
112
112
  summary: Simple testing API built on Rack