#!perl use strict; use warnings; use Test::More 0.88; use HTTP::Tiny; # blank slate for testing delete $ENV{no_proxy}; { my $c = HTTP::Tiny->new(); is_deeply( $c->no_proxy, [], "no no_proxy given" ); } my @cases = ( #<<< No perltidy { no_proxy => [ undef, [], ], expect => [], }, { no_proxy => [ "localhost", ["localhost"], ], expect => ["localhost"], }, { no_proxy => [ "localhost,example.com", "localhost, example.com", [qw/localhost example.com/] ], expect => [ "localhost", "example.com" ], }, #>>> ); for my $c (@cases) { for my $no_proxy ( @{ $c->{no_proxy} } ) { my $label = !defined $no_proxy ? 'undef' : ref $no_proxy ? "[qw/@$no_proxy/]" : "'$no_proxy'"; # Can't test environment with array ref (ENV stringifies in new perls) if ( ref $no_proxy ) { my $ht = HTTP::Tiny->new( no_proxy => $no_proxy ); is_deeply( $ht->no_proxy, $c->{expect}, "new(no_proxy => $label)" ); } else { { local $ENV{no_proxy} = $no_proxy; my $ht = HTTP::Tiny->new(); is_deeply( $ht->no_proxy, $c->{expect}, "\$ENV{no_proxy} = $label" ); } { local $ENV{no_proxy} = "Shouldnt,see,this"; my $ht = HTTP::Tiny->new( no_proxy => $no_proxy ); is_deeply( $ht->no_proxy, $c->{expect}, "new(no_proxy => $label) versus other \$ENV{no_proxy}" ); } } } } done_testing();