Provided by: libtest-fake-httpd-perl_0.07-1_all
NAME
Test::Fake::HTTPD - a fake HTTP server
SYNOPSIS
DSL-style use Test::Fake::HTTPD; my $httpd = run_http_server { my $req = shift; # ... # 1. HTTP::Response ok return $http_response; # 2. Plack::Response ok return $plack_response; # 3. PSGI response ok return [ 200, [ 'Content-Type' => 'text/plain' ], [ 'Hello World' ] ]; }; printf "You can connect to your server at %s.\n", $httpd->host_port; # or printf "You can connect to your server at 127.0.0.1:%d.\n", $httpd->port; # access to fake HTTP server use LWP::UserAgent; my $res = LWP::UserAgent->new->get($httpd->endpoint); # "http://127.0.0.1:{port}" # Stop http server automatically at destruction time. OO-style use Test::Fake::HTTPD; my $httpd = Test::Fake::HTTPD->new( timeout => 5, ); $httpd->run(sub { my $req = shift; # ... [ 200, [ 'Content-Type', 'text/plain' ], [ 'Hello World' ] ]; }); # Stop http server automatically at destruction time.
DESCRIPTION
Test::Fake::HTTPD is a fake HTTP server module for testing.
FUNCTIONS
• "run_http_server { ... }" Starts HTTP server and returns the guard instance. my $httpd = run_http_server { my $req = shift; # ... return $http_or_plack_or_psgi_res; }; # can use $httpd guard object, same as OO-style LWP::UserAgent->new->get($httpd->endpoint); • "run_https_server { ... }" Starts HTTPS server and returns the guard instance. If you use this method, you MUST install HTTP::Daemon::SSL. my $httpd = run_https_server { my $req = shift; # ... return $http_or_plack_or_psgi_res; }; # can use $httpd guard object, same as OO-style my $ua = LWP::UserAgent->new( ssl_opts => { SSL_verify_mode => 0, verify_hostname => 0, }, ); $ua->get($httpd->endpoint);
METHODS
• "new( %args )" Returns a new instance. my $httpd = Test::Fake::HTTPD->new(%args); %args are: • "timeout" timeout value (default: 5) • "listen" queue size for listen (default: 5) • "port" local bind port number (default: auto detection) my $httpd = Test::Fake::HTTPD->new( timeout => 10, listen => 10, port => 3333, ); • "run( sub { ... } )" Starts this HTTP server. $httpd->run(sub { ... }); • "scheme" Returns a scheme of running, "http" or "https". my $scheme = $httpd->scheme; • "port" Returns a port number of running. my $port = $httpd->port; • "host_port" Returns a URI host_port of running. ("127.0.0.1:{port}") my $host_port = $httpd->host_port; • "endpoint" Returns an endpoint URI of running. ("http://127.0.0.1:{port}" URI object) use LWP::UserAgent; my $res = LWP::UserAgent->new->get($httpd->endpoint); my $url = $httpd->endpoint; $url->path('/foo/bar'); my $res = LWP::UserAgent->new->get($url);
AUTHOR
NAKAGAWA Masaki <masaki@cpan.org>
THANKS TO
xaicron
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
Test::TCP, HTTP::Daemon, HTTP::Daemon::SSL, HTTP::Message::PSGI