X-Git-Url: http://git.jankratochvil.net/?p=www.jankratochvil.net.git;a=blobdiff_plain;f=html-test.pl;h=043ad5d86477db4f342bf9aa1c83d1d653acc35a;hp=ce68887164b4e79f161f5a286cbb6dab4faa9491;hb=5164bff415005d8ca2c11816abcf5b29be21640f;hpb=f40e75167a045d189c3027a0b112a20c635d3e48 diff --git a/html-test.pl b/html-test.pl index ce68887..043ad5d 100755 --- a/html-test.pl +++ b/html-test.pl @@ -36,47 +36,50 @@ $|=1; my $UA=LWP::UserAgent->new(); $UA->env_proxy(); -my $first_seen=!$first_pattern; -My::ModPerlPm->list("sub"=>sub { - my($p)=@_; - require $p->{"file"}; - eval 'require '.$p->{"module"}.'; 1;' - or cluck "Error loading module ".$p->{"module"}.": $@"; - my $HTML_TEST=eval '$'.$p->{"module"}.'::HTML_TEST;'; - return if defined $HTML_TEST && !$HTML_TEST; - my $validate=$opt_validate; - $validate=0 if $HTML_TEST && $HTML_TEST eq "download"; - my $HTML_TEST_QUERY_STRING=eval '$'.$p->{"module"}.'::HTML_TEST_QUERY_STRING;'; - for my $query_string ("ARRAY" eq ref $HTML_TEST_QUERY_STRING ? @$HTML_TEST_QUERY_STRING : $HTML_TEST_QUERY_STRING) { - my $url=$URL_BASE.$p->{"url"}.(!$query_string ? "" : "?".$query_string); - my $url_matches=1 if $first_pattern && $url=~/$first_pattern/o; - die "Pattern amiguous on: $url\n" if $first_seen && $url_matches; - if (!$first_seen && !($first_seen=($url=~/$first_pattern/o))) { - print "_"; - next; +my $first_seen; +for (0,($opt_validate ? 1 : ())) { + $first_seen=!$first_pattern; + My::ModPerlPm->list("sub"=>sub { + my($p)=@_; + require $p->{"file"}; + eval 'require '.$p->{"module"}.'; 1;' + or cluck "Error loading module ".$p->{"module"}.": $@"; + my $HTML_TEST=eval '$'.$p->{"module"}.'::HTML_TEST;'; + return if defined $HTML_TEST && !$HTML_TEST; + my $validate=$opt_validate; + $validate=0 if $HTML_TEST && $HTML_TEST eq "download"; + my $HTML_TEST_QUERY_STRING=eval '$'.$p->{"module"}.'::HTML_TEST_QUERY_STRING;'; + for my $query_string ("ARRAY" eq ref $HTML_TEST_QUERY_STRING ? @$HTML_TEST_QUERY_STRING : $HTML_TEST_QUERY_STRING) { + my $url=$URL_BASE.$p->{"url"}.(!$query_string ? "" : "?".$query_string); + my $url_matches=1 if $first_pattern && $url=~/$first_pattern/o; + die "Pattern amiguous on: $url\n" if $first_seen && $url_matches; + if (!$first_seen && !($first_seen=($url=~/$first_pattern/o))) { + print "_"; + next; + } + print "."; + if ($validate) { + $url=($opt_local ? $URL_VALIDATOR_BASE_LOCAL : $URL_VALIDATOR_BASE).uri_escape($url); + } + my $request=HTTP::Request->new("GET",$url); + $request->header("Cache-control"=>"no-cache"); + # Do not: ...->request(...); + # as it would follow our tested 403 redirect responses. + my $response=$UA->simple_request($request); + my $HTML_TEST_RC=eval '$'.$p->{"module"}.'::HTML_TEST_RC;'; + $HTML_TEST_RC=HTTP::Status::RC_OK() if !defined $HTML_TEST_RC; + if ($response->code()==$HTML_TEST_RC) { + next if !$validate; + local $_=$response->content(); + my $valid=/\bclass="valid"\s*>/; + my $invalid=/\bclass="invalid"\s*>/; + die "\nUnexpected response: $url\n" if $valid==$invalid; + next if $valid; + die "\n$url\n"; + } + die "\n$url: ".$response->code()."\n"; } - print "."; - if ($validate) { - $url=($opt_local ? $URL_VALIDATOR_BASE_LOCAL : $URL_VALIDATOR_BASE).uri_escape($url); - } - my $request=HTTP::Request->new("GET",$url); - $request->header("Cache-control"=>"no-cache"); - # Do not: ...->request(...); - # as it would follow our tested 403 redirect responses. - my $response=$UA->simple_request($request); - my $HTML_TEST_RC=eval '$'.$p->{"module"}.'::HTML_TEST_RC;'; - $HTML_TEST_RC=HTTP::Status::RC_OK() if !defined $HTML_TEST_RC; - if ($response->code()==$HTML_TEST_RC) { - next if !$validate; - local $_=$response->content(); - my $valid=/\bclass="valid"\s*>/; - my $invalid=/\bclass="invalid"\s*>/; - die "\nUnexpected response: $url\n" if $valid==$invalid; - next if $valid; - die "\n$url\n"; - } - die "\n$url: ".$response->code()."\n"; - } - }) for (0,($opt_validate ? 1 : ())); + }); + } print "\n"; die "Nothing seen for: $first_pattern\n" if !$first_seen;