X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=tests%2FHTTPServer.pm;h=065ea1ed87250c0c6769132ad53f721c4f58ddca;hb=12218d353bb16f44a631a6d96fc4c882c70fd8eb;hp=58b1a363b4fc0570ad45858f5fde20c80cb6d747;hpb=a00b834bb39fd2982ebb247d52e576208d4934ab;p=wget diff --git a/tests/HTTPServer.pm b/tests/HTTPServer.pm index 58b1a363..065ea1ed 100644 --- a/tests/HTTPServer.pm +++ b/tests/HTTPServer.pm @@ -123,7 +123,7 @@ sub send_response { next; } # fill in content - $content = $self->_substitute_port($content); + $content = $self->_substitute_port($content) if defined $content; $resp->content($content); print STDERR "HTTP::Response with content: \n", $resp->as_string if $log; } @@ -218,11 +218,24 @@ sub verify_request_headers { return 1 unless exists $url_rec->{'request_headers'}; for my $hdrname (keys %{$url_rec->{'request_headers'}}) { - my $rhdr = $req->header ($hdrname); + my $must_not_match; my $ehdr = $url_rec->{'request_headers'}{$hdrname}; - unless (defined $rhdr && $rhdr =~ $ehdr) { - print STDERR "\n*** Mismatch on $hdrname: $rhdr =~ $ehdr\n"; - return undef; + if ($must_not_match = ($hdrname =~ /^!(\w+)/)) { + $hdrname = $1; + } + my $rhdr = $req->header ($hdrname); + if ($must_not_match) { + if (defined $rhdr && $rhdr =~ $ehdr) { + $rhdr = '' unless defined $rhdr; + print STDERR "\n*** Match forbidden $hdrname: $rhdr =~ $ehdr\n"; + return undef; + } + } else { + unless (defined $rhdr && $rhdr =~ $ehdr) { + $rhdr = '' unless defined $rhdr; + print STDERR "\n*** Mismatch on $hdrname: $rhdr =~ $ehdr\n"; + return undef; + } } }