README file for the HTTP::Proxy tests
* Helper modules
HTTP::Proxy can test itself without using the network,
thanks to the HTTP::Daemon module.
But since I want to test the proxy against "real" servers,
I also need to test it with an internet connection.
localhost tests work as follows:
- a HTTP::Daemon is created and forked, that will serve
a certain number of simple requests
- a HTTP::Proxy is created and forked
- a LWP::UserAgent is created and connects to the proxy
- each of those process can run its own tests independantly,
thanks to Test::More
The t/Utils.pm files (use t::Utils in some test files) exports
several functions:
- server_start()
starts a new HTTP::Daemon
- server_next( [ \&answer ] )
returns the next response from the server (accepts a coderef)
- fork_proxy( $proxy, [ \&end ] )
fork a proxy server passed as an argument, with an optionnel
subroutine to run at the end
- web_ok()
test if the actual WWW is available for testing
- bare_request( $url, $headers, $proxy )
send a simple request through the proxy without LWP::UA
return a string containing the full response
* Test categories
The tests are prefixed with a number, which indicates several categories:
0x - Basic tests
t/00basic.t - use HTTP::Proxy works
t/01pod.t - the POD is correct
t/05new.t - the HTTP::Proxy constructor
1x - Minimal functionnality tests
t/10init.t - the proxy initialisation
t/11log.t - the log() and logmask() methods
t/15accessors.t - the proxy accessors
t/17fstack.t - the internal HTTP::Proxy::FilterStack object
2x - Network protocols test
t/20dummy.t - tests against a dummy web server
t/20keepalive.t - test the keep-alive connections
t/22http.t - test actual HTTP servers
t/22transparent.t - test transparent proxying
t/23connect.t - test CONNECT to a ssh server
t/23https.t - test CONNECT for SSL
3x - (Reserved for future use)
4x - Filter-related functions
t/40push_filters.t - the push_filter method
5x - Internal header filters
t/50hopbyhop.t - check hop-by-hop headers removal
t/50standard.t - check other headers removal
t/50via.t - check the Via: headers
t/51simple.t - HTTP::Proxy::HeaderFilter::simple
t/51simple2.t - HTTP::Proxy::HeaderFilter::simple with a real proxy
6x - Internal body filters
t/61simple.t - HTTP::Proxy::BodyFilter::simple
t/61simple2.t - HTTP::Proxy::BodyFilter::simple with a real proxy
t/64htmltext.t - HTTP::Proxy::BodyFilter::htmltext
t/64lines.t - HTTP::Proxy::BodyFilter::lines
t/64tags.t - HTTP::Proxy::BodyFilter::tags
t/66htmlparser.t - HTTP::Proxy::BodyFilter::htmlparser
7x - Complex filter chains
t/71rot13.t - a simple ROT13 filter set
8x - (Reserved for future use)
9x - miscellaneous tests
t/90diveintomark.t - test the proxy against a lot of status codes