NAME

Test::HTTP::Response - Perl testing module for HTTP responses

SYNOPSIS

use Test::HTTP::Response;

...

status_matches($response, 200, 'Response is ok');

status_ok($response);

status_redirect($response);

status_not_found($response);

status_error($response);

cookie_matches($response, { key => 'sessionid' },'sessionid exists ok'); # check matching cookie found in response

my $cookies = extract_cookies($response);

VERSION

0.05

DESCRIPTION

Simple Perl testing module for HTTP responses and cookies, inspired by Test::HTTP and designed to work nicely with web framework test tools such as Plack::Test and Catalyst::Test

FUNCTIONS

status_matches

Test that HTTP status of the response is (like) expected value

status_matches($response, 200, 'Response is ok');

Pass when status matches, fail when differs.

Takes 3 arguments : response object, expected HTTP status code (or quoted-regexp pattern), comment.

status_ok

status_ok($response);

Takes list of arguments : response object, optional comment

Pass if response has status of 'OK', i.e. 200

status_redirect

status_redirect($response);

Takes list of arguments : response object, optional comment

Pass if response has status of 'REDIRECT', i.e. 301

status_not_found

status_not_found($response);

Takes list of arguments : response object, optional comment

Pass if response has status of 'NOT FOUND', i.e. 404

status_error

status_error($response);

Takes list of arguments : response object, optional comment

Pass if response has status of 'OK', i.e. 500

header_matches

header_matches($response, 'Content-type', 'Text/HTML', 'correct content type');

headers_match

Test a list of headers at once

headers_match $response, {
  'Content-Type'   => /text/,
  'Content-Length' => sub { $_ > 10 },
  'Cache-Control'  => 'private, no-cache, no-store',
};

all_headers_match

Test all headers in a response. Fails if any header field is left untested.

all_headers_match $response, {
  'Content-Type'   => /text/,
  'Content-Length' => sub { $_ > 10 },
  'Cache-Control'  => 'private, no-cache, no-store',
};

Test that a cookie with matching attributes is in the response headers

cookie_matches($response, { key => 'sessionid' },'sessionid exists ok'); # check matching cookie found in response

Passes when match found, fails if no matches found.

Takes a list of arguments filename/response, hashref of attributes and strings or quoted-regexps to match, and optional test comment/name

extract_cookies

Get cookies from response as a nested hash

my $cookies = extract_cookies($response);

Takes 1 argument : HTTP::Response object

Returns hashref

SEE ALSO

HTTP::Request

LWP

Plack::Test

Catalyst::Test

Test::HTML::Form

Test::HTTP

AUTHOR

Aaron Trevena, <teejay@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by Aaron Trevena

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.