diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-07-18 16:22:08 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-07-18 16:22:08 -0500 |
commit | b5d66ba6e274eed251da951bb943b9ff67765290 (patch) | |
tree | 8b468f4ec6279a2d218f44d69a530c2a2476f1fc /t/path_info_escaped.t | |
parent | bc67313aa7191255f4123ae8d89f890e2f0772bc (diff) | |
download | web-request-b5d66ba6e274eed251da951bb943b9ff67765290.tar.gz web-request-b5d66ba6e274eed251da951bb943b9ff67765290.zip |
import the Plack::Request test suite
Diffstat (limited to 't/path_info_escaped.t')
-rw-r--r-- | t/path_info_escaped.t | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/t/path_info_escaped.t b/t/path_info_escaped.t new file mode 100644 index 0000000..28e712c --- /dev/null +++ b/t/path_info_escaped.t @@ -0,0 +1,33 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use Plack::Test; + +use Data::Dumper; +use HTTP::Request::Common; +use Web::Request; + +my $path_app = sub { + my $req = Web::Request->new_from_env(shift); + my $res = $req->new_response(status => 200); + $res->content_type('text/plain'); + $res->body('my ' . Dumper([ $req->uri, $req->parameters ])); + return $res->finalize; +}; + +test_psgi $path_app, sub { + my $cb = shift; + + my $res = $cb->(GET "http://localhost/foo.bar-baz?a=b"); + is_deeply eval($res->content), [ URI->new("http://localhost/foo.bar-baz?a=b"), { a => 'b' } ]; + + $res = $cb->(GET "http://localhost/foo%2fbar#ab"); + is_deeply eval($res->content), [ URI->new("http://localhost/foo/bar"), {} ], + "%2f vs / can't be distinguished - that's alright"; + + $res = $cb->(GET "http://localhost/%23foo?a=b"); + is_deeply eval($res->content), [ URI->new("http://localhost/%23foo?a=b"), { a => 'b' } ]; +}; + +done_testing; |