X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=t%2Faggregate%2Funit_core_uri_with.t;h=1e13a9bed32fa915fd070d4eb3928e223a9038ea;hp=5e86318274e09b1097a84f01c47c6b04b86aad99;hb=10542b5178b2fa036e0658111523ea68a7a04437;hpb=7c1c4dc69062bd372f6611c5a2d3e054cf777d79 diff --git a/t/aggregate/unit_core_uri_with.t b/t/aggregate/unit_core_uri_with.t index 5e86318..1e13a9b 100644 --- a/t/aggregate/unit_core_uri_with.t +++ b/t/aggregate/unit_core_uri_with.t @@ -3,22 +3,33 @@ use warnings; use Test::More; use URI; +use URI::QueryParam; use Catalyst::Log; use_ok('Catalyst::Request'); +sub cmp_uri { + my ($got, $exp_txt, $comment) = @_; + $comment ||= ''; + my $exp = URI->new($exp_txt); + foreach my $thing (qw/ scheme host path /) { + is $exp->$thing, $got->$thing, "$comment: $thing"; + } + is_deeply $got->query_form_hash, $exp->query_form_hash, "$comment: query"; +} + my $request = Catalyst::Request->new( { _log => Catalyst::Log->new, uri => URI->new('http://127.0.0.1/foo/bar/baz') } ); -is( +cmp_uri( $request->uri_with({}), 'http://127.0.0.1/foo/bar/baz', 'URI for absolute path' ); -is( +cmp_uri( $request->uri_with({ foo => 'bar' }), 'http://127.0.0.1/foo/bar/baz?foo=bar', 'URI adds param' @@ -28,43 +39,44 @@ my $request2 = Catalyst::Request->new( { _log => Catalyst::Log->new, uri => URI->new('http://127.0.0.1/foo/bar/baz?bar=gorch') } ); -is( + +cmp_uri( $request2->uri_with({}), 'http://127.0.0.1/foo/bar/baz?bar=gorch', 'URI retains param' ); -is( +cmp_uri( $request2->uri_with({ me => 'awesome' }), 'http://127.0.0.1/foo/bar/baz?bar=gorch&me=awesome', 'URI retains param and adds new' ); -is( +cmp_uri( $request2->uri_with({ bar => undef }), 'http://127.0.0.1/foo/bar/baz', 'URI loses param when explicitly undef' ); -is( +cmp_uri( $request2->uri_with({ bar => 'snort' }), 'http://127.0.0.1/foo/bar/baz?bar=snort', 'URI changes param' ); -is( +cmp_uri( $request2->uri_with({ bar => [ 'snort', 'ewok' ] }), 'http://127.0.0.1/foo/bar/baz?bar=snort&bar=ewok', 'overwrite mode URI appends arrayref param' ); -is( +cmp_uri( $request2->uri_with({ bar => 'snort' }, { mode => 'append' }), 'http://127.0.0.1/foo/bar/baz?bar=gorch&bar=snort', 'append mode URI appends param' ); -is( +cmp_uri( $request2->uri_with({ bar => [ 'snort', 'ewok' ] }, { mode => 'append' }), 'http://127.0.0.1/foo/bar/baz?bar=gorch&bar=snort&bar=ewok', 'append mode URI appends arrayref param'