mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
Make NullIO#read mimic IO#read
This commit is contained in:
parent
f6b4363b39
commit
5fbd942f84
2 changed files with 35 additions and 4 deletions
|
@ -1,10 +1,10 @@
|
|||
require 'stringio'
|
||||
module Puma
|
||||
|
||||
# Provides an IO-like object that always appears to contain no data.
|
||||
# Used as the value for rack.input when the request has no body.
|
||||
#
|
||||
class NullIO
|
||||
|
||||
# Always returns nil
|
||||
#
|
||||
def gets
|
||||
|
@ -16,10 +16,10 @@ module Puma
|
|||
def each
|
||||
end
|
||||
|
||||
# Always returns nil
|
||||
# Mimics IO#read with no data
|
||||
#
|
||||
def read(count)
|
||||
nil
|
||||
def read(*args)
|
||||
StringIO.new('').read(*args)
|
||||
end
|
||||
|
||||
# Does nothing
|
||||
|
|
31
test/test_null_io.rb
Normal file
31
test/test_null_io.rb
Normal file
|
@ -0,0 +1,31 @@
|
|||
require 'puma/null_io'
|
||||
require 'test/unit'
|
||||
|
||||
class TestNullIO < Test::Unit::TestCase
|
||||
attr_accessor :nio
|
||||
def setup
|
||||
self.nio = Puma::NullIO.new
|
||||
end
|
||||
|
||||
def test_read_with_no_arguments
|
||||
assert_equal "", nio.read
|
||||
end
|
||||
|
||||
def test_read_with_nil_length
|
||||
assert_equal "", nio.read(nil)
|
||||
end
|
||||
|
||||
def test_read_with_zero_length
|
||||
assert_equal "", nio.read(0)
|
||||
end
|
||||
|
||||
def test_read_with_positive_integer_length
|
||||
assert_nil nio.read(1)
|
||||
end
|
||||
|
||||
def test_read_with_length_and_buffer
|
||||
buf = ""
|
||||
assert_nil nio.read(1,buf)
|
||||
assert_equal "", buf
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue