35
33
data = StringIO.new "GET /Marshal.#{Gem.marshal_version} HTTP/1.0\r\n\r\n"
38
@server.Marshal @req, @res
36
Deprecate.skip_during do
37
@server.Marshal @req, @res
40
40
assert_equal 200, @res.status, @res.body
41
41
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
42
42
assert_equal 'application/octet-stream', @res['content-type']
44
si = Gem::SourceIndex.new
44
Deprecate.skip_during do
45
si = Gem::SourceIndex.new
47
assert_equal si, Marshal.load(@res.body)
48
assert_equal si, Marshal.load(@res.body)
51
53
data = StringIO.new "GET /Marshal.#{Gem.marshal_version}.Z HTTP/1.0\r\n\r\n"
54
@server.Marshal @req, @res
56
Deprecate.skip_during do
57
@server.Marshal @req, @res
56
60
assert_equal 200, @res.status, @res.body
57
61
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
58
62
assert_equal 'application/x-deflate', @res['content-type']
60
si = Gem::SourceIndex.new
64
Deprecate.skip_during do
65
si = Gem::SourceIndex.new
63
assert_equal si, Marshal.load(Gem.inflate(@res.body))
68
assert_equal si, Marshal.load(Gem.inflate(@res.body))
66
72
def test_latest_specs
67
73
data = StringIO.new "GET /latest_specs.#{Gem.marshal_version} HTTP/1.0\r\n\r\n"
70
@server.latest_specs @req, @res
76
Deprecate.skip_during do
77
@server.latest_specs @req, @res
72
80
assert_equal 200, @res.status, @res.body
73
81
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
74
82
assert_equal 'application/octet-stream', @res['content-type']
75
83
assert_equal [['a', Gem::Version.new(2), Gem::Platform::RUBY]],
76
Marshal.load(@res.body)
84
Marshal.load(@res.body)
79
87
def test_latest_specs_gz
80
88
data = StringIO.new "GET /latest_specs.#{Gem.marshal_version}.gz HTTP/1.0\r\n\r\n"
83
@server.latest_specs @req, @res
91
Deprecate.skip_during do
92
@server.latest_specs @req, @res
85
95
assert_equal 200, @res.status, @res.body
86
96
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
102
112
def test_listen_addresses
105
out, err = capture_io do
106
116
@server.listen %w[a b]
109
119
assert_equal 2, @server.server.listeners.length
112
def test_quick_a_1_gemspec_rz
113
data = StringIO.new "GET /quick/a-1.gemspec.rz HTTP/1.0\r\n\r\n"
116
@server.quick @req, @res
118
assert_equal 200, @res.status, @res.body
120
assert_equal 'application/x-deflate', @res['content-type']
122
spec = YAML.load Gem.inflate(@res.body)
123
assert_equal 'a', spec.name
124
assert_equal Gem::Version.new(1), spec.version
127
def test_quick_a_1_mswin32_gemspec_rz
128
a1_p = quick_gem 'a', '1' do |s| s.platform = Gem::Platform.local end
130
data = StringIO.new "GET /quick/a-1-#{Gem::Platform.local}.gemspec.rz HTTP/1.0\r\n\r\n"
133
@server.quick @req, @res
135
assert_equal 200, @res.status, @res.body
137
assert_equal 'application/x-deflate', @res['content-type']
139
spec = YAML.load Gem.inflate(@res.body)
140
assert_equal 'a', spec.name
141
assert_equal Gem::Version.new(1), spec.version
142
assert_equal Gem::Platform.local, spec.platform
145
def test_quick_common_substrings
146
ab1 = quick_gem 'ab', '1'
148
data = StringIO.new "GET /quick/a-1.gemspec.rz HTTP/1.0\r\n\r\n"
151
@server.quick @req, @res
153
assert_equal 200, @res.status, @res.body
155
assert_equal 'application/x-deflate', @res['content-type']
157
spec = YAML.load Gem.inflate(@res.body)
158
assert_equal 'a', spec.name
159
assert_equal Gem::Version.new(1), spec.version
163
data = StringIO.new "GET /quick/index HTTP/1.0\r\n\r\n"
166
@server.quick @req, @res
168
assert_equal 200, @res.status, @res.body
169
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
170
assert_equal 'text/plain', @res['content-type']
171
assert_equal "a-1\na-2", @res.body
174
def test_quick_index_rz
175
data = StringIO.new "GET /quick/index.rz HTTP/1.0\r\n\r\n"
178
@server.quick @req, @res
180
assert_equal 200, @res.status, @res.body
181
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
182
assert_equal 'application/x-deflate', @res['content-type']
183
assert_equal "a-1\na-2", Gem.inflate(@res.body)
186
def test_quick_latest_index
187
data = StringIO.new "GET /quick/latest_index HTTP/1.0\r\n\r\n"
190
@server.quick @req, @res
192
assert_equal 200, @res.status, @res.body
193
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
194
assert_equal 'text/plain', @res['content-type']
195
assert_equal 'a-2', @res.body
198
def test_quick_latest_index_rz
199
data = StringIO.new "GET /quick/latest_index.rz HTTP/1.0\r\n\r\n"
202
@server.quick @req, @res
204
assert_equal 200, @res.status, @res.body
205
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
206
assert_equal 'application/x-deflate', @res['content-type']
207
assert_equal 'a-2', Gem.inflate(@res.body)
210
122
def test_quick_missing
211
123
data = StringIO.new "GET /quick/z-9.gemspec.rz HTTP/1.0\r\n\r\n"
305
217
Marshal.load(Gem.gunzip(@res.body))
309
data = StringIO.new "GET /yaml.#{Gem.marshal_version} HTTP/1.0\r\n\r\n"
312
@server.yaml @req, @res
314
assert_equal 200, @res.status, @res.body
315
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
316
assert_equal 'text/plain', @res['content-type']
318
si = Gem::SourceIndex.new
319
si.add_specs @a1, @a2
321
assert_equal si, YAML.load(@res.body)
325
data = StringIO.new "GET /yaml.#{Gem.marshal_version}.Z HTTP/1.0\r\n\r\n"
328
@server.yaml @req, @res
330
assert_equal 200, @res.status, @res.body
331
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
332
assert_equal 'application/x-deflate', @res['content-type']
334
si = Gem::SourceIndex.new
335
si.add_specs @a1, @a2
337
assert_equal si, YAML.load(Gem.inflate(@res.body))
341
221
webrick = Object.new
342
222
webrick.instance_variable_set :@listeners, []