Handle POST request, and some refactors

This commit is contained in:
Ary Borenszweig 2014-07-30 19:58:48 -03:00
parent e601730a0c
commit fc4f648c1a
6 changed files with 39 additions and 14 deletions

1
spec/all_spec.cr Normal file
View file

@ -0,0 +1 @@
require "./*"

View file

@ -0,0 +1,13 @@
require "spec_helper"
describe "Frank::Handler" do
it "routes" do
frank = Frank::Handler.new
frank.add_route "GET", "/" do
"hello"
end
request = HTTP::Request.new("GET", "/")
response = frank.call(request)
response.body.should eq("hello")
end
end

View file

@ -2,15 +2,20 @@ require "spec_helper"
describe "Route" do
describe "match" do
it "doesn't match" do
route = Route.new("/foo/bar", nil)
route.match(nil, "/foo/baz".split("/")).should be_nil
it "doesn't match because of route" do
route = Route.new("GET", "/foo/bar") { "" }
route.match("GET", "/foo/baz".split("/")).should be_nil
end
it "doesn't match because of method" do
route = Route.new("GET", "/foo/bar") { "" }
route.match("POST", "/foo/bar".split("/")).should be_nil
end
it "matches" do
route = Route.new("/foo/:one/path/:two", nil)
request = route.match(nil, "/foo/uno/path/dos".split("/"))
request.not_nil!.params.should eq({"one" => "uno", "two" => "dos"})
route = Route.new("GET", "/foo/:one/path/:two") { "" }
params = route.match("GET", "/foo/uno/path/dos".split("/"))
params.should eq({"one" => "uno", "two" => "dos"})
end
end
end