rack-test 0.8.3 → 1.0.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.
- checksums.yaml +4 -4
- data/History.md +14 -0
- data/README.md +9 -1
- data/lib/rack/test.rb +14 -6
- data/lib/rack/test/cookie_jar.rb +3 -1
- data/lib/rack/test/uploaded_file.rb +2 -1
- data/lib/rack/test/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffbb291753487a29727c09ba1b0b96cf873564798ef6f984931256b54043eadd
|
4
|
+
data.tar.gz: e9f40c35a2578f36cfbfffb17efc796543455c2617961350790f1742653566c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c2735a0f2564b979b9b5fcd9f5f952e7c0bf0b3f31071271089b8df2b34e18436e516a38bf3d708082b07169bbd79612a6286610b072970bb1c79636c31d1e9
|
7
|
+
data.tar.gz: aa3444f42ebb904a6b33c03cfdb3787cef34acbe96171569395123483b5b0df66401d959576990d90ced9e587fdbfbba049f42884cec2696549ea685b6643baa
|
data/History.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## 1.0.0 / 2018-03-27
|
2
|
+
|
3
|
+
* Breaking changes:
|
4
|
+
* Always set CONTENT_TYPE for non-GET requests
|
5
|
+
(Per Lundberg #223)
|
6
|
+
|
7
|
+
* Minor enhancements / bug fixes:
|
8
|
+
* Create tempfile using the basename without extension
|
9
|
+
(Edouard Chin #201)
|
10
|
+
* Save `session` during `follow_redirect!`
|
11
|
+
(Alexander Popov #218)
|
12
|
+
* Document how to use URL params with DELETE method
|
13
|
+
(Timur Platonov #220)
|
14
|
+
|
1
15
|
## 0.8.3 / 2018-02-27
|
2
16
|
|
3
17
|
* Bug fixes:
|
data/README.md
CHANGED
@@ -28,6 +28,10 @@ to build on.
|
|
28
28
|
|
29
29
|
If you are using Ruby 1.8, 1.9 or JRuby 1.7, use rack-test 0.6.3.
|
30
30
|
|
31
|
+
## Known incompatibilites
|
32
|
+
|
33
|
+
* `rack-test >= 0.71` _does not_ work with older Capybara versions (`< 2.17`). See [#214](https://github.com/rack-test/rack-test/issues/214) for more details.
|
34
|
+
|
31
35
|
## Examples
|
32
36
|
(The examples use `Test::Unit` but it's equally possible to use `rack-test` with other testing frameworks like `rspec`.)
|
33
37
|
|
@@ -72,6 +76,10 @@ class HomepageTest < Test::Unit::TestCase
|
|
72
76
|
# parameters, so make sure that `json` below is already a JSON-serialized string.
|
73
77
|
post(uri, json, { 'CONTENT_TYPE' => 'application/json' })
|
74
78
|
end
|
79
|
+
|
80
|
+
def delete_with_url_params_and_body
|
81
|
+
delete '/?foo=bar', JSON.generate('baz' => 'zot')
|
82
|
+
end
|
75
83
|
end
|
76
84
|
```
|
77
85
|
|
@@ -106,7 +114,7 @@ gem install rack-test
|
|
106
114
|
Or via Bundler:
|
107
115
|
|
108
116
|
```
|
109
|
-
gem 'rack-test'
|
117
|
+
gem 'rack-test'
|
110
118
|
```
|
111
119
|
|
112
120
|
Or to install unreleased version via Bundler:
|
data/lib/rack/test.rb
CHANGED
@@ -188,11 +188,17 @@ module Rack
|
|
188
188
|
unless last_response.redirect?
|
189
189
|
raise Error, 'Last response was not a redirect. Cannot follow_redirect!'
|
190
190
|
end
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
191
|
+
request_method, params =
|
192
|
+
if last_response.status == 307
|
193
|
+
[last_request.request_method.downcase.to_sym, last_request.params]
|
194
|
+
else
|
195
|
+
[:get, {}]
|
196
|
+
end
|
197
|
+
send(
|
198
|
+
request_method, last_response['Location'], params,
|
199
|
+
'HTTP_REFERER' => last_request.url,
|
200
|
+
'rack.session' => last_request.session
|
201
|
+
)
|
196
202
|
end
|
197
203
|
|
198
204
|
private
|
@@ -227,7 +233,7 @@ module Rack
|
|
227
233
|
uri.query = [uri.query, build_nested_query(params)].compact.reject { |v| v == '' }.join('&')
|
228
234
|
end
|
229
235
|
elsif !env.key?(:input)
|
230
|
-
env['CONTENT_TYPE'] ||= 'application/x-www-form-urlencoded'
|
236
|
+
env['CONTENT_TYPE'] ||= 'application/x-www-form-urlencoded'
|
231
237
|
|
232
238
|
if params.is_a?(Hash)
|
233
239
|
if data = build_multipart(params)
|
@@ -235,6 +241,8 @@ module Rack
|
|
235
241
|
env['CONTENT_LENGTH'] ||= data.length.to_s
|
236
242
|
env['CONTENT_TYPE'] = "multipart/form-data; boundary=#{MULTIPART_BOUNDARY}"
|
237
243
|
else
|
244
|
+
# NB: We do not need to set CONTENT_LENGTH here;
|
245
|
+
# Rack::ContentLength will determine it automatically.
|
238
246
|
env[:input] = params_to_string(params)
|
239
247
|
end
|
240
248
|
else
|
data/lib/rack/test/cookie_jar.rb
CHANGED
@@ -106,6 +106,8 @@ module Rack
|
|
106
106
|
end
|
107
107
|
|
108
108
|
class CookieJar # :nodoc:
|
109
|
+
DELIMITER = '; '.freeze
|
110
|
+
|
109
111
|
# :api: private
|
110
112
|
def initialize(cookies = [], default_host = DEFAULT_HOST)
|
111
113
|
@default_host = default_host
|
@@ -158,7 +160,7 @@ module Rack
|
|
158
160
|
|
159
161
|
# :api: private
|
160
162
|
def for(uri)
|
161
|
-
hash_for(uri).values.map(&:raw).join(
|
163
|
+
hash_for(uri).values.map(&:raw).join(DELIMITER)
|
162
164
|
end
|
163
165
|
|
164
166
|
def to_hash
|
@@ -71,8 +71,9 @@ module Rack
|
|
71
71
|
raise "#{path} file does not exist" unless ::File.exist?(path)
|
72
72
|
|
73
73
|
@original_filename = ::File.basename(path)
|
74
|
+
extension = ::File.extname(@original_filename)
|
74
75
|
|
75
|
-
@tempfile = Tempfile.new([@original_filename,
|
76
|
+
@tempfile = Tempfile.new([::File.basename(@original_filename, extension), extension])
|
76
77
|
@tempfile.set_encoding(Encoding::BINARY) if @tempfile.respond_to?(:set_encoding)
|
77
78
|
|
78
79
|
ObjectSpace.define_finalizer(self, self.class.finalize(@tempfile))
|
data/lib/rack/test/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryan Helmkamp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|