File: 04-Timeouts.t

package info (click to toggle)
libwebinject-perl 1.86-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 428 kB
  • ctags: 197
  • sloc: perl: 4,101; xml: 257; makefile: 7
file content (125 lines) | stat: -rw-r--r-- 3,823 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#!/usr/bin/env perl

##################################################

use strict;
use Test::More;
use Data::Dumper;
use FindBin qw($Bin);
use lib 't';


if($ENV{TEST_AUTHOR}) {
    eval "use HTTP::Server::Simple::CGI";
    if($@) {
        plan skip_all => 'HTTP::Server::Simple::CGI required';
    }
    else{
        plan tests => 14;
    }
}
else{
    plan skip_all => 'Author test. Set $ENV{TEST_AUTHOR} to a true value to run.';
}


use_ok('Webinject');

my $webinject = Webinject->new();
isa_ok($webinject, "Webinject", 'Object is a Webinject');

require TestWebServer;
TestWebServer->start_webserver();

##################################################
# start our test cases
test_case_01();
test_case_02();
test_case_03();



##################################################
# SUBs
##################################################

##################################################
# Test 01
sub test_case_01 {
    my $webinject = Webinject->new();
    my $case = {
        'url' => 'http://localhost:58080/sleep/2',
    };
    my $expected = {
        'id'          => 1,
        'passedcount' => 1,
        'failedcount' => 0,
        'url'         => 'http://localhost:58080/sleep/2',
        'iswarning'   => 0,
        'iscritical'  => 0,
    };
    my $result = $webinject->_run_test_case($case);
    is($result->{'latency'} > 2, 1, '01 - timeouts - latency');
    delete $result->{'messages'};
    delete $result->{'latency'};
    delete $result->{'response'};
    delete $result->{'request'};
    is_deeply($result, $expected, '01 - timeouts - result') or BAIL_OUT("expected: \n".Dumper($expected)."\nresult: \n".Dumper($result));
    is($webinject->{'result'}->{'iscritical'}, 0, '01 - timeouts - iscritical');
    is($webinject->{'result'}->{'iswarning'}, 0, '01 - timeouts - iswarning');
}

##################################################
# Test 02
sub test_case_02 {
    my $webinject = Webinject->new();
    my $case = {
        'url' => 'http://localhost:58080/sleep/2',
        'warning'     => 1,
    };
    my $expected = {
        'id'          => 1,
        'passedcount' => 1,
        'failedcount' => 1,
        'url'         => 'http://localhost:58080/sleep/2',
        'warning'     => 1,
        'iswarning'   => 1,
        'iscritical'  => 0,
    };
    my $result = $webinject->_run_test_case($case);
    is($result->{'latency'} > 2, 1, '02 - timeouts - latency');
    delete $result->{'messages'};
    delete $result->{'latency'};
    delete $result->{'response'};
    delete $result->{'request'};
    is_deeply($result, $expected, '02 - timeouts - result') or BAIL_OUT("expected: \n".Dumper($expected)."\nresult: \n".Dumper($result));
    is($webinject->{'result'}->{'iscritical'}, 0, '02 - timeouts - iscritical');
    is($webinject->{'result'}->{'iswarning'}, 1, '02 - timeouts - iswarning');
}


##################################################
# Test 03
sub test_case_03 {
    my $webinject = Webinject->new('timeout' => 1);
    my $case = {
        'url' => 'http://localhost:58080/sleep/5',
    };
    my $expected = {
        'id'          => 1,
        'passedcount' => 0,
        'failedcount' => 1,
        'url'         => 'http://localhost:58080/sleep/5',
        'iswarning'   => 0,
        'iscritical'  => 1,
    };
    my $result = $webinject->_run_test_case($case);
    is($result->{'latency'} > 1, 1, '03 - timeouts - latency');
    delete $result->{'messages'};
    delete $result->{'latency'};
    delete $result->{'response'};
    delete $result->{'request'};
    is_deeply($result, $expected, 'timeouts - result') or diag("expected: \n".Dumper($expected)."\nresult: \n".Dumper($result));
    is($webinject->{'result'}->{'iscritical'}, 1, '03 - timeouts - iscritical');
    is($webinject->{'result'}->{'iswarning'}, 0, '03 - timeouts - iswarning');
}