@@ -308,6 +308,18 @@ def test_range=
308308 end
309309
310310 def test_content_range
311+ @c [ 'Content-Range' ] = "bytes 0-499/1000"
312+ assert_equal 0 ..499 , @c . content_range
313+ @c [ 'Content-Range' ] = "bytes 1-500/1000"
314+ assert_equal 1 ..500 , @c . content_range
315+ @c [ 'Content-Range' ] = "bytes 1-1/1000"
316+ assert_equal 1 ..1 , @c . content_range
317+ @c [ 'Content-Range' ] = "tokens 1-1/1000"
318+ assert_equal nil , @c . content_range
319+
320+ try_invalid_content_range "invalid"
321+ try_invalid_content_range "bytes 123-abc"
322+ try_invalid_content_range "bytes abc-123"
311323 end
312324
313325 def test_range_length
@@ -317,6 +329,15 @@ def test_range_length
317329 assert_equal 500 , @c . range_length
318330 @c [ 'Content-Range' ] = "bytes 1-1/1000"
319331 assert_equal 1 , @c . range_length
332+ @c [ 'Content-Range' ] = "tokens 1-1/1000"
333+ assert_equal nil , @c . range_length
334+
335+ try_invalid_content_range "bytes 1-1/abc"
336+ end
337+
338+ def try_invalid_content_range ( s )
339+ @c [ 'Content-Range' ] = "#{ s } "
340+ assert_raise ( Net ::HTTPHeaderSyntaxError , s ) { @c . content_range }
320341 end
321342
322343 def test_chunked?
0 commit comments