stas 2004/05/25 01:25:44
Modified: t/apr .cvsignore t/response/TestAPI rutil.pm Added: t/response/TestAPR uri.pm Log: write APR::URI tests, move some of the existing sub-tests out of TestAPI/rutil.pm since they belong to TestAPR/uri.pm Revision Changes Path 1.1 modperl-2.0/t/response/TestAPR/uri.pm Index: uri.pm =================================================================== package TestAPR::uri; # Testing APR::URI (more tests in TestAPI::uri) # XXX: this test could use more sub-tests to test various flags to # unparse, use strict; use warnings FATAL => 'all'; use Apache::Test; use Apache::TestUtil; use APR::URI (); use Apache::Const -compile => 'OK'; use APR::Const -compile => qw(URI_UNP_REVEALPASSWORD); my %default_ports = ( ftp => 21, gopher => 70, http => 80, https => 443, nntp => 119, prospero => 191, snews => 563, wais => 210, ); my %url = ( scheme => ["http", "ftp" ], user => ["user", "log" ], password => ["password", "pass" ], hostname => ["www.example.com", "ftp.example.com"], port => [8000, 21 ], path => ["/path/file.pl", "/pub" ], query => ["query", undef ], fragment => ["fragment", undef ], ); my @keys_urls = qw(scheme user password hostname port path query fragment); my @keys_hostinfo = qw(user password hostname port); sub handler { my $r = shift; plan $r, tests => 22; ### parse ### my $url0 = sprintf "%s://%s:[EMAIL PROTECTED]:%d%s?%s#%s", map { $url{$_}[0] } @keys_urls; # warn "URL: $url\n"; my $hostinfo0 = sprintf "%s:[EMAIL PROTECTED]:%d", map { $url{$_}[0] } @keys_hostinfo; my $parsed = APR::URI->parse($r->pool, $url0); ok $parsed; ok $parsed->isa('APR::URI'); for my $method (keys %url) { no strict 'refs'; ok t_cmp($url{$method}[0], $parsed->$method, $method); } ok t_cmp($hostinfo0, $parsed->hostinfo, "hostinfo"); for my $method (keys %url) { no strict 'refs'; $parsed->$method($url{$method}[1]); t_debug("$method: $url{$method}[1] => " . $parsed->$method); } ### unparse ### my $url_unparsed = $parsed->unparse; # hostinfo is unaffected, since it's simply a field in the parsed # record, and it's populated when parse is called, but when # individual fields used to compose it are updated, it doesn't get # updated: so we see the old value here ok t_cmp($hostinfo0, $parsed->hostinfo, "hostinfo"); # - since the port is 21 which is the default for ftp, unparse # omits it # - if no flags are passed to unparse, APR::URI_UNP_OMITPASSWORD # is passed by default -- it hides the password my $url1 = sprintf "%s://[EMAIL PROTECTED]", map { $url{$_}[1] } grep !/^(password|port)$/, @keys_urls; ok t_cmp($url1, $url_unparsed, "unparsed url"); # this time the password should appear my $url_unparsed = $parsed->unparse(APR::URI_UNP_REVEALPASSWORD); my $url2 = sprintf "%s://%s:[EMAIL PROTECTED]", map { $url{$_}[1] } grep !/^port$/, @keys_urls; ok t_cmp($url2, $url_unparsed, "unparsed url"); ### port_of_scheme ### while(my($scheme, $port) = each %default_ports) { my $apr_port = APR::URI::port_of_scheme($scheme); ok t_cmp($port, $apr_port, "scheme: $scheme"); } Apache::OK; } 1; 1.14 +1 -0 modperl-2.0/t/apr/.cvsignore Index: .cvsignore =================================================================== RCS file: /home/cvs/modperl-2.0/t/apr/.cvsignore,v retrieving revision 1.13 retrieving revision 1.14 diff -u -u -r1.13 -r1.14 --- .cvsignore 21 May 2004 19:25:46 -0000 1.13 +++ .cvsignore 25 May 2004 08:25:44 -0000 1.14 @@ -15,5 +15,6 @@ string.t table.t threadmutex.t +uri.t util.t uuid.t 1.12 +1 -19 modperl-2.0/t/response/TestAPI/rutil.pm Index: rutil.pm =================================================================== RCS file: /home/cvs/modperl-2.0/t/response/TestAPI/rutil.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -u -u -r1.11 -r1.12 --- rutil.pm 19 Jan 2004 19:19:45 -0000 1.11 +++ rutil.pm 25 May 2004 08:25:44 -0000 1.12 @@ -6,26 +6,14 @@ use Apache::Test; use Apache::TestUtil; -use APR::URI (); use Apache::RequestUtil (); use Apache::Const -compile => 'OK'; -my %default_ports = ( - http => 80, - https => 443, - ftp => 21, - gopher => 70, - wais => 210, - nntp => 119, - snews => 563, - prospero => 191, -); - sub handler { my $r = shift; - plan $r, tests => 15; + plan $r, tests => 7; ok $r->default_type; @@ -36,12 +24,6 @@ ok $r->get_server_port; ok $r->get_limit_req_body || 1; - - while(my($scheme, $port) = each %default_ports) { - my $apr_port = APR::URI::port_of_scheme($scheme); - #$r->puts("$scheme => expect: $port, got: $apr_port\n"); - ok $apr_port == $port; - } ok $r->is_initial_req;