#!/usr/bin/perl use Test::More; use LWP::ConsoleLogger::Easy qw( debug_ua ); use IO::Socket::SSL; use LWP::UserAgent; my $DEBUG = 1; my $num_tests = 0; my %pages = ( # some name for the page to hit 'google' => [ # the url to hit 'https://www.google.com', # regex obj to validate returned content qr/Google Search/, ], ); my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 1 }); if( $DEBUG == 1 ){ LWP::ConsoleLogger::Easy::debug_ua($ua, 6); $IO::Socket::SSL::DEBUG = 3; } my ($response, $content, $aurl, $regex_validator, $apage); foreach $apage (keys %pages){ ($aurl, $regex_validator) = @{$pages{$apage}}; $response = $ua->get($aurl); ok(defined($response), "$apage hit : $aurl"); $num_tests++; ok($response->is_success==1, "$apage hit got success status code : $aurl") or BAIL_OUT("$apage : failed to hit : $aurl"); $num_tests++; $content = $response->decoded_content; ok($content =~ $regex_validator, "$apage validated OK") or print "$apage : failed to validate the following content:\n".$content."\nend content.\n"; $num_tests++; } # END done_testing($num_tests); #### DEBUG: .../IO/Socket/SSL.pm:2853: new ctx 93957261363856 DEBUG: .../IO/Socket/SSL.pm:692: socket not yet connected DEBUG: .../IO/Socket/SSL.pm:694: socket connected DEBUG: .../IO/Socket/SSL.pm:717: ssl handshake not started DEBUG: .../IO/Socket/SSL.pm:750: using SNI with hostname www.google.com DEBUG: .../IO/Socket/SSL.pm:785: request OCSP stapling DEBUG: .../IO/Socket/SSL.pm:806: set socket to non-blocking to enforce timeout=180 DEBUG: .../IO/Socket/SSL.pm:819: call Net::SSLeay::connect DEBUG: .../IO/Socket/SSL.pm:822: done Net::SSLeay::connect -> -1 DEBUG: .../IO/Socket/SSL.pm:832: ssl handshake in progress DEBUG: .../IO/Socket/SSL.pm:842: waiting for fd to become ready: SSL wants a read first DEBUG: .../IO/Socket/SSL.pm:862: socket ready, retrying connect DEBUG: .../IO/Socket/SSL.pm:819: call Net::SSLeay::connect DEBUG: .../IO/Socket/SSL.pm:2707: ok=1 [2] /OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign/OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign #### DEBUG: .../IO/Socket/SSL.pm:832: ssl handshake in progress DEBUG: .../IO/Socket/SSL.pm:842: waiting for fd to become ready: SSL wants a read first DEBUG: .../IO/Socket/SSL.pm:862: socket ready, retrying connect DEBUG: .../IO/Socket/SSL.pm:819: call Net::SSLeay::connect DEBUG: .../IO/Socket/SSL.pm:822: done Net::SSLeay::connect -> -1