1use strict; 2use Test::More tests => 8; 3 4use Net::SSL; 5 6# ensure no proxification takes place 7$ENV{NO_PROXY} = '127.0.0.1'; 8 9my $sock; 10eval { 11 $sock = Net::SSL->new( 12 PeerAddr => '127.0.0.1', 13 PeerPort => 443, 14 Timeout => 3, 15 ); 16}; 17 18my $test_name = 'Net::SSL->new'; 19if ($@) { 20 my $fail = $@; 21 if ($fail =~ /\AConnect failed: connect: \b/i) { 22 pass( "$test_name - expected failure" ); 23 } 24 elsif ($fail =~ /\ASSL negotiation failed:/i) { 25 pass( "$test_name - expected failure (443 in use)" ); 26 } 27 else { 28 fail( "$test_name" ); 29 diag( $fail ); 30 } 31} 32else { 33 ok( defined $sock, $test_name ); 34} 35 36SKIP: { 37 skip( "nothing listening on localhost:443", 7 ) 38 unless defined $sock; 39 40 is( ref($sock), 'Net::SSL', 'blessed socket' ); 41 42 eval { $sock->accept }; 43 like ($@, qr(\Aaccept not implemented for Net::SSL sockets), 44 'accept() not implemented' 45 ); 46 47 eval { $sock->getc }; 48 like ($@, qr(\Agetc not implemented for Net::SSL sockets), 49 'getc() not implemented' 50 ); 51 52 eval { $sock->ungetc }; 53 like ($@, qr(\Aungetc not implemented for Net::SSL sockets), 54 'ungetc() not implemented' 55 ); 56 57 eval { $sock->getlines }; 58 like ($@, qr(\Agetlines not implemented for Net::SSL sockets), 59 'getlines() not implemented' 60 ); 61 62 is( $sock->blocking, 1, 'socket is blocking' ); 63 $sock->blocking(0); 64 is( $sock->blocking, 0, 'socket is now non-blocking' ); 65} 66