[prev in list] [next in list] [prev in thread] [next in thread] 

List:       apache-modperl-cvs
Subject:    cvs commit: modperl-2.0/t/response/TestAPR uri.pm
From:       stas () apache ! org
Date:       2004-05-28 4:07:17
Message-ID: 20040528040717.9510.qmail () minotaur ! apache ! org
[Download RAW message or body]

stas        2004/05/27 21:07:17

  Modified:    t/response/TestAPR uri.pm
  Log:
  test all available unparse flags and their combinations
  
  Revision  Changes    Path
  1.4       +67 -10    modperl-2.0/t/response/TestAPR/uri.pm
  
  Index: uri.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/t/response/TestAPR/uri.pm,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -u -r1.3 -r1.4
  --- uri.pm	28 May 2004 01:36:40 -0000	1.3
  +++ uri.pm	28 May 2004 04:07:17 -0000	1.4
  @@ -2,9 +2,6 @@
   
   # 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';
   
  @@ -14,7 +11,11 @@
   use APR::URI ();
   
   use Apache::Const -compile => 'OK';
  -use APR::Const    -compile => qw(URI_UNP_REVEALPASSWORD);
  +
  +use APR::Const -compile => qw(URI_UNP_OMITSITEPART URI_UNP_OMITUSER
  +                              URI_UNP_REVEALPASSWORD URI_UNP_OMITQUERY
  +                              URI_UNP_OMITPASSWORD URI_UNP_OMITPATHINFO
  +                             );
   
   my %default_ports = (
       ftp      => 21,
  @@ -45,7 +46,7 @@
   sub handler {
       my $r = shift;
   
  -    plan $r, tests => 22;
  +    plan $r, tests => 27;
   
       ### parse ###
       my $url0 = sprintf "%s://%s:%s\@%s:%d%s?%s#%s",
  @@ -88,12 +89,68 @@
           map { $url{$_}[1] } grep !/^(password|port)$/, @keys_urls;
       ok t_cmp($url1, $url_unparsed, "unparsed url");
   
  -    # this time the password should appear
  +    # various unparse flags #
       {
  -        my $url_unparsed = $parsed->unparse(APR::URI_UNP_REVEALPASSWORD);
  -        my $url2 = sprintf "%s://%s:%s\@%s%s",
  -            map { $url{$_}[1] } grep !/^port$/, @keys_urls;
  -        ok t_cmp($url2, $url_unparsed, "unparsed url");
  +        # restore the query/fragment fields first
  +        my $query_new = "my_query";
  +        my $fragment_new = "my_fragment";
  +        $parsed->query($query_new);
  +        $parsed->fragment($fragment_new);
  +        local $url{query}[1] = $query_new;
  +        local $url{fragment}[1] = $fragment_new;
  +
  +        # omit the site part
  +        {
  +            my $url_unparsed = $parsed->unparse(APR::URI_UNP_OMITSITEPART);
  +            my $url2 = sprintf "%s?%s#%s",
  +                map { $url{$_}[1] } qw(path query fragment);
  +            ok t_cmp($url2, $url_unparsed, "unparsed url: omit site");
  +        }
  +
  +        # this time the password should appear as XXXXXXXX
  +        {
  +            local $url{password}[1] = "XXXXXXXX";
  +            my $url_unparsed = $parsed->unparse(0);
  +            my $url2 = sprintf "%s://%s:%s\@%s%s?%s#%s",
  +                map { $url{$_}[1] } grep !/^port$/, @keys_urls;
  +            ok t_cmp($url2, $url_unparsed, "unparsed url:reveal passwd");
  +        }
  +
  +        # this time the user and the password should appear
  +        {
  +            my $url_unparsed = $parsed->unparse(APR::URI_UNP_REVEALPASSWORD);
  +            my $url2 = sprintf "%s://%s:%s\@%s%s?%s#%s",
  +                map { $url{$_}[1] } grep !/^port$/, @keys_urls;
  +            ok t_cmp($url2, $url_unparsed, "unparsed url:reveal passwd");
  +        }
  +
  +        # omit the user part / show password
  +        {
  +            my $url_unparsed = $parsed->unparse(
  +                APR::URI_UNP_OMITUSER|APR::URI_UNP_REVEALPASSWORD);
  +            my $url2 = sprintf "%s://:%s\@%s%s?%s#%s",
  +                map { $url{$_}[1] } grep !/^(port|user)$/, @keys_urls;
  +            ok t_cmp($url2, $url_unparsed, "unparsed url:  omit user");
  +        }
  +
  +        # omit the path, query and fragment strings
  +        {
  +            my $url_unparsed = $parsed->unparse(
  +                APR::URI_UNP_OMITPATHINFO|APR::URI_UNP_REVEALPASSWORD);
  +            my $url2 = sprintf "%s://%s:%s\@%s", map { $url{$_}[1] }
  +                grep !/^(port|path|query|fragment)$/, @keys_urls;
  +            ok t_cmp($url2, $url_unparsed, "unparsed url: omit path");
  +        }
  +
  +        # omit the query and fragment strings
  +        {
  +            $parsed->query("my_query");
  +            my $url_unparsed = $parsed->unparse(
  +                APR::URI_UNP_OMITQUERY|APR::URI_UNP_OMITPASSWORD);
  +            my $url2 = sprintf "%s://%s\@%s%s", map { $url{$_}[1] }
  +                grep !/^(password|port|query|fragment)$/, @keys_urls;
  +            ok t_cmp($url2, $url_unparsed, "unparsed url: omit query");
  +        }
       }
   
       ### port_of_scheme ###
  
  
  
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic