]> sjero.net Git - wget/blobdiff - tests/Test-proxied-https-auth.px
Automated merge.
[wget] / tests / Test-proxied-https-auth.px
index b732d553bab3f626a5d5e0e4260bfa88d21340e6..a2efe5ebcb5b90a82d1733c00965c4bf177127ff 100755 (executable)
@@ -3,9 +3,22 @@ use warnings;
 use strict;
 
 use WgetTest;  # For $WGETPATH.
+
+# Have we even built an HTTPS-supporting Wget?
+{
+    my @version_lines = `${WgetTest::WGETPATH} --version`;
+    unless (grep /\+(openssl|gnutls)/, @version_lines) {
+        print "Not running test: Wget under test doesn't support HTTPS.\n";
+        exit 0;
+    }
+}
+
 use HTTP::Daemon;
 use HTTP::Request;
-use IO::Socket::SSL 'debug4';
+use IO::Socket::SSL;
+
+my $SOCKET = HTTP::Daemon->new (LocalAddr => 'localhost',
+    ReuseAddr => 1) or die "Cannot create server!!!";
 
 sub get_request {
     my $conn = shift;
@@ -26,9 +39,7 @@ sub get_request {
 sub do_server {
     my $alrm = alarm 10;
 
-    my $s = HTTP::Daemon->new (LocalAddr => 'localhost',
-        LocalPort => '8080',
-        ReuseAddr => 1) or die "Cannot create server!!!";
+    my $s = $SOCKET;
     my $conn;
     my $rqst;
     my $rspn;
@@ -68,6 +79,10 @@ sub do_server {
                 'Content-Type' => 'text/plain',
                 'Connection' => 'close',
                 ], "foobarbaz\n");
+            $rspn->protocol('HTTP/1.0');
+            print "=====\n";
+            print $rspn->as_string;
+            print "\n=====\n";
             print $conn $rspn->as_string;
         }
         $conn->close;
@@ -94,9 +109,11 @@ my $cmdline = $WgetTest::WGETPATH . " --user=fiddle-dee-dee"
     . " --password=Dodgson -e https_proxy=localhost:{{port}}"
     . " --no-check-certificate"
     . " https://no.such.domain/needs-auth.txt";
+$cmdline =~ s/{{port}}/$SOCKET->sockport()/e;
 
 my $code = system($cmdline);
+system ('rm -f needs-auth.txt');
 
 warn "Got code: $code\n" if $code;
 kill ('TERM', $pid);
-exit $code;
+exit ($code >> 8);