rack-test 0.5.5 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,11 @@
1
+ == Git
2
+
3
+ == 0.5.6 / 2010-09-25
4
+
5
+ * Use parse_nested_query for parsing URI like Rack does (Eugene Bolshakov)
6
+ * Don't depend on ActiveSupport extension to String (Bryan Helmkamp)
7
+ * Do not overwrite HTTP_HOST if it is set (Krekoten' Marjan)
8
+
1
9
  == 0.5.5 / 2010-09-22
2
10
 
3
11
  * Bug fixes
@@ -5,7 +13,7 @@
5
13
  * Fix encoding of file uploads on Ruby 1.9 (Alan Kennedy)
6
14
  * Set env["HTTP_HOST"] when making requests (Istvan Hoka)
7
15
 
8
- == 0.5.4 / 2009-05-26
16
+ == 0.5.4 / 2010-05-26
9
17
 
10
18
  * Bug fixes
11
19
 
@@ -9,7 +9,7 @@ require "rack/test/uploaded_file"
9
9
 
10
10
  module Rack
11
11
  module Test
12
- VERSION = "0.5.5"
12
+ VERSION = "0.5.6"
13
13
 
14
14
  DEFAULT_HOST = "example.org"
15
15
  MULTIPART_BOUNDARY = "----------XnJLe9ZIbbGUYtzPQJ16u1"
@@ -161,7 +161,7 @@ module Rack
161
161
  uri.path = "/#{uri.path}" unless uri.path[0] == ?/
162
162
  uri.host ||= @default_host
163
163
 
164
- env["HTTP_HOST"] = [uri.host, uri.port].compact.join(":")
164
+ env["HTTP_HOST"] ||= [uri.host, uri.port].compact.join(":")
165
165
 
166
166
  env = default_env.merge(env)
167
167
 
@@ -175,7 +175,7 @@ module Rack
175
175
  if env["REQUEST_METHOD"] == "GET"
176
176
  params = env[:params] || {}
177
177
  params = parse_nested_query(params) if params.is_a?(String)
178
- params.update(parse_query(uri.query))
178
+ params.update(parse_nested_query(uri.query))
179
179
  uri.query = build_nested_query(params)
180
180
  elsif !env.has_key?(:input)
181
181
  env["CONTENT_TYPE"] ||= "application/x-www-form-urlencoded"
@@ -275,5 +275,9 @@ module Rack
275
275
 
276
276
  end
277
277
 
278
+ def self.encoding_aware_strings?
279
+ defined?(Encoding) && "".respond_to?(:encode)
280
+ end
281
+
278
282
  end
279
283
  end
@@ -96,7 +96,7 @@ module Rack
96
96
 
97
97
  else
98
98
  primitive_part = build_primitive_part(name, value)
99
- primitive_part.encoding_aware? ? primitive_part.force_encoding('BINARY') : primitive_part
99
+ Rack::Test.encoding_aware_strings? ? primitive_part.force_encoding('BINARY') : primitive_part
100
100
  end
101
101
 
102
102
  }.join + "--#{MULTIPART_BOUNDARY}--\r"
@@ -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.5"
5
+ s.version = "0.5.6"
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{2010-09-22}
9
+ s.date = %q{2010-09-25}
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
@@ -44,7 +44,6 @@ request helpers feature.}
44
44
  "spec/rack/test/utils_spec.rb",
45
45
  "spec/rack/test_spec.rb",
46
46
  "spec/spec_helper.rb",
47
- "spec/support/core_ext/string.rb",
48
47
  "spec/support/matchers/body.rb",
49
48
  "spec/support/matchers/challenge.rb"
50
49
  ]
@@ -61,7 +60,6 @@ request helpers feature.}
61
60
  "spec/rack/test/utils_spec.rb",
62
61
  "spec/rack/test_spec.rb",
63
62
  "spec/spec_helper.rb",
64
- "spec/support/core_ext/string.rb",
65
63
  "spec/support/matchers/body.rb",
66
64
  "spec/support/matchers/challenge.rb"
67
65
  ]
@@ -57,7 +57,7 @@ describe Rack::Test::Session do
57
57
  post "/", "photo" => uploaded_file, "foo" => "bar", "utf8" => "☃"
58
58
  last_request.POST["foo"].should == "bar"
59
59
 
60
- if last_request.POST["utf8"].encoding_aware?
60
+ if Rack::Test.encoding_aware_strings?
61
61
  last_request.POST["utf8"].should == "\xE2\x98\x83".force_encoding("BINARY")
62
62
  else
63
63
  last_request.POST["utf8"].should == "\xE2\x98\x83"
@@ -29,6 +29,11 @@ describe Rack::Test::Session do
29
29
  last_request.env["X-Foo"].should == "bar"
30
30
  end
31
31
 
32
+ it "allows HTTP_HOST to be set" do
33
+ request "/", "HTTP_HOST" => "www.example.ua"
34
+ last_request.env['HTTP_HOST'].should == "www.example.ua"
35
+ end
36
+
32
37
  it "defaults to GET" do
33
38
  request "/"
34
39
  last_request.env["REQUEST_METHOD"].should == "GET"
@@ -91,6 +96,11 @@ describe Rack::Test::Session do
91
96
  last_request.GET.should == { "baz" => "2", "foo" => { "bar" => "1" }}
92
97
  end
93
98
 
99
+ it "parses query strings with repeated variable names correctly" do
100
+ request "/foo?bar=2&bar=3"
101
+ last_request.GET.should == { "bar" => "3" }
102
+ end
103
+
94
104
  it "accepts raw input in params for GET requests" do
95
105
  request "/foo?baz=2", :params => "foo[bar]=1"
96
106
  last_request.GET.should == { "baz" => "2", "foo" => { "bar" => "1" }}
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: 1
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 5
10
- version: 0.5.5
9
+ - 6
10
+ version: 0.5.6
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: 2010-09-22 00:00:00 -04:00
18
+ date: 2010-09-25 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -74,7 +74,6 @@ files:
74
74
  - spec/rack/test/utils_spec.rb
75
75
  - spec/rack/test_spec.rb
76
76
  - spec/spec_helper.rb
77
- - spec/support/core_ext/string.rb
78
77
  - spec/support/matchers/body.rb
79
78
  - spec/support/matchers/challenge.rb
80
79
  has_rdoc: true
@@ -119,6 +118,5 @@ test_files:
119
118
  - spec/rack/test/utils_spec.rb
120
119
  - spec/rack/test_spec.rb
121
120
  - spec/spec_helper.rb
122
- - spec/support/core_ext/string.rb
123
121
  - spec/support/matchers/body.rb
124
122
  - spec/support/matchers/challenge.rb
@@ -1,12 +0,0 @@
1
- # Taken from ActiveSuport v3
2
- class String
3
- if defined?(Encoding) && "".respond_to?(:encode)
4
- def encoding_aware?
5
- true
6
- end
7
- else
8
- def encoding_aware?
9
- false
10
- end
11
- end
12
- end