Skip to content
This repository has been archived by the owner on Nov 11, 2018. It is now read-only.

Crystal 0.20.0 compatability #4

Merged
merged 1 commit into from
Nov 22, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 6 additions & 6 deletions spec/http/formdata/generator_spec.cr
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ require "../../spec_helper"

describe HTTP::FormData::Generator do
it "generates valid form-data messages" do
io = MemoryIO.new
io = IO::Memory.new
HTTP::FormData.generate(io, "fixed-boundary") do |g|
g.field("foo", "bar")
g.field("baz", "qux", HTTP::Headers{"X-Testing" => "headers"})

body = MemoryIO.new "file content"
body = IO::Memory.new "file content"
time = Time.new(2016, 1, 1, 12, 0, 0, kind: Time::Kind::Utc)
metadata = HTTP::FormData::FileMetadata.new("filename.txt \"", time, time, time, 12_u64)
headers = HTTP::Headers{"Foo" => "Bar", "Baz" => "Qux"}
Expand Down Expand Up @@ -39,14 +39,14 @@ describe HTTP::FormData::Generator do

describe "#content_type" do
it "calculates the content type" do
generator = HTTP::FormData::Generator.new(MemoryIO.new, "a delimiter string with a quote in \"")
generator = HTTP::FormData::Generator.new(IO::Memory.new, "a delimiter string with a quote in \"")
generator.content_type.should eq(%q(multipart/form-data; boundary="a delimiter string with a quote in \""))
end
end

describe "#file" do
it "fails after finish" do
generator = HTTP::FormData::Generator.new(MemoryIO.new)
generator = HTTP::FormData::Generator.new(IO::Memory.new)
generator.field("foo", "bar")
generator.finish
expect_raises(HTTP::FormData::GenerationException, "Cannot add form part: already finished") do
Expand All @@ -57,7 +57,7 @@ describe HTTP::FormData::Generator do

describe "#finish" do
it "fails after finish" do
generator = HTTP::FormData::Generator.new(MemoryIO.new)
generator = HTTP::FormData::Generator.new(IO::Memory.new)
generator.field("foo", "bar")
generator.finish
expect_raises(HTTP::FormData::GenerationException, "Cannot finish form-data: already finished") do
Expand All @@ -66,7 +66,7 @@ describe HTTP::FormData::Generator do
end

it "fails when no body parts" do
generator = HTTP::FormData::Generator.new(MemoryIO.new)
generator = HTTP::FormData::Generator.new(IO::Memory.new)
expect_raises(HTTP::FormData::GenerationException, "Cannot finish form-data: no body parts") do
generator.finish
end
Expand Down
2 changes: 1 addition & 1 deletion spec/http/formdata/parser_spec.cr
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ describe HTTP::FormData::Parser do
-----------------------------735323031399963166993862150--
FORMDATA

parser = HTTP::FormData::Parser.new MemoryIO.new(formdata.gsub("\n", "\r\n")), "---------------------------735323031399963166993862150"
parser = HTTP::FormData::Parser.new IO::Memory.new(formdata.gsub("\n", "\r\n")), "---------------------------735323031399963166993862150"

runs = 0
while parser.has_next?
Expand Down
6 changes: 3 additions & 3 deletions spec/http/formdata_spec.cr
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ describe HTTP::FormData do
FORMDATA

res = nil
HTTP::FormData.parse(MemoryIO.new(formdata.gsub('\n', "\r\n")), "foo") do |field, io|
HTTP::FormData.parse(IO::Memory.new(formdata.gsub('\n', "\r\n")), "foo") do |field, io|
res = io.gets_to_end if field == "foo"
end
res.should eq("bar")
Expand Down Expand Up @@ -77,7 +77,7 @@ describe HTTP::FormData do

describe ".generate(IO, String)" do
it "generates a message" do
io = MemoryIO.new
io = IO::Memory.new
HTTP::FormData.generate(io, "boundary") do |g|
g.field("foo", "bar")
end
Expand All @@ -95,7 +95,7 @@ describe HTTP::FormData do

describe ".generate(HTTP::Response, String)" do
it "generates a message" do
io = MemoryIO.new
io = IO::Memory.new
response = HTTP::Server::Response.new(io)
HTTP::FormData.generate(response, "boundary") do |g|
g.field("foo", "bar")
Expand Down
32 changes: 16 additions & 16 deletions spec/http/multipart/generator_spec.cr
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ require "../../spec_helper"

describe HTTP::Multipart::Generator do
it "generates valid multipart messages" do
io = MemoryIO.new
io = IO::Memory.new
generator = HTTP::Multipart::Generator.new(io, "fixed-boundary")

headers = HTTP::Headers{"X-Foo" => "bar"}
Expand All @@ -28,7 +28,7 @@ describe HTTP::Multipart::Generator do
end

it "generates valid multipart messages with preamble and epilogue" do
io = MemoryIO.new
io = IO::Memory.new
generator = HTTP::Multipart::Generator.new(io, "fixed-boundary")

generator.preamble "Here is a preamble to explain why multipart/mixed "
Expand Down Expand Up @@ -63,19 +63,19 @@ describe HTTP::Multipart::Generator do

describe "#content_type" do
it "calculates the content type" do
generator = HTTP::Multipart::Generator.new(MemoryIO.new, "a delimiter string with a quote in \"")
generator = HTTP::Multipart::Generator.new(IO::Memory.new, "a delimiter string with a quote in \"")
generator.content_type("alternative").should eq(%q(multipart/alternative; boundary="a delimiter string with a quote in \""))
end
end

describe ".preamble" do
it "accepts different data types" do
io = MemoryIO.new
io = IO::Memory.new
generator = HTTP::Multipart::Generator.new(io, "boundary")

generator.preamble "string\r\n"
generator.preamble "slice\r\n".to_slice
preamble_io = MemoryIO.new "io\r\n"
preamble_io = IO::Memory.new "io\r\n"
generator.preamble preamble_io
generator.preamble do |io|
io.print "io"
Expand All @@ -102,7 +102,7 @@ describe HTTP::Multipart::Generator do
end

it "raises when called after starting the body" do
generator = HTTP::Multipart::Generator.new(MemoryIO.new)
generator = HTTP::Multipart::Generator.new(IO::Memory.new)

generator.body_part HTTP::Headers.new, "test"
expect_raises(HTTP::Multipart::GenerationException, "Cannot generate preamble: body already started") do
Expand All @@ -113,14 +113,14 @@ describe HTTP::Multipart::Generator do

describe ".body_part" do
it "accepts different data types" do
io = MemoryIO.new
io = IO::Memory.new
generator = HTTP::Multipart::Generator.new(io, "boundary")

headers = HTTP::Headers{"X-Foo" => "Bar"}

generator.body_part headers, "string\r\n"
generator.body_part headers, "slice".to_slice
body_part_io = MemoryIO.new "io"
body_part_io = IO::Memory.new "io"
generator.body_part headers, body_part_io
generator.body_part(headers) do |io|
io.print "io"
Expand Down Expand Up @@ -159,7 +159,7 @@ describe HTTP::Multipart::Generator do
end

it "raises when called after finishing" do
generator = HTTP::Multipart::Generator.new(MemoryIO.new)
generator = HTTP::Multipart::Generator.new(IO::Memory.new)

generator.body_part HTTP::Headers.new, "test"
generator.finish
Expand All @@ -169,7 +169,7 @@ describe HTTP::Multipart::Generator do
end

it "raises when called after epilogue" do
generator = HTTP::Multipart::Generator.new(MemoryIO.new)
generator = HTTP::Multipart::Generator.new(IO::Memory.new)

generator.body_part HTTP::Headers.new, "test"
generator.epilogue "test"
Expand All @@ -181,14 +181,14 @@ describe HTTP::Multipart::Generator do

describe ".epilogue" do
it "accepts different data types" do
io = MemoryIO.new
io = IO::Memory.new
generator = HTTP::Multipart::Generator.new(io, "boundary")

generator.body_part(HTTP::Headers.new)

generator.epilogue "string\r\n"
generator.epilogue "slice\r\n".to_slice
epilogue_io = MemoryIO.new "io\r\n"
epilogue_io = IO::Memory.new "io\r\n"
generator.epilogue epilogue_io
generator.epilogue do |io|
io.print "io"
Expand All @@ -214,7 +214,7 @@ describe HTTP::Multipart::Generator do
end

it "raises when called after finishing" do
generator = HTTP::Multipart::Generator.new(MemoryIO.new)
generator = HTTP::Multipart::Generator.new(IO::Memory.new)

generator.body_part HTTP::Headers.new, "test"
generator.finish
Expand All @@ -225,7 +225,7 @@ describe HTTP::Multipart::Generator do
end

it "raises when called with no body parts" do
generator = HTTP::Multipart::Generator.new(MemoryIO.new)
generator = HTTP::Multipart::Generator.new(IO::Memory.new)

expect_raises(HTTP::Multipart::GenerationException, "Cannot generate epilogue: no body parts") do
generator.epilogue "test"
Expand All @@ -241,7 +241,7 @@ describe HTTP::Multipart::Generator do

describe ".finish" do
it "raises if no body exists" do
generator = HTTP::Multipart::Generator.new(MemoryIO.new)
generator = HTTP::Multipart::Generator.new(IO::Memory.new)

expect_raises(HTTP::Multipart::GenerationException, "Cannot finish multipart: no body parts") do
generator.finish
Expand All @@ -255,7 +255,7 @@ describe HTTP::Multipart::Generator do
end

it "raises if already finished" do
generator = HTTP::Multipart::Generator.new(MemoryIO.new)
generator = HTTP::Multipart::Generator.new(IO::Memory.new)

generator.body_part HTTP::Headers.new, "test"
generator.finish
Expand Down
8 changes: 4 additions & 4 deletions spec/http/multipart/parser_spec.cr
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
require "../../spec_helper"

def mp_parse(delim, data)
data_io = MemoryIO.new(data.gsub("\n", "\r\n"))
data_io = IO::Memory.new(data.gsub("\n", "\r\n"))
parser = HTTP::Multipart::Parser.new(data_io, delim)

parsed = [] of {headers: HTTP::Headers, body: String}
Expand Down Expand Up @@ -65,7 +65,7 @@ describe HTTP::Multipart::Parser do
Foo
--AaB03x--
MULTIPART
parser = HTTP::Multipart::Parser.new(MemoryIO.new(input.gsub("\n", "\r\n")), "AaB03x")
parser = HTTP::Multipart::Parser.new(IO::Memory.new(input.gsub("\n", "\r\n")), "AaB03x")

parser.next { }
parser.has_next?.should eq(false)
Expand All @@ -80,7 +80,7 @@ describe HTTP::Multipart::Parser do
--AaB03x
--AaB03x--
MULTIPART
parser = HTTP::Multipart::Parser.new(MemoryIO.new(input.gsub("\n", "\r\n")), "AaB03x")
parser = HTTP::Multipart::Parser.new(IO::Memory.new(input.gsub("\n", "\r\n")), "AaB03x")

expect_raises(HTTP::Multipart::ParseException, "Invalid multipart message") do
parser.next { }
Expand All @@ -106,7 +106,7 @@ describe HTTP::Multipart::Parser do
--b--
MULTIPART

parser = HTTP::Multipart::Parser.new(MemoryIO.new(input.gsub("\n", "\r\n")), "b")
parser = HTTP::Multipart::Parser.new(IO::Memory.new(input.gsub("\n", "\r\n")), "b")

ios = [] of IO

Expand Down
2 changes: 1 addition & 1 deletion spec/http/multipart_spec.cr
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ describe HTTP::Multipart do
describe ".parse" do
it "parses multipart messages" do
multipart = "--aA40\r\nContent-Type: text/plain\r\n\r\nabcd\r\n--aA40--"
HTTP::Multipart.parse(MemoryIO.new(multipart), "aA40") do |headers, io|
HTTP::Multipart.parse(IO::Memory.new(multipart), "aA40") do |headers, io|
headers["Content-Type"].should eq("text/plain")
io.gets_to_end.should eq("abcd")
end
Expand Down
8 changes: 4 additions & 4 deletions src/http/formdata.cr
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module HTTP::FormData
#
# ```
# form_data = "--aA40\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nfield data\r\n--aA40--"
# HTTP::FormData.parse(MemoryIO.new(form_data), "aA40") do |field, io|
# HTTP::FormData.parse(IO::Memory.new(form_data), "aA40") do |field, io|
# field # => "field1"
# data # => "field data"
# end
Expand Down Expand Up @@ -40,7 +40,7 @@ module HTTP::FormData
boundary = request.headers["Content-Type"]?.try { |header| Multipart.parse_boundary(header) }
raise ParseException.new "Cannot parse HTTP request: could not find boundary in Content-Type" unless boundary

parse(MemoryIO.new(body), boundary) { |field, io, meta, headers| yield field, io, meta, headers }
parse(body, boundary) { |field, io, meta, headers| yield field, io, meta, headers }
end

# Parses a `Content-Disposition` header string into a field name and
Expand Down Expand Up @@ -95,7 +95,7 @@ module HTTP::FormData
# `Generator#finish` is called on the generator when the block returns.
#
# ```
# io = MemoryIO.new
# io = IO::Memory.new
# HTTP::FormData.generate(io, "boundary") do |generator|
# generator.field("foo", "bar")
# end
Expand All @@ -115,7 +115,7 @@ module HTTP::FormData
# generator when the block returns.
#
# ```
# io = MemoryIO.new
# io = IO::Memory.new
# response = HTTP::Server::Response.new io
# HTTP::FormData.generate(response, "boundary") do |generator|
# generator.field("foo", "bar")
Expand Down
6 changes: 3 additions & 3 deletions src/http/formdata/generator.cr
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ module HTTP::FormData
# ### Example
#
# ```
# io = MemoryIO.new
# io = IO::Memory.new
# generator = HTTP::FormData::Generator.new(io, "aA47")
# generator.field("name", "joe")
# file = MemoryIO.new "file contents"
# file = IO::Memory.new "file contents"
# generator.file("upload", io, FileMetadata.new(filename: "test.txt"))
# generator.finish
# io.to_s # => "--aA47\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\njoe\r\n--aA47\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"test.txt\"\r\n\r\nfile contents\r\n--aA47--"
Expand All @@ -37,7 +37,7 @@ module HTTP::FormData
# Adds a form part with the given *name* and *value*. *Headers* can
# optionally be provided for the form part.
def field(name, value, headers : HTTP::Headers = HTTP::Headers.new)
file(name, MemoryIO.new(value), headers: headers)
file(name, IO::Memory.new(value), headers: headers)
end

# Adds a form part called *name*, with data from *io* as the value.
Expand Down
4 changes: 2 additions & 2 deletions src/http/formdata/parser.cr
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ module HTTP::FormData
#
# ```
# form_data = "--aA40\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nfield data\r\n--aA40--"
# parser = HTTP::FormData::Parser.new(MemoryIO.new(form_data), "aA40")
# parser = HTTP::FormData::Parser.new(IO::Memory.new(form_data), "aA40")
#
# parser.field("field1") do |data|
# data # => "field data"
Expand All @@ -34,7 +34,7 @@ module HTTP::FormData
#
# ```
# form_data = "--aA40\r\nContent-Disposition: form-data; name=\"field1\"; filename=\"foo.txt\"; size=13\r\nContent-Type: text/plain\r\n\r\nfield data\r\n--aA40--"
# parser = HTTP::FormData::Parser.new(MemoryIO.new(form_data), "aA40")
# parser = HTTP::FormData::Parser.new(IO::Memory.new(form_data), "aA40")
# parser.next do |field, io, meta, headers|
# field # => "field1"
# io.gets_to_end # => "field data"
Expand Down
4 changes: 2 additions & 2 deletions src/http/multipart.cr
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ module HTTP::Multipart
#
# ```
# multipart = "--aA40\r\nContent-Type: text/plain\r\n\r\nbody\r\n--aA40--"
# HTTP::Multipart.parse(MemoryIO.new(multipart), "aA40") do |headers, io|
# HTTP::Multipart.parse(IO::Memory.new(multipart), "aA40") do |headers, io|
# headers["Content-Type"] # => "text/plain"
# io.gets_to_end # => "body"
# end
Expand Down Expand Up @@ -60,7 +60,7 @@ module HTTP::Multipart

body = request.body
return nil unless body
parse(MemoryIO.new(body), boundary) { |headers, io| yield headers, io }
parse(body, boundary) { |headers, io| yield headers, io }
end

# Yields a `Multipart::Generator` to the given block, writing to *io* and
Expand Down
2 changes: 1 addition & 1 deletion src/http/multipart/generator.cr
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ module HTTP::Multipart
# ### Example
#
# ```
# io = MemoryIO.new
# io = IO::Memory.new
# multipart = HTTP::Multipart::Generator.new(io)
# multipart.body_part HTTP::Headers{"Content-Type" => "text/plain"}, "hello!"
# multipart.finish
Expand Down
4 changes: 2 additions & 2 deletions src/http/multipart/parser.cr
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ module HTTP::Multipart
#
# ```
# multipart = "--aA40\r\nContent-Type: text/plain\r\n\r\nbody\r\n--aA40--"
# parser = HTTP::Multipart::Parser.new(MemoryIO.new(multipart), "aA40")
# parser = HTTP::Multipart::Parser.new(IO::Memory.new(multipart), "aA40")
#
# while parser.has_next?
# parser.next do |headers, io|
Expand Down Expand Up @@ -40,7 +40,7 @@ module HTTP::Multipart
#
# ```
# multipart = "--aA40\r\nContent-Type: text/plain\r\n\r\nbody\r\n--aA40--"
# parser = HTTP::Multipart::Parser.new(MemoryIO.new(multipart), "aA40")
# parser = HTTP::Multipart::Parser.new(IO::Memory.new(multipart), "aA40")
# parser.next do |headers, io|
# headers["Content-Type"] # => "text/plain"
# io.gets_to_end # => "body"
Expand Down