This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
4b122616a9f7f1568335dcae95b65e22d251934d
[perl5.git] / cpan / HTTP-Tiny / t / 140_proxy.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use File::Basename;
7 use Test::More 0.88;
8
9 use HTTP::Tiny;
10
11 # Require a true value
12 for my $proxy (undef, "", 0){
13     local $ENV{all_proxy} = undef;
14     local $ENV{ALL_PROXY} = undef;
15     local $ENV{http_proxy} = $proxy;
16     my $c = HTTP::Tiny->new();
17     ok(!defined $c->http_proxy);
18 }
19
20 # trailing / is optional
21 for my $proxy ("http://localhost:8080/", "http://localhost:8080"){
22     local $ENV{http_proxy} = $proxy;
23     my $c = HTTP::Tiny->new();
24     is($c->http_proxy, $proxy);
25 }
26
27 # http_proxy must be http://<host>:<port> format
28 {
29     local $ENV{http_proxy} = "localhost:8080";
30     eval {
31         my $c = HTTP::Tiny->new();
32     };
33     like($@, qr{http_proxy URL must be in format http\[s\]://\[auth\@\]<host>:<port>/});
34 }
35
36 # Explicitly disable proxy
37 {
38     local $ENV{all_proxy} = "http://localhost:8080";
39     local $ENV{http_proxy} = "http://localhost:8080";
40     local $ENV{https_proxy} = "http://localhost:8080";
41     my $c = HTTP::Tiny->new(
42         proxy => undef,
43         http_proxy => undef,
44         https_proxy => undef,
45     );
46     ok(!defined $c->proxy, "proxy => undef disables ENV proxy");
47     ok(!defined $c->http_proxy, "http_proxy => undef disables ENV proxy");
48     ok(!defined $c->https_proxy, "https_proxy => undef disables ENV proxy");
49 }
50
51 done_testing();