Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Test::Nginx::LWP(3)   User Contributed Perl Documentation  Test::Nginx::LWP(3)

NAME
       Test::Nginx::LWP	- LWP-backed test scaffold for the Nginx C modules

SYNOPSIS
	   use Test::Nginx::LWP;

	   plan	tests => $Test::Nginx::LWP::RepeatEach * 2 * blocks();

	   run_tests();

	   __DATA__

	   === TEST 1: sanity
	   --- config
	       location	/echo {
		   echo_before_body hello;
		   echo	world;
	       }
	   --- request
	       GET /echo
	   --- response_body
	   hello
	   world
	   --- error_code: 200

	   === TEST 2: set Server
	   --- config
	       location	/foo {
		   echo	hi;
		   more_set_headers 'Server: Foo';
	       }
	   --- request
	       GET /foo
	   --- response_headers
	   Server: Foo
	   --- response_body
	   hi

	   === TEST 3: clear Server
	   --- config
	       location	/foo {
		   echo	hi;
		   more_clear_headers 'Server: ';
	       }
	   --- request
	       GET /foo
	   --- response_headers_like
	   Server: nginx.*
	   --- response_body
	   hi

	   === TEST 4: set request header at client side and rewrite it
	   --- config
	       location	/foo {
		   more_set_input_headers 'X-Foo: howdy';
		   echo	$http_x_foo;
	       }
	   --- request
	       GET /foo
	   --- request_headers
	   X-Foo: blah
	   --- response_headers
	   X-Foo:
	   --- response_body
	   howdy

	   === TEST 3: rewrite content length
	   --- config
	       location	/bar {
		   more_set_input_headers 'Content-Length: 2048';
		   echo_read_request_body;
		   echo_request_body;
	       }
	   --- request eval
	   "POST /bar\n" .
	   "a" x 4096
	   --- response_body eval
	   "a" x 2048

	   === TEST 4: timer without explicit reset
	   --- config
	       location	/timer {
		   echo_sleep 0.03;
		   echo	"elapsed $echo_timer_elapsed sec.";
	       }
	   --- request
	       GET /timer
	   --- response_body_like
	   ^elapsed 0\.0(2[6-9]|3[0-6])	sec\.$

	   === TEST 5: small buf (using	2-byte buf)
	   --- config
	       chunkin on;
	       location	/main {
		   client_body_buffer_size    2;
		   echo	"body:";
		   echo	$echo_request_body;
		   echo_request_body;
	       }
	   --- request
	   POST	/main
	   --- start_chunk_delay: 0.01
	   --- middle_chunk_delay: 0.01
	   --- chunked_body eval
	   ["hello", "world"]
	   --- error_code: 200
	   --- response_body eval
	   "body:

	   helloworld"

DESCRIPTION
       This module provides a test scaffold based on LWP::UserAgent for
       automated testing in Nginx C module development.

       This class inherits from	Test::Base, thus bringing all its declarative
       power to	the Nginx C module testing practices.

       You need	to terminate or	kill any Nginx processes before	running	the
       test suite if you have changed the Nginx	server binary. Normally	it's
       as simple as

	 killall nginx
	 PATH=/path/to/your/nginx-with-memc-module:$PATH prove -r t

       This module will	create a temporary server root under t/servroot/ of
       the current working directory and starts	and uses the nginx executable
       in the PATH environment.

       You will	often want to look into	t/servroot/logs/error.log when things
       go wrong	;)

Sections supported
       The following sections are supported:

       config
       http_config
       request
       request_headers
       more_headers
       response_body
       response_body_like
       response_headers
       response_headers_like
       error_code
       chunked_body
       middle_chunk_delay
       start_chunk_delay

Samples
       You'll find live	samples	in the following Nginx 3rd-party modules:

       ngx_echo
	   <http://wiki.nginx.org/NginxHttpEchoModule>

       ngx_headers_more
	   <http://wiki.nginx.org/NginxHttpHeadersMoreModule>

       ngx_chunkin
	   <http://wiki.nginx.org/NginxHttpChunkinModule>

       ngx_memc
	   <http://wiki.nginx.org/NginxHttpMemcModule>

SOURCE REPOSITORY
       This module has a Git repository	on Github, which has access for	all.

	   http://github.com/agentzh/test-nginx

       If you want a commit bit, feel free to drop me a	line.

AUTHOR
       agentzh (c<< ao|aeY) "<agentzh@gmail.com>"

COPYRIGHT & LICENSE
       Copyright (c) 2009-2016,	agentzh	"<agentzh@gmail.com>".

       This module is licensed under the terms of the BSD license.

       Redistribution and use in source	and binary forms, with or without
       modification, are permitted provided that the following conditions are
       met:

       o   Redistributions of source code must retain the above	copyright
	   notice, this	list of	conditions and the following disclaimer.

       o   Redistributions in binary form must reproduce the above copyright
	   notice, this	list of	conditions and the following disclaimer	in the
	   documentation and/or	other materials	provided with the
	   distribution.

       o   Neither the name of the authors nor the names of its	contributors
	   may be used to endorse or promote products derived from this
	   software without specific prior written permission.

       THIS SOFTWARE IS	PROVIDED BY THE	COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
       IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
       TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
       PARTICULAR PURPOSE ARE DISCLAIMED. IN NO	EVENT SHALL THE	COPYRIGHT
       HOLDER OR CONTRIBUTORS BE LIABLE	FOR ANY	DIRECT,	INDIRECT, INCIDENTAL,
       SPECIAL,	EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,	BUT NOT
       LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;	LOSS OF	USE,
       DATA, OR	PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
       THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT	LIABILITY, OR TORT
       (INCLUDING NEGLIGENCE OR	OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
       OF THIS SOFTWARE, EVEN IF ADVISED OF THE	POSSIBILITY OF SUCH DAMAGE.

SEE ALSO
       Test::Nginx::Socket, Test::Base.

perl v5.24.1			  2017-04-09		   Test::Nginx::LWP(3)

NAME | SYNOPSIS | DESCRIPTION | Sections supported | Samples | SOURCE REPOSITORY | AUTHOR | COPYRIGHT & LICENSE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Test::Nginx::LWP&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help