diff --git a/lib/rack/lobster.rb b/lib/rack/lobster.rb index d91e3d996..63b220ac0 100644 --- a/lib/rack/lobster.rb +++ b/lib/rack/lobster.rb @@ -1,5 +1,8 @@ require 'zlib' +require 'rack/request' +require 'rack/response' + module Rack # Paste has a Pony, Rack has a Lobster! class Lobster diff --git a/test/spec_rack_lobster.rb b/test/spec_rack_lobster.rb new file mode 100644 index 000000000..7be267a28 --- /dev/null +++ b/test/spec_rack_lobster.rb @@ -0,0 +1,45 @@ +require 'test/spec' + +require 'rack/lobster' +require 'rack/mock' + +context "Rack::Lobster::LambdaLobster" do + specify "should be a single lambda" do + Rack::Lobster::LambdaLobster.should.be.kind_of Proc + end + + specify "should look like a lobster" do + res = Rack::MockRequest.new(Rack::Lobster::LambdaLobster).get("/") + res.should.be.ok + res.body.should.include "(,(,,(,,,(" + res.body.should.include "?flip" + end + + specify "should be flippable" do + res = Rack::MockRequest.new(Rack::Lobster::LambdaLobster).get("/?flip") + res.should.be.ok + res.body.should.include "(,,,(,,(,(" + end +end + +context "Rack::Lobster" do + specify "should look like a lobster" do + res = Rack::MockRequest.new(Rack::Lobster.new).get("/") + res.should.be.ok + res.body.should.include "(,(,,(,,,(" + res.body.should.include "?flip" + res.body.should.include "crash" + end + + specify "should be flippable" do + res = Rack::MockRequest.new(Rack::Lobster.new).get("/?flip=left") + res.should.be.ok + res.body.should.include "(,,,(,,(,(" + end + + specify "should provide crashing for testing purposes" do + lambda { + Rack::MockRequest.new(Rack::Lobster.new).get("/?flip=crash") + }.should.raise + end +end diff --git a/test/spec_rack_response.rb b/test/spec_rack_response.rb index 872201884..98031c740 100644 --- a/test/spec_rack_response.rb +++ b/test/spec_rack_response.rb @@ -101,5 +101,10 @@ str = ""; body.each { |part| str << part } str.should.be.empty header["Content-Type"].should.equal nil + + lambda { + Rack::Response.new(Object.new) + }.should.raise(TypeError). + message.should =~ /String or iterable required/ end end