This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Ignore proxies in HTTP::Tiny tests
authorFather Chrysostomos <sprout@cpan.org>
Fri, 12 Dec 2014 04:38:11 +0000 (20:38 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Fri, 12 Dec 2014 04:40:51 +0000 (20:40 -0800)
I have HTTP_PROXY and http_proxy set.  HTTP::Tiny just gained
HTTP_PROXY capabilities, and all the tests fail, because they were
only masking http_proxy, not HTTP_PROXY.

Reported at https://github.com/chansen/p5-http-tiny/issues/60.

cpan/HTTP-Tiny/t/140_proxy.t
cpan/HTTP-Tiny/t/Util.pm

index a23568e..2432fed 100644 (file)
@@ -12,6 +12,7 @@ use HTTP::Tiny;
 for my $proxy (undef, "", 0){
     local $ENV{all_proxy} = undef;
     local $ENV{ALL_PROXY} = undef;
+    local $ENV{HTTP_PROXY} = $proxy;
     local $ENV{http_proxy} = $proxy;
     my $c = HTTP::Tiny->new();
     ok(!defined $c->http_proxy);
@@ -49,18 +50,19 @@ for my $proxy ("http://localhost:8080/", "http://localhost:8080"){
 }
 
 # case variations
-for my $var ( qw/http_proxy https_proxy all_proxy/ ) {
+my @vars = map +(uc, lc), qw/http_proxy https_proxy all_proxy/;
+for my $var ( @vars ) {
     my $proxy = "http://localhost:8080";
-    for my $s ( uc($var), lc($var) ) {
-        local $ENV{$s} = $proxy;
-        my $c = HTTP::Tiny->new();
-        my $m = ($s =~ /all/i) ? 'proxy' : lc($s);
-        is( $c->$m, $proxy, "set $m from $s" );
-    }
+    local @ENV{@vars};
+    local $ENV{$var} = $proxy;
+    my $c = HTTP::Tiny->new();
+    my $m = ($var =~ /all/i) ? 'proxy' : lc($var);
+    is( $c->$m, $proxy, "set $m from $var" );
 }
 
 # ignore HTTP_PROXY with REQUEST_METHOD
 {
+    local $ENV{http_proxy};
     local $ENV{HTTP_PROXY} = "http://localhost:8080";
     local $ENV{REQUEST_METHOD} = 'GET';
     my $c = HTTP::Tiny->new();
index 6698bdc..717eaa7 100644 (file)
@@ -169,8 +169,8 @@ sub sort_headers {
         *HTTP::Tiny::Handle::close = sub { 1 }; # don't close our temps
 
         # don't try to proxy in mock-mode
-        delete $ENV{http_proxy};
-        delete $ENV{$_} for map { $_, uc($_) } qw/https_proxy all_proxy/;
+        delete $ENV{$_}
+            for map { $_, uc($_) } qw/http_proxy https_proxy all_proxy/;
     }
 }