This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update HTTP-Tiny to CPAN version 0.033
[perl5.git] / cpan / HTTP-Tiny / t / 141_no_proxy.t
1 #!perl
2 use strict;
3 use warnings;
4
5 use Test::More 0.88;
6
7 use HTTP::Tiny;
8
9 # blank slate for testing
10 delete $ENV{no_proxy};
11
12 {
13     my $c = HTTP::Tiny->new();
14     is_deeply( $c->no_proxy, [], "no no_proxy given" );
15 }
16
17 my @cases = (
18     #<<< No perltidy
19     {
20         no_proxy => [
21             undef,
22             [],
23         ],
24         expect => [],
25     },
26     {
27         no_proxy => [
28             "localhost",
29             ["localhost"],
30         ],
31         expect => ["localhost"],
32     },
33     {
34         no_proxy => [
35             "localhost,example.com",
36             "localhost, example.com",
37             [qw/localhost example.com/]
38         ],
39         expect   => [ "localhost", "example.com" ],
40     },
41     #>>>
42 );
43
44 for my $c (@cases) {
45     for my $no_proxy ( @{ $c->{no_proxy} } ) {
46         my $label =
47            !defined $no_proxy ? 'undef'
48           : ref $no_proxy     ? "[qw/@$no_proxy/]"
49           :                     "'$no_proxy'";
50
51         # Can't test environment with array ref (ENV stringifies in new perls)
52         if ( ref $no_proxy ) {
53             my $ht = HTTP::Tiny->new( no_proxy => $no_proxy );
54             is_deeply( $ht->no_proxy, $c->{expect}, "new(no_proxy => $label)" );
55         }
56         else {
57             {
58                 local $ENV{no_proxy} = $no_proxy;
59                 my $ht = HTTP::Tiny->new();
60                 is_deeply( $ht->no_proxy, $c->{expect}, "\$ENV{no_proxy} = $label" );
61             }
62             {
63                 local $ENV{no_proxy} = "Shouldnt,see,this";
64                 my $ht = HTTP::Tiny->new( no_proxy => $no_proxy );
65                 is_deeply( $ht->no_proxy, $c->{expect},
66                     "new(no_proxy => $label) versus other \$ENV{no_proxy}" );
67             }
68         }
69     }
70 }
71
72 done_testing();