~ubuntu-branches/ubuntu/quantal/ruby1.9.1/quantal

« back to all changes in this revision

Viewing changes to test/rubygems/test_gem_server.rb

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2011-09-24 19:16:17 UTC
  • mfrom: (1.1.8 upstream) (13.1.7 experimental)
  • Revision ID: james.westby@ubuntu.com-20110924191617-o1qz4rcmqjot8zuy
Tags: 1.9.3~rc1-1
* New upstream release: 1.9.3 RC1.
  + Includes load.c fixes. Closes: #639959.
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
require_relative 'gemutilities'
 
1
require 'rubygems/test_case'
2
2
require 'rubygems/server'
3
3
require 'stringio'
4
4
 
5
5
class Gem::Server
6
 
  attr_accessor :source_index
7
6
  attr_reader :server
8
7
end
9
8
 
10
 
class TestGemServer < RubyGemTestCase
11
 
 
 
9
class TestGemServer < Gem::TestCase
12
10
  def setup
13
11
    super
14
12
 
35
33
    data = StringIO.new "GET /Marshal.#{Gem.marshal_version} HTTP/1.0\r\n\r\n"
36
34
    @req.parse data
37
35
 
38
 
    @server.Marshal @req, @res
 
36
    Deprecate.skip_during do
 
37
      @server.Marshal @req, @res
 
38
    end
39
39
 
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']
43
43
 
44
 
    si = Gem::SourceIndex.new
45
 
    si.add_specs @a1, @a2
 
44
    Deprecate.skip_during do
 
45
      si = Gem::SourceIndex.new
 
46
      si.add_specs @a1, @a2
46
47
 
47
 
    assert_equal si, Marshal.load(@res.body)
 
48
      assert_equal si, Marshal.load(@res.body)
 
49
    end
48
50
  end
49
51
 
50
52
  def test_Marshal_Z
51
53
    data = StringIO.new "GET /Marshal.#{Gem.marshal_version}.Z HTTP/1.0\r\n\r\n"
52
54
    @req.parse data
53
55
 
54
 
    @server.Marshal @req, @res
 
56
    Deprecate.skip_during do
 
57
      @server.Marshal @req, @res
 
58
    end
55
59
 
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']
59
63
 
60
 
    si = Gem::SourceIndex.new
61
 
    si.add_specs @a1, @a2
 
64
    Deprecate.skip_during do
 
65
      si = Gem::SourceIndex.new
 
66
      si.add_specs @a1, @a2
62
67
 
63
 
    assert_equal si, Marshal.load(Gem.inflate(@res.body))
 
68
      assert_equal si, Marshal.load(Gem.inflate(@res.body))
 
69
    end
64
70
  end
65
71
 
66
72
  def test_latest_specs
67
73
    data = StringIO.new "GET /latest_specs.#{Gem.marshal_version} HTTP/1.0\r\n\r\n"
68
74
    @req.parse data
69
75
 
70
 
    @server.latest_specs @req, @res
 
76
    Deprecate.skip_during do
 
77
      @server.latest_specs @req, @res
 
78
    end
71
79
 
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)
77
85
  end
78
86
 
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"
81
89
    @req.parse data
82
90
 
83
 
    @server.latest_specs @req, @res
 
91
    Deprecate.skip_during do
 
92
      @server.latest_specs @req, @res
 
93
    end
84
94
 
85
95
    assert_equal 200, @res.status, @res.body
86
96
    assert_match %r| \d\d:\d\d:\d\d |, @res['date']
92
102
  def test_listen
93
103
    util_listen
94
104
 
95
 
    out, err = capture_io do
 
105
    capture_io do
96
106
      @server.listen
97
107
    end
98
108
 
102
112
  def test_listen_addresses
103
113
    util_listen
104
114
 
105
 
    out, err = capture_io do
 
115
    capture_io do
106
116
      @server.listen %w[a b]
107
117
    end
108
 
    
 
118
 
109
119
    assert_equal 2, @server.server.listeners.length
110
120
  end
111
121
 
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"
114
 
    @req.parse data
115
 
 
116
 
    @server.quick @req, @res
117
 
 
118
 
    assert_equal 200, @res.status, @res.body
119
 
    assert @res['date']
120
 
    assert_equal 'application/x-deflate', @res['content-type']
121
 
 
122
 
    spec = YAML.load Gem.inflate(@res.body)
123
 
    assert_equal 'a', spec.name
124
 
    assert_equal Gem::Version.new(1), spec.version
125
 
  end
126
 
 
127
 
  def test_quick_a_1_mswin32_gemspec_rz
128
 
    a1_p = quick_gem 'a', '1' do |s| s.platform = Gem::Platform.local end
129
 
 
130
 
    data = StringIO.new "GET /quick/a-1-#{Gem::Platform.local}.gemspec.rz HTTP/1.0\r\n\r\n"
131
 
    @req.parse data
132
 
 
133
 
    @server.quick @req, @res
134
 
 
135
 
    assert_equal 200, @res.status, @res.body
136
 
    assert @res['date']
137
 
    assert_equal 'application/x-deflate', @res['content-type']
138
 
 
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
143
 
  end
144
 
 
145
 
  def test_quick_common_substrings
146
 
    ab1 = quick_gem 'ab', '1'
147
 
 
148
 
    data = StringIO.new "GET /quick/a-1.gemspec.rz HTTP/1.0\r\n\r\n"
149
 
    @req.parse data
150
 
 
151
 
    @server.quick @req, @res
152
 
 
153
 
    assert_equal 200, @res.status, @res.body
154
 
    assert @res['date']
155
 
    assert_equal 'application/x-deflate', @res['content-type']
156
 
 
157
 
    spec = YAML.load Gem.inflate(@res.body)
158
 
    assert_equal 'a', spec.name
159
 
    assert_equal Gem::Version.new(1), spec.version
160
 
  end
161
 
 
162
 
  def test_quick_index
163
 
    data = StringIO.new "GET /quick/index HTTP/1.0\r\n\r\n"
164
 
    @req.parse data
165
 
 
166
 
    @server.quick @req, @res
167
 
 
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
172
 
  end
173
 
 
174
 
  def test_quick_index_rz
175
 
    data = StringIO.new "GET /quick/index.rz HTTP/1.0\r\n\r\n"
176
 
    @req.parse data
177
 
 
178
 
    @server.quick @req, @res
179
 
 
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)
184
 
  end
185
 
 
186
 
  def test_quick_latest_index
187
 
    data = StringIO.new "GET /quick/latest_index HTTP/1.0\r\n\r\n"
188
 
    @req.parse data
189
 
 
190
 
    @server.quick @req, @res
191
 
 
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
196
 
  end
197
 
 
198
 
  def test_quick_latest_index_rz
199
 
    data = StringIO.new "GET /quick/latest_index.rz HTTP/1.0\r\n\r\n"
200
 
    @req.parse data
201
 
 
202
 
    @server.quick @req, @res
203
 
 
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)
208
 
  end
209
 
 
210
122
  def test_quick_missing
211
123
    data = StringIO.new "GET /quick/z-9.gemspec.rz HTTP/1.0\r\n\r\n"
212
124
    @req.parse data
236
148
  end
237
149
 
238
150
  def test_quick_marshal_a_1_mswin32_gemspec_rz
239
 
    a1_p = quick_gem 'a', '1' do |s| s.platform = Gem::Platform.local end
 
151
    quick_gem 'a', '1' do |s| s.platform = Gem::Platform.local end
240
152
 
241
153
    data = StringIO.new "GET /quick/Marshal.#{Gem.marshal_version}/a-1-#{Gem::Platform.local}.gemspec.rz HTTP/1.0\r\n\r\n"
242
154
    @req.parse data
305
217
                 Marshal.load(Gem.gunzip(@res.body))
306
218
  end
307
219
 
308
 
  def test_yaml
309
 
    data = StringIO.new "GET /yaml.#{Gem.marshal_version} HTTP/1.0\r\n\r\n"
310
 
    @req.parse data
311
 
 
312
 
    @server.yaml @req, @res
313
 
 
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']
317
 
 
318
 
    si = Gem::SourceIndex.new
319
 
    si.add_specs @a1, @a2
320
 
 
321
 
    assert_equal si, YAML.load(@res.body)
322
 
  end
323
 
 
324
 
  def test_yaml_Z
325
 
    data = StringIO.new "GET /yaml.#{Gem.marshal_version}.Z HTTP/1.0\r\n\r\n"
326
 
    @req.parse data
327
 
 
328
 
    @server.yaml @req, @res
329
 
 
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']
333
 
 
334
 
    si = Gem::SourceIndex.new
335
 
    si.add_specs @a1, @a2
336
 
 
337
 
    assert_equal si, YAML.load(Gem.inflate(@res.body))
338
 
  end
339
 
 
340
220
  def util_listen
341
221
    webrick = Object.new
342
222
    webrick.instance_variable_set :@listeners, []
351
231
 
352
232
    @server.instance_variable_set :@server, webrick
353
233
  end
354
 
 
355
234
end
356