rack-test 1.1.0 → 2.1.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 +120 -1
- data/MIT-LICENSE.txt +1 -0
- data/README.md +53 -64
- data/lib/rack/test/cookie_jar.rb +108 -50
- data/lib/rack/test/methods.rb +57 -46
- data/lib/rack/test/uploaded_file.rb +44 -16
- data/lib/rack/test/utils.rb +73 -61
- data/lib/rack/test/version.rb +1 -1
- data/lib/rack/test.rb +230 -182
- metadata +30 -101
- data/lib/rack/mock_session.rb +0 -63
- data/lib/rack/test/mock_digest_request.rb +0 -25
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- Jeremy Evans
|
7
8
|
- Bryan Helmkamp
|
8
|
-
autorequire:
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2023-03-14 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rack
|
@@ -16,136 +17,63 @@ dependencies:
|
|
16
17
|
requirements:
|
17
18
|
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '3'
|
20
|
+
version: '1.3'
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
24
|
requirements:
|
27
25
|
- - ">="
|
28
26
|
- !ruby/object:Gem::Version
|
29
|
-
version: '1.
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '3'
|
27
|
+
version: '1.3'
|
33
28
|
- !ruby/object:Gem::Dependency
|
34
29
|
name: rake
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '12.0'
|
40
|
-
type: :development
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '12.0'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: rspec
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '3.6'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '3.6'
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: sinatra
|
63
30
|
requirement: !ruby/object:Gem::Requirement
|
64
31
|
requirements:
|
65
32
|
- - ">="
|
66
33
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
68
|
-
- - "<"
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: '3'
|
34
|
+
version: '0'
|
71
35
|
type: :development
|
72
36
|
prerelease: false
|
73
37
|
version_requirements: !ruby/object:Gem::Requirement
|
74
38
|
requirements:
|
75
39
|
- - ">="
|
76
40
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
78
|
-
- - "<"
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: '3'
|
41
|
+
version: '0'
|
81
42
|
- !ruby/object:Gem::Dependency
|
82
|
-
name:
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
84
|
-
requirements:
|
85
|
-
- - "~>"
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: '5.1'
|
88
|
-
type: :development
|
89
|
-
prerelease: false
|
90
|
-
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
requirements:
|
92
|
-
- - "~>"
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '5.1'
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: rubocop
|
43
|
+
name: minitest
|
97
44
|
requirement: !ruby/object:Gem::Requirement
|
98
45
|
requirements:
|
99
46
|
- - ">="
|
100
47
|
- !ruby/object:Gem::Version
|
101
|
-
version: '0
|
102
|
-
- - "<"
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: '0.50'
|
48
|
+
version: '5.0'
|
105
49
|
type: :development
|
106
50
|
prerelease: false
|
107
51
|
version_requirements: !ruby/object:Gem::Requirement
|
108
52
|
requirements:
|
109
53
|
- - ">="
|
110
54
|
- !ruby/object:Gem::Version
|
111
|
-
version: '0
|
112
|
-
- - "<"
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
version: '0.50'
|
55
|
+
version: '5.0'
|
115
56
|
- !ruby/object:Gem::Dependency
|
116
|
-
name:
|
57
|
+
name: minitest-global_expectations
|
117
58
|
requirement: !ruby/object:Gem::Requirement
|
118
59
|
requirements:
|
119
|
-
- - "
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: '0.16'
|
122
|
-
type: :development
|
123
|
-
prerelease: false
|
124
|
-
version_requirements: !ruby/object:Gem::Requirement
|
125
|
-
requirements:
|
126
|
-
- - "~>"
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
version: '0.16'
|
129
|
-
- !ruby/object:Gem::Dependency
|
130
|
-
name: thor
|
131
|
-
requirement: !ruby/object:Gem::Requirement
|
132
|
-
requirements:
|
133
|
-
- - "~>"
|
60
|
+
- - ">="
|
134
61
|
- !ruby/object:Gem::Version
|
135
|
-
version: '0
|
62
|
+
version: '0'
|
136
63
|
type: :development
|
137
64
|
prerelease: false
|
138
65
|
version_requirements: !ruby/object:Gem::Requirement
|
139
66
|
requirements:
|
140
|
-
- - "
|
67
|
+
- - ">="
|
141
68
|
- !ruby/object:Gem::Version
|
142
|
-
version: '0
|
69
|
+
version: '0'
|
143
70
|
description: |-
|
144
71
|
Rack::Test is a small, simple testing API for Rack apps. It can be used on its
|
145
72
|
own or as a reusable starting point for Web frameworks and testing libraries
|
146
|
-
to build on.
|
147
|
-
|
148
|
-
|
73
|
+
to build on.
|
74
|
+
email:
|
75
|
+
- code@jeremyevans.net
|
76
|
+
- bryan@brynary.com
|
149
77
|
executables: []
|
150
78
|
extensions: []
|
151
79
|
extra_rdoc_files: []
|
@@ -153,19 +81,21 @@ files:
|
|
153
81
|
- History.md
|
154
82
|
- MIT-LICENSE.txt
|
155
83
|
- README.md
|
156
|
-
- lib/rack/mock_session.rb
|
157
84
|
- lib/rack/test.rb
|
158
85
|
- lib/rack/test/cookie_jar.rb
|
159
86
|
- lib/rack/test/methods.rb
|
160
|
-
- lib/rack/test/mock_digest_request.rb
|
161
87
|
- lib/rack/test/uploaded_file.rb
|
162
88
|
- lib/rack/test/utils.rb
|
163
89
|
- lib/rack/test/version.rb
|
164
|
-
homepage:
|
90
|
+
homepage: https://github.com/rack/rack-test
|
165
91
|
licenses:
|
166
92
|
- MIT
|
167
|
-
metadata:
|
168
|
-
|
93
|
+
metadata:
|
94
|
+
source_code_uri: https://github.com/rack/rack-test
|
95
|
+
bug_tracker_uri: https://github.com/rack/rack-test/issues
|
96
|
+
mailing_list_uri: https://github.com/rack/rack-test/discussions
|
97
|
+
changelog_uri: https://github.com/rack/rack-test/blob/main/History.md
|
98
|
+
post_install_message:
|
169
99
|
rdoc_options: []
|
170
100
|
require_paths:
|
171
101
|
- lib
|
@@ -173,16 +103,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
173
103
|
requirements:
|
174
104
|
- - ">="
|
175
105
|
- !ruby/object:Gem::Version
|
176
|
-
version: 2.
|
106
|
+
version: '2.0'
|
177
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
108
|
requirements:
|
179
109
|
- - ">="
|
180
110
|
- !ruby/object:Gem::Version
|
181
111
|
version: '0'
|
182
112
|
requirements: []
|
183
|
-
|
184
|
-
|
185
|
-
signing_key:
|
113
|
+
rubygems_version: 3.4.6
|
114
|
+
signing_key:
|
186
115
|
specification_version: 4
|
187
116
|
summary: Simple testing API built on Rack
|
188
117
|
test_files: []
|
data/lib/rack/mock_session.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
module Rack
|
2
|
-
class MockSession # :nodoc:
|
3
|
-
attr_writer :cookie_jar
|
4
|
-
attr_reader :default_host
|
5
|
-
|
6
|
-
def initialize(app, default_host = Rack::Test::DEFAULT_HOST)
|
7
|
-
@app = app
|
8
|
-
@after_request = []
|
9
|
-
@default_host = default_host
|
10
|
-
@last_request = nil
|
11
|
-
@last_response = nil
|
12
|
-
end
|
13
|
-
|
14
|
-
def after_request(&block)
|
15
|
-
@after_request << block
|
16
|
-
end
|
17
|
-
|
18
|
-
def clear_cookies
|
19
|
-
@cookie_jar = Rack::Test::CookieJar.new([], @default_host)
|
20
|
-
end
|
21
|
-
|
22
|
-
def set_cookie(cookie, uri = nil)
|
23
|
-
cookie_jar.merge(cookie, uri)
|
24
|
-
end
|
25
|
-
|
26
|
-
def request(uri, env)
|
27
|
-
env['HTTP_COOKIE'] ||= cookie_jar.for(uri)
|
28
|
-
@last_request = Rack::Request.new(env)
|
29
|
-
status, headers, body = @app.call(@last_request.env)
|
30
|
-
|
31
|
-
@last_response = MockResponse.new(status, headers, body, env['rack.errors'].flush)
|
32
|
-
body.close if body.respond_to?(:close)
|
33
|
-
|
34
|
-
cookie_jar.merge(last_response.headers['Set-Cookie'], uri)
|
35
|
-
|
36
|
-
@after_request.each(&:call)
|
37
|
-
|
38
|
-
if @last_response.respond_to?(:finish)
|
39
|
-
@last_response.finish
|
40
|
-
else
|
41
|
-
@last_response
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
# Return the last request issued in the session. Raises an error if no
|
46
|
-
# requests have been sent yet.
|
47
|
-
def last_request
|
48
|
-
raise Rack::Test::Error, 'No request yet. Request a page first.' unless @last_request
|
49
|
-
@last_request
|
50
|
-
end
|
51
|
-
|
52
|
-
# Return the last response received in the session. Raises an error if
|
53
|
-
# no requests have been sent yet.
|
54
|
-
def last_response
|
55
|
-
raise Rack::Test::Error, 'No response yet. Request a page first.' unless @last_response
|
56
|
-
@last_response
|
57
|
-
end
|
58
|
-
|
59
|
-
def cookie_jar
|
60
|
-
@cookie_jar ||= Rack::Test::CookieJar.new([], @default_host)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Rack
|
2
|
-
module Test
|
3
|
-
class MockDigestRequest # :nodoc:
|
4
|
-
def initialize(params)
|
5
|
-
@params = params
|
6
|
-
end
|
7
|
-
|
8
|
-
def method_missing(sym)
|
9
|
-
if @params.key? k = sym.to_s
|
10
|
-
return @params[k]
|
11
|
-
end
|
12
|
-
|
13
|
-
super
|
14
|
-
end
|
15
|
-
|
16
|
-
def method
|
17
|
-
@params['method']
|
18
|
-
end
|
19
|
-
|
20
|
-
def response(password)
|
21
|
-
Rack::Auth::Digest::MD5.new(nil).send :digest, self, password
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|