Branch Coverage

blib/lib/IO/EPP/Base.pm
Criterion Covered Total %
branch 327 674 48.5


line true false branch
142 52 40 if (not $params->{'tld'} and $params->{'dname'})
146 46 46 if ($params->{'conn'}) { }
150 0 46 unless ($code and $code == 1000)
160 92 0 if ($self->can($action)) { }
170 0 92 if $self->{'critical_error'}
174 3 89 unless $answ and ref $answ
179 92 0 wantarray ? :
221 0 8 unless $pw_length
231 8 0 if $pw =~ /\d/ and $pw =~ /[A-Z]/ and $pw =~ /[a-z]/ and $pw =~ /[!\@\$\%\*_\.:-=\+\?#,"']/
250 0 0 if (ref $root eq 'HASH') { }
0 0 elsif (ref $root eq 'ARRAY') { }
0 0 elsif ($root and ref $root eq '') { }
360 77 0 if ($test) { }
371 0 77 unless ($sock)
399 0 77 if (not $hello or $self->{'critical_error'})
401 0 0 if $self->{'critical_error'}
409 47 30 if (ref($self) =~ /IO::EPP::Base/)
410 47 0 if ($hello =~ /urn:ietf:params:xml:ns:contact-1.0/)
414 47 0 if ($hello =~ /urn:ietf:params:xml:ns:domain-1.0/)
418 47 0 if ($hello =~ /urn:ietf:params:xml:ns:host-1.0/)
424 47 0 if ($hello =~ /urn:ietf:params:xml:ns:secDNS-1.1/)
433 77 0 if ($c and $c == 1000)
434 75 2 wantarray ? :
440 0 0 wantarray ? :
460 0 77 if $params->{'log_name'}
461 0 77 if $params->{'log_fn'}
510 814 0 if $self->{'no_log'}
514 0 0 if ($self->{'log_fn'}) { }
0 0 elsif ($self->{'log_name'}) { }
520 0 0 if ($self->{'log_fh'}) { }
524 0 0 unless open $fh, '>>', $self->{'log_name'}
548 186 47 if $out_data
555 0 233 unless (eval { do { $answ = IO::EPP::Test::Base::req(@_); 1 } })
589 407 0 if $self->{'test'}
593 0 0 if ($out_data)
609 0 0 if ($out_data)
620 0 0 unless $a_out
625 0 0 unless (defined $self->{'sock'}->read($hdr, 4))
631 0 0 if $data_size < 0
633 0 0 unless $data_size
635 0 0 if $data_size > $THRESHOLD
645 0 0 if (length $buf == 0)
646 0 0 if ($wait_cnt < 3) { }
664 0 0 if $l != $data_size
669 0 0 unless (eval { do { local $SIG{'ALRM'} = sub { die "connection timeout\n"; } ; alarm 120; if ($out_data) { utf8::downgrade($out_data); my $len = length($out_data) + 4; my $pk_data_size = pack('N', $len); my $a_out = $self->{'sock'}->print($pk_data_size . $out_data); $self->{'sock'}->flush; die 'data write failed' unless $a_out; } ; my $hdr; unless (defined $self->{'sock'}->read($hdr, 4)) { die "closed connection\n"; } ; my $data_size = (unpack('N', $hdr) || 0) - 4; die "closed connection\n" if $data_size < 0; die "data length is zero\n" unless $data_size; die "data length is $data_size which exceeds $THRESHOLD\n" if $data_size > $THRESHOLD; my $buf; my $wait_cnt = 0; while (length $in_data < $data_size) { $buf = ''; $self->{'sock'}->read($buf, $data_size - length($in_data)); if (length $buf == 0) { if ($wait_cnt < 3) { ++$wait_cnt; sleep 1; redo; } else { last; } ; } ; $in_data .= $buf; } ; my $l = length $in_data; die "data read failed: readed $l, need $data_size\ndata: $in_data" if $l != $data_size; alarm 0; 1 } })
736 0 211 unless ($body)
737 0 0 wantarray ? :
742 211 0 if ($content and $content =~ //)
746 211 0 if ($content =~ m[]*>(.+).+/result>]s)
750 90 121 if ($code == 1001 or $code >= 2000)
755 22 68 if $reason
759 0 90 if $xcp
763 0 90 if $text
769 0 211 if ($check_queue_msgs and $content =~ //)
777 21 1245 if ($content =~ m[<[a-z]+:$k>([^<>]+)])
782 7 204 if ($content =~ m[([^<>]+)])
786 11 200 if ($content =~ m[<(host|domain):name>([^<>]+)])
796 211 0 wantarray ? :
799 0 0 wantarray ? :
825 0 77 unless $self->{'user'}
826 0 77 unless $pw
831 77 0 if ($ext)
836 0 77 if ($new_pw)
919 0 4 unless ($content and $content =~ /greeting/)
920 0 0 wantarray ? :
928 4 0 wantarray ? :
964 0 1 unless $params->{'contacts'} and scalar @{$params->{'contacts'};}
976 0 1 if $ext
995 1 0 if ($content =~ //)
999 1 0 if ($content =~ m[]*>(.+).+/result>]s)
1007 2 0 if ($a =~ m[([^<>]+)])
1012 1 0 wantarray ? :
1015 0 0 wantarray ? :
1029 8 5 unless ($params->{'int'} and $params->{'loc'})
1032 8 80 if defined $params->{$f}
1038 8 18 unless $params->{$type}
1045 16 2 if ($params->{'need_name'})
1046 0 16 if ($params->{$type}{'name'}) { }
1050 16 0 if $params->{$type}{'first_name'}
1052 0 16 if ($params->{$type}{'last_name'} and $params->{$type}{'family_name'}) { }
1053 0 0 if ($params->{$type}{'last_name'})
1054 0 0 if $name
1058 0 0 if ($params->{$type}{'patronymic'})
1059 0 0 if $name
1063 0 0 if ($params->{$type}{'family_name'})
1064 0 0 if $name
1070 0 16 if ($params->{$type}{'patronymic'})
1071 0 0 if $name
1075 16 0 if ($params->{$type}{'last_name'} or $params->{$type}{'family_name'})
1076 16 0 if $name
1083 16 0 if $name
1087 10 8 if ($params->{$type}{'org'}) { }
1099 4 14 unless ref $params->{$type}{'addr'}
1102 5 18 if $street
1106 18 0 $params->{$type}{'state'} ? :
1107 18 0 $params->{$type}{'postcode'} ? :
1124 8 5 unless ref $params->{'phone'}
1126 4 13 if $voice
1130 0 13 $params->{'fax'} ? :
1133 12 1 unless ref $params->{'email'}
1135 0 13 if $email
1139 13 0 $params->{'authinfo'} ? :
1258 0 11 unless ref $params
1260 0 11 unless $params->{'cont_id'}
1270 0 11 if ($ext)
1314 1 5 unless $postal
1318 4 1 if ($rdata =~ m[([^<>]*)])
1346 0 3 if (scalar @aa) { }
1348 0 0 if ($row =~ m[([^<>]+)])
1357 0 3 if ($rdata =~ m[\s*(.+?)]s)
1361 3 0 if ($rdata =~ //)
1362 3 0 $1 ? :
1367 9 6 if ($rdata =~ m[([^<>]+)])
1374 6 12 if ($rdata =~ m[([^<>]+)])
1454 0 4 unless $params->{'cont_id'}
1458 0 4 if ($ext)
1479 4 0 if ($content =~ /result code=['"](\d+)['"]/)
1483 4 0 if ($content =~ m[]*>(.+).+/result>]s)
1490 3 1 if ($content =~ m[(.+)]s) { }
1494 1 0 wantarray ? :
1497 0 3 if ($content =~ m[(.+)]s)
1503 3 0 wantarray ? :
1506 0 0 wantarray ? :
1521 2 12 if (ref $statuses eq 'HASH') { }
12 0 elsif (ref $statuses eq 'ARRAY') { }
1529 12 2 if (not $sts{$st} or $sts{$st} eq '+') { }
1553 0 4 if (ref $statuses eq 'HASH') { }
4 0 elsif (ref $statuses eq 'ARRAY') { }
1608 0 2 unless ref $params
1610 0 2 unless $params->{'cont_id'}
1614 0 2 if ($params->{'add'})
1615 0 0 if ($params->{'add'}{'statuses'})
1620 0 2 if $add
1622 0 2 if ($params->{'rem'})
1623 0 0 if ($params->{'rem'}{'statuses'})
1628 0 2 if $rem
1630 2 0 if ($params->{'chg'})
1636 2 0 if $chg
1640 0 2 if $ext
1685 0 2 unless ref $params
1687 0 2 unless $params->{'cont_id'}
1691 0 2 if $ext
1749 0 2 unless $params->{'nss'} and scalar @{$params->{'nss'};}
1759 1 1 if $ext
1778 2 0 if ($content =~ //)
1782 2 0 if ($content =~ m[]*>(.+).+/result>]s)
1790 8 0 if ($a =~ m[([^<>]+)])
1794 2 6 if ($a =~ m[([^<>]+)])
1800 2 0 wantarray ? :
1803 0 0 wantarray ? :
1840 0 17 unless $params->{'ns'}
1843 8 9 if ($params->{'ips'} and ref $params->{'ips'} eq 'ARRAY')
1845 6 4 if ($ip =~ /^\d+\.\d+\.\d+\.\d+$/) { }
1856 9 8 if $ext
1899 0 2 if (scalar @aa) { }
1901 0 0 if ($row =~ m[([^<>]+)])
1914 5 5 if ($rdata =~ m[([^<>]+)])
1921 3 9 if ($rdata =~ m[([^<>]+)])
1990 0 6 unless $params->{'ns'}
1994 4 2 if $ext
2013 6 0 if ($content =~ /result code=['"](\d+)['"]/)
2017 6 0 if ($content =~ m[]*>(.+).+/result>]s)
2024 2 4 if ($content =~ m[(.+)]s)
2030 6 0 wantarray ? :
2081 0 16 unless $params->{'ns'}
2085 11 5 if ($params->{'add'})
2086 7 4 if ($params->{'add'}{'ips'} and ref $params->{'add'}{'ips'})
2088 5 2 if ($ip =~ /^\d+\.\d+\.\d+\.\d+$/) { }
2097 4 7 if ($params->{'add'}{'statuses'})
2102 11 5 if ($add) { }
2111 5 11 if ($params->{'rem'})
2112 3 2 if (defined $params->{'rem'}{'ips'} and ref $params->{'rem'}{'ips'})
2114 3 1 if ($ip =~ /^\d+\.\d+\.\d+\.\d+$/) { }
2123 2 3 if ($params->{'rem'}{'statuses'})
2128 5 11 if ($rem) { }
2137 1 15 if ($params->{'chg'})
2138 0 1 if ($params->{'chg'}{'new_name'})
2143 0 16 if ($chg) { }
3 13 elsif (not $params->{'no_empty_chg'}) { }
2152 13 3 if $ext
2202 0 5 unless $params->{'ns'}
2206 3 2 if $ext
2243 26 0 if ($a =~ m[([^<>]+)])
2248 9 17 if ($a =~ m[([^<>]+)])
2254 0 3 if ($rdata =~ m[claims])
2256 0 0 if ($rdata =~ m[([0-9a-z.\-]+)\n?\s*([^<>]+)])
2261 0 3 if ($rdata =~ m[]+>(.+)])
2324 0 3 unless $params->{'domains'} and scalar @{$params->{'domains'};}
2334 1 2 if $ext
2355 3 0 if ($answ and $answ =~ /
2358 3 0 if ($answ =~ m[]*>([^<>]+)])
2362 3 0 if ($answ =~ m[(.+)]s)
2365 3 0 wantarray ? :
2369 0 0 wantarray ? :
2390 14 0 if $nss
2408 21 0 if (exists $params->{'authinfo'})
2429 0 21 if ($params->{'dnssec'})
2433 0 0 if $raw->{'keytag'}
2434 0 0 if $raw->{'alg'}
2435 0 0 if $raw->{'digtype'}
2436 0 0 if $raw->{'digest'}
2438 0 0 if $ds
2441 0 0 if $dsdata
2496 0 21 unless $params->{'dname'}
2499 14 1 if ($params->{'nss'} and scalar @{$params->{'nss'};})
2506 11 10 if $params->{'reg_id'}
2509 36 27 if ($$params{$t . '_id'})
2510 36 0 unless ref $$params{$t . '_id'}
2519 0 21 if ($params->{'descr'})
2520 0 0 unless ref $params->{'descr'}
2531 9 12 if $ext
2573 0 10 if (scalar @aa) { }
2575 0 0 if ($row =~ m[([^<>]+)])
2584 3 7 if ($rdata =~ m[([^<>]+)])
2591 9 0 if ($row =~ m[([^<>]+)])
2596 0 10 if ($rdata =~ //)
2600 10 0 if ($rdata =~ //)
2604 0 10 unless ($info->{'nss'} or not $rdata =~ //)
2610 0 0 unless ($info->{'nss'} or not $rdata =~ // or scalar @{$info->{'nss'};})
2615 10 0 if ($info->{'nss'})
2620 4 6 if ($rdata =~ //)
2627 30 20 if ($rdata =~ m[([^<>]+)])
2634 30 30 if ($rdata =~ m[([^<>]+)])
2639 7 3 if ($rdata =~ m[authInfo.+([^<>]+).+authInfo]s)
2764 0 14 unless ($params->{'dname'})
2765 0 0 wantarray ? :
2768 0 14 $params->{'authinfo'} ? :
2770 0 14 $params->{'hosts'} ? :
2774 10 4 if $ext
2793 14 0 if ($answ and $answ =~ //)
2797 14 0 if ($answ =~ m[]*>(.+).+/result>]s)
2801 4 10 if ($rcode != 1000)
2802 2 2 if ($answ =~ m[(.+)]s)
2807 0 4 if ($answ =~ m[(.+)]s)
2812 4 0 wantarray ? :
2818 10 0 if ($answ =~ m[(.+)]s)
2824 7 3 if ($answ =~ m[(.+)]s)
2835 14 0 if ($descr =~ /^endDate=/)
2843 0 7 if ($rdata =~ /secDNS:infData/)
2854 0 0 if ($sdata =~ m[(.+)]s)
2872 10 0 wantarray ? :
2875 0 0 wantarray ? :
2907 0 11 unless $params->{'dname'} and $params->{'exp_date'}
2913 6 5 if $ext
2998 0 10 if ($params->{'rem'} and $params->{'rem'}{'dnssec'})
3001 0 0 if $raw->{'keytag'}
3002 0 0 if $raw->{'alg'}
3003 0 0 if $raw->{'digtype'}
3004 0 0 if $raw->{'digest'}
3006 0 0 if $ds
3009 0 0 if $rem_ds
3013 0 21 if ($params->{'add'} and $params->{'add'}{'dnssec'})
3016 0 0 if $raw->{'keytag'}
3017 0 0 if $raw->{'alg'}
3018 0 0 if $raw->{'digtype'}
3019 0 0 if $raw->{'digest'}
3021 0 0 if $ds
3024 0 0 if $add_ds
3027 0 39 if ($rem_ds or $add_ds)
3088 0 39 unless ref $params
3090 0 39 unless $params->{'dname'}
3095 21 18 if (ref $params->{'add'})
3096 9 0 if ($params->{'add'}{'nss'} and ref $params->{'add'}{'nss'} and scalar @{$params->{'add'}{'nss'};})
3103 2 61 if ($params->{'add'}{$t . '_id'})
3104 0 2 unless ref $params->{'add'}{$t . '_id'}
3112 10 11 if ($params->{'add'}{'statuses'})
3119 21 18 if ($add) { }
3127 9 30 if (ref $params->{'chg'})
3128 3 6 if ($params->{'chg'}{'reg_id'})
3134 6 3 if ($params->{'chg'}{'authinfo'})
3140 0 9 if ($params->{'chg'}{'descr'})
3141 0 0 unless ref $params->{'chg'}{'descr'}
3149 9 30 if ($chg) { }
3157 10 29 if ($params->{'rem'})
3158 6 0 if ($params->{'rem'}{'nss'} and ref $params->{'rem'}{'nss'} and scalar @{$params->{'rem'}{'nss'};})
3165 2 28 if ($params->{'rem'}{$t . '_id'})
3166 0 2 unless ref $params->{'rem'}{$t . '_id'}
3174 2 8 if ($params->{'rem'}{'statuses'})
3181 10 29 if ($rem) { }
3192 19 20 if $ext
3269 0 7 unless $params->{'dname'}
3271 0 7 unless $params->{'op'} and $params->{'op'} =~ /query|request|cancel|approve|reject|usertransfer/
3274 2 5 if (defined $params->{'authinfo'})
3280 4 3 if (defined $params->{'period'})
3290 0 7 if $ext
3309 7 0 if ($answ =~ //)
3313 7 0 if ($answ =~ m[]*>(.+).+/result>]s)
3316 0 7 if ($answ =~ m[]*>(.+).+/result>]s)
3320 0 7 if ($answ =~ m[([^<>]+)])
3328 2 5 if ($answ =~ m[(.+)]s)
3337 4 6 if ($rdata =~ m[([^<>]+)])
3344 6 6 if ($rdata =~ m[([^<>]+)])
3357 7 0 wantarray ? :
3360 0 0 wantarray ? :
3386 0 10 unless $params->{'dname'}
3390 6 4 if $ext
3424 0 0 if ($rdata =~ /^\s*
0 0 elsif ($rdata =~ /\s*
0 0 elsif ($rdata =~ /^\s*
0 0 elsif ($rdata =~ /^\s*
0 0 elsif ($rdata =~ /^\s*
0 0 elsif ($rdata =~ /^\s*
3438 0 0 if ($row =~ /host:status s="([^"]+)"/)
3446 0 0 if ($row =~ m[host:addr ip="v\d">([^<>]+)
3452 0 0 if ($rdata =~ m[([^<>]+)])
3458 0 0 if ($rdata =~ m[([^<>]+)])
3468 0 0 if ($rdata =~ m[([^<>]+)])
3485 0 0 if ($rdata =~ m[([^<>]+)])
3491 0 0 if ($rdata =~ m[([^<>]+)])
3502 0 0 if ($rdata =~ m[(.+?)]s)
3504 0 0 if ($trids =~ m[([0-9A-Za-z]+)])
3507 0 0 if ($trids =~ m[([0-9A-Za-z\-]+)])
3512 0 0 if ($rdata =~ m[([^<>]+)])
3598 1 0 if ($answ and $answ =~ //)
3602 1 0 if ($answ =~ m[]*>(.+?).+/result>]s)
3608 0 1 if ($rcode == 1301)
3609 0 0 if ($answ =~ m[(.*)]s)
3614 0 0 if ($q and $q =~ m[(.+).*(.+?)]s) { }
0 0 elsif ($q and $q =~ m[(.+)]s) { }
0 0 elsif ($q) { }
3618 0 0 if ($info{'qmsg'} =~ /\[CDATA\[/)
3634 0 0 if ($answ =~ m[(.+?)]s)
3637 0 0 if (not $rdata and $err)
3638 0 0 wantarray ? :
3644 0 0 if ($answ =~ m[(.+?)]s)
3652 1 0 wantarray ? :
3655 0 0 wantarray ? :
3671 0 0 unless $params->{'msg_id'}
3686 0 0 if ($answ and $answ =~ //)
3693 0 0 if ($answ =~ m[])
3698 0 0 wantarray ? :
3703 0 0 wantarray ? :
3718 0 77 unless $self->{'sock'}
3720 0 77 unless ($self->{'test'} or $self->{'sock'}->opened)
3739 0 77 unless ($self->{'test'})
3754 73 4 if ($self->{'sock'})
3758 0 77 if ($self->{'log_fh'})