@ -359,4 +359,44 @@ sub popup_confirm_cancel {
diag ( $ message ) ;
$ self - > driver - > find_element ( '//*[@id="dataConfirmCancel"]' ) - > click ( ) ;
}
sub crash_handler {
my ( $ self ) = @ _ ;
is ( "tests" , "failed" , "This test wasnt successful, check complete test logs for more info" ) ;
diag ( "-----------------------SCRIPT HAS CRASHED-----------------------" ) ;
my $ url = $ self - > driver - > get_current_url ( ) ;
my $ title = $ self - > driver - > get_title ( ) ;
my $ realtime = localtime ( ) ;
if ( $ self - > driver - > find_text ( "Sorry!" ) || $ self - > driver - > find_text ( "Oops!" ) ) {
my $ crashvar = $ self - > driver - > find_element_by_css ( '.error-container > h2:nth-child(2)' ) - > get_text ( ) ;
my $ incident = "incident number: not avalible" ;
my $ time = "time of incident: not avalible" ;
eval {
$ incident = $ self - > driver - > find_element ( '.error-details > div:nth-child(2)' , 'css' ) - > get_text ( ) ;
$ time = $ self - > driver - > find_element ( '.error-details > div:nth-child(3)' , 'css' ) - > get_text ( ) ;
} ;
diag ( "Server: $ENV{CATALYST_SERVER}" ) ;
diag ( "Url: $url" ) ;
diag ( "Tab Title: $title" ) ;
diag ( "Server error: $crashvar" ) ;
diag ( $ incident ) ;
diag ( $ time ) ;
diag ( "Perl localtime(): $realtime" ) ;
} elsif ( $ self - > driver - > find_text ( "nginx" ) ) {
my $ crashvar = $ self - > driver - > find_element_by_css ( 'body > center:nth-child(1) > h1:nth-child(1)' ) - > get_text ( ) ;
diag ( "Server: $ENV{CATALYST_SERVER}" ) ;
diag ( "Url: $url" ) ;
diag ( "Tab Title: $title" ) ;
diag ( "nginx error: $crashvar" ) ;
diag ( "Perl localtime(): $realtime" ) ;
} else {
diag ( "Could not detect Server issues. Maybe script problems?" ) ;
diag ( "If you still want to check server logs, here's some info" ) ;
diag ( "Server: $ENV{CATALYST_SERVER}" ) ;
diag ( "Url: $url" ) ;
diag ( "Tab Title: $title" ) ;
diag ( "Perl localtime(): $realtime" ) ;
}
diag ( "----------------------------------------------------------------" ) ;
}
1 ;