Branch Coverage

blib/lib/IO/EPP/Base.pm
Criterion Covered Total %
branch 327 682 47.9


line true false branch
140 52 40 if (not $params->{'tld'} and $params->{'dname'})
144 46 46 if ($params->{'conn'}) { }
148 0 46 unless ($code and $code == 1000)
158 92 0 if ($self->can($action)) { }
168 0 92 if $self->{'critical_error'}
172 3 89 unless $answ and ref $answ
177 92 0 wantarray ? :
219 0 8 unless $pw_length
229 8 0 if $pw =~ /\d/ and $pw =~ /[A-Z]/ and $pw =~ /[a-z]/ and $pw =~ /[!\@\$\%\*_\.:-=\+\?#,"']/
248 0 0 if (ref $root eq 'HASH') { }
0 0 elsif (ref $root eq 'ARRAY') { }
0 0 elsif ($root and ref $root eq '') { }
358 77 0 if ($test) { }
369 0 77 unless ($sock)
397 0 77 if (not $hello or $self->{'critical_error'})
399 0 0 if $self->{'critical_error'}
407 47 30 if (ref($self) =~ /IO::EPP::Base/)
408 47 0 if ($hello =~ /urn:ietf:params:xml:ns:contact-1.0/)
412 47 0 if ($hello =~ /urn:ietf:params:xml:ns:domain-1.0/)
416 47 0 if ($hello =~ /urn:ietf:params:xml:ns:host-1.0/)
422 47 0 if ($hello =~ /urn:ietf:params:xml:ns:secDNS-1.1/)
431 77 0 if ($c and $c == 1000)
432 75 2 wantarray ? :
438 0 0 wantarray ? :
458 0 77 if $params->{'log_name'}
459 0 77 if $params->{'log_fn'}
508 814 0 if $self->{'no_log'}
512 0 0 if ($self->{'log_fn'}) { }
0 0 elsif ($self->{'log_name'}) { }
518 0 0 if ($self->{'log_fh'}) { }
522 0 0 unless open $fh, '>>', $self->{'log_name'}
546 186 47 if $out_data
553 0 233 unless (eval { do { $answ = IO::EPP::Test::Base::req(@_); 1 } })
586 407 0 if $self->{'test'}
590 0 0 if ($out_data)
606 0 0 if ($out_data)
617 0 0 unless $a_out
622 0 0 unless (defined $self->{'sock'}->read($hdr, 4))
628 0 0 if $data_size < 0
630 0 0 unless $data_size
632 0 0 if $data_size > $THRESHOLD
642 0 0 if (length $buf == 0)
643 0 0 if ($wait_cnt < 3) { }
661 0 0 if $l != $data_size
666 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 } })
733 0 211 unless ($body)
734 0 0 wantarray ? :
739 211 0 if ($content and $content =~ //)
743 211 0 if ($content =~ m[]*>(.+).+/result>]s)
747 90 121 if ($code == 1001 or $code >= 2000)
752 22 68 if $reason
756 0 90 if $xcp
760 0 90 if $text
766 0 211 if ($check_queue_msgs and $content =~ //)
774 21 1245 if ($content =~ m[<[a-z]+:$k>([^<>]+)])
779 7 204 if ($content =~ m[([^<>]+)])
783 11 200 if ($content =~ m[<(host|domain):name>([^<>]+)])
793 211 0 wantarray ? :
796 0 0 wantarray ? :
822 0 77 unless $self->{'user'}
823 0 77 unless $pw
828 77 0 if ($ext)
833 0 77 if ($new_pw)
916 0 4 unless ($content and $content =~ /greeting/)
917 0 0 wantarray ? :
925 4 0 wantarray ? :
961 0 1 unless $params->{'contacts'} and scalar @{$params->{'contacts'};}
973 0 1 if $ext
992 1 0 if ($content =~ //)
996 1 0 if ($content =~ m[]*>(.+).+/result>]s)
1004 2 0 if ($a =~ m[([^<>]+)])
1009 1 0 wantarray ? :
1012 0 0 wantarray ? :
1026 8 5 unless ($params->{'int'} and $params->{'loc'})
1029 8 80 if defined $params->{$f}
1035 8 18 unless $params->{$type}
1042 16 2 if ($params->{'need_name'})
1043 0 16 if ($params->{$type}{'name'}) { }
1047 16 0 if $params->{$type}{'first_name'}
1049 0 16 if ($params->{$type}{'last_name'} and $params->{$type}{'family_name'}) { }
1050 0 0 if ($params->{$type}{'last_name'})
1051 0 0 if $name
1055 0 0 if ($params->{$type}{'patronymic'})
1056 0 0 if $name
1060 0 0 if ($params->{$type}{'family_name'})
1061 0 0 if $name
1067 0 16 if ($params->{$type}{'patronymic'})
1068 0 0 if $name
1072 16 0 if ($params->{$type}{'last_name'} or $params->{$type}{'family_name'})
1073 16 0 if $name
1080 16 0 if $name
1084 10 8 if ($params->{$type}{'org'}) { }
1096 4 14 unless ref $params->{$type}{'addr'}
1099 5 18 if $street
1103 18 0 $params->{$type}{'state'} ? :
1104 18 0 $params->{$type}{'postcode'} ? :
1121 8 5 unless ref $params->{'phone'}
1123 4 13 if $voice
1127 0 13 $params->{'fax'} ? :
1130 12 1 unless ref $params->{'email'}
1132 0 13 if $email
1136 13 0 $params->{'authinfo'} ? :
1255 0 11 unless ref $params
1257 0 11 unless $params->{'cont_id'}
1267 0 11 if ($ext)
1311 1 5 unless $postal
1315 4 1 if ($rdata =~ m[([^<>]*)])
1343 0 3 if (scalar @aa) { }
1345 0 0 if ($row =~ m[([^<>]+)])
1354 0 3 if ($rdata =~ m[\s*(.+?)]s)
1358 3 0 if ($rdata =~ //)
1359 3 0 $1 ? :
1364 9 6 if ($rdata =~ m[([^<>]+)])
1371 6 12 if ($rdata =~ m[([^<>]+)])
1451 0 4 unless $params->{'cont_id'}
1455 0 4 if ($ext)
1476 4 0 if ($content =~ /result code=['"](\d+)['"]/)
1480 4 0 if ($content =~ m[]*>(.+).+/result>]s)
1487 3 1 if ($content =~ m[(.+)]s) { }
1491 1 0 wantarray ? :
1494 0 3 if ($content =~ m[(.+)]s)
1501 0 0 if ($content =~ m[]*>(.+)]s)
1505 0 0 if $krdata =~ m[1]
1506 0 0 if $krdata =~ m[1]
1507 0 0 if $krdata =~ m[1]
1512 3 0 wantarray ? :
1515 0 0 wantarray ? :
1530 2 12 if (ref $statuses eq 'HASH') { }
12 0 elsif (ref $statuses eq 'ARRAY') { }
1538 12 2 if (not $sts{$st} or $sts{$st} eq '+') { }
1562 0 4 if (ref $statuses eq 'HASH') { }
4 0 elsif (ref $statuses eq 'ARRAY') { }
1617 0 2 unless ref $params
1619 0 2 unless $params->{'cont_id'}
1623 0 2 if ($params->{'add'})
1624 0 0 if ($params->{'add'}{'statuses'})
1629 0 2 if $add
1631 0 2 if ($params->{'rem'})
1632 0 0 if ($params->{'rem'}{'statuses'})
1637 0 2 if $rem
1639 2 0 if ($params->{'chg'})
1645 2 0 if $chg
1649 0 2 if $ext
1694 0 2 unless ref $params
1696 0 2 unless $params->{'cont_id'}
1700 0 2 if $ext
1758 0 2 unless $params->{'nss'} and scalar @{$params->{'nss'};}
1768 1 1 if $ext
1787 2 0 if ($content =~ //)
1791 2 0 if ($content =~ m[]*>(.+).+/result>]s)
1799 8 0 if ($a =~ m[([^<>]+)])
1803 2 6 if ($a =~ m[([^<>]+)])
1809 2 0 wantarray ? :
1812 0 0 wantarray ? :
1849 0 17 unless $params->{'ns'}
1852 8 9 if ($params->{'ips'} and ref $params->{'ips'} eq 'ARRAY')
1854 6 4 if ($ip =~ /^\d+\.\d+\.\d+\.\d+$/) { }
1865 9 8 if $ext
1908 0 2 if (scalar @aa) { }
1910 0 0 if ($row =~ m[([^<>]+)])
1923 5 5 if ($rdata =~ m[([^<>]+)])
1930 3 9 if ($rdata =~ m[([^<>]+)])
1999 0 6 unless $params->{'ns'}
2003 4 2 if $ext
2022 6 0 if ($content =~ /result code=['"](\d+)['"]/)
2026 6 0 if ($content =~ m[]*>(.+).+/result>]s)
2033 2 4 if ($content =~ m[(.+)]s)
2039 6 0 wantarray ? :
2090 0 16 unless $params->{'ns'}
2094 11 5 if ($params->{'add'})
2095 7 4 if ($params->{'add'}{'ips'} and ref $params->{'add'}{'ips'})
2097 5 2 if ($ip =~ /^\d+\.\d+\.\d+\.\d+$/) { }
2106 4 7 if ($params->{'add'}{'statuses'})
2111 11 5 if ($add) { }
2120 5 11 if ($params->{'rem'})
2121 3 2 if (defined $params->{'rem'}{'ips'} and ref $params->{'rem'}{'ips'})
2123 3 1 if ($ip =~ /^\d+\.\d+\.\d+\.\d+$/) { }
2132 2 3 if ($params->{'rem'}{'statuses'})
2137 5 11 if ($rem) { }
2146 1 15 if ($params->{'chg'})
2147 0 1 if ($params->{'chg'}{'new_name'})
2152 0 16 if ($chg) { }
3 13 elsif (not $params->{'no_empty_chg'}) { }
2161 13 3 if $ext
2211 0 5 unless $params->{'ns'}
2215 3 2 if $ext
2252 26 0 if ($a =~ m[([^<>]+)])
2257 8 18 if ($a =~ m[([^<>]+)])
2263 0 3 if ($rdata =~ m[claims])
2265 0 0 if ($rdata =~ m[([0-9a-z.\-]+)\n?\s*([^<>]+)])
2270 0 3 if ($rdata =~ m[]+>(.+)])
2333 0 3 unless $params->{'domains'} and scalar @{$params->{'domains'};}
2343 1 2 if $ext
2365 3 0 if ($answ =~ /
2369 3 0 if ($answ =~ m[]*>([^<>]+)])
2373 3 0 if ($answ =~ m[(.+)]s)
2378 3 0 wantarray ? :
2381 0 0 wantarray ? :
2402 14 0 if $nss
2420 21 0 if (exists $params->{'authinfo'})
2441 0 21 if ($params->{'dnssec'})
2445 0 0 if $raw->{'keytag'}
2446 0 0 if $raw->{'alg'}
2447 0 0 if $raw->{'digtype'}
2448 0 0 if $raw->{'digest'}
2450 0 0 if $ds
2453 0 0 if $dsdata
2508 0 21 unless $params->{'dname'}
2511 14 1 if ($params->{'nss'} and scalar @{$params->{'nss'};})
2518 11 10 if $params->{'reg_id'}
2521 36 27 if ($$params{$t . '_id'})
2522 36 0 unless ref $$params{$t . '_id'}
2531 0 21 if ($params->{'descr'})
2532 0 0 unless ref $params->{'descr'}
2543 9 12 if $ext
2585 0 10 if (scalar @aa) { }
2587 0 0 if ($row =~ m[([^<>]+)])
2596 3 7 if ($rdata =~ m[([^<>]+)])
2603 9 0 if ($row =~ m[([^<>]+)])
2608 0 10 if ($rdata =~ //)
2612 10 0 if ($rdata =~ //)
2616 0 10 unless ($info->{'nss'} or not $rdata =~ //)
2622 0 0 unless ($info->{'nss'} or not $rdata =~ // or scalar @{$info->{'nss'};})
2627 10 0 if ($info->{'nss'})
2632 4 6 if ($rdata =~ //)
2639 30 20 if ($rdata =~ m[([^<>]+)])
2646 30 30 if ($rdata =~ m[([^<>]+)])
2651 7 3 if ($rdata =~ m[authInfo.+([^<>]+).+authInfo]s)
2776 0 14 unless ($params->{'dname'})
2777 0 0 wantarray ? :
2780 0 14 $params->{'authinfo'} ? :
2782 0 14 $params->{'hosts'} ? :
2786 10 4 if $ext
2805 14 0 if ($answ and $answ =~ //)
2809 14 0 if ($answ =~ m[]*>(.+).+/result>]s)
2813 4 10 if ($rcode != 1000)
2814 2 2 if ($answ =~ m[(.+)]s)
2819 0 4 if ($answ =~ m[(.+)]s)
2824 4 0 wantarray ? :
2830 10 0 if ($answ =~ m[(.+)]s)
2836 7 3 if ($answ =~ m[(.+)]s)
2847 14 0 if ($descr =~ /^endDate=/)
2855 0 7 if ($rdata =~ /secDNS:infData/)
2866 0 0 if ($sdata =~ m[(.+)]s)
2884 10 0 wantarray ? :
2887 0 0 wantarray ? :
2919 0 11 unless $params->{'dname'} and $params->{'exp_date'}
2925 6 5 if $ext
3010 0 10 if ($params->{'rem'} and $params->{'rem'}{'dnssec'})
3013 0 0 if $raw->{'keytag'}
3014 0 0 if $raw->{'alg'}
3015 0 0 if $raw->{'digtype'}
3016 0 0 if $raw->{'digest'}
3018 0 0 if $ds
3021 0 0 if $rem_ds
3025 0 21 if ($params->{'add'} and $params->{'add'}{'dnssec'})
3028 0 0 if $raw->{'keytag'}
3029 0 0 if $raw->{'alg'}
3030 0 0 if $raw->{'digtype'}
3031 0 0 if $raw->{'digest'}
3033 0 0 if $ds
3036 0 0 if $add_ds
3039 0 39 if ($rem_ds or $add_ds)
3100 0 39 unless ref $params
3102 0 39 unless $params->{'dname'}
3107 21 18 if (ref $params->{'add'})
3108 9 0 if ($params->{'add'}{'nss'} and ref $params->{'add'}{'nss'} and scalar @{$params->{'add'}{'nss'};})
3115 2 61 if ($params->{'add'}{$t . '_id'})
3116 0 2 unless ref $params->{'add'}{$t . '_id'}
3124 10 11 if ($params->{'add'}{'statuses'})
3131 21 18 if ($add) { }
3139 9 30 if (ref $params->{'chg'})
3140 3 6 if ($params->{'chg'}{'reg_id'})
3146 6 3 if ($params->{'chg'}{'authinfo'})
3152 0 9 if ($params->{'chg'}{'descr'})
3153 0 0 unless ref $params->{'chg'}{'descr'}
3161 9 30 if ($chg) { }
3169 10 29 if ($params->{'rem'})
3170 6 0 if ($params->{'rem'}{'nss'} and ref $params->{'rem'}{'nss'} and scalar @{$params->{'rem'}{'nss'};})
3177 2 28 if ($params->{'rem'}{$t . '_id'})
3178 0 2 unless ref $params->{'rem'}{$t . '_id'}
3186 2 8 if ($params->{'rem'}{'statuses'})
3193 10 29 if ($rem) { }
3204 19 20 if $ext
3281 0 7 unless $params->{'dname'}
3283 0 7 unless $params->{'op'} and $params->{'op'} =~ /query|request|cancel|approve|reject|usertransfer/
3286 2 5 if (defined $params->{'authinfo'})
3292 4 3 if (defined $params->{'period'})
3302 0 7 if $ext
3321 7 0 if ($answ =~ //)
3325 7 0 if ($answ =~ m[]*>(.+).+/result>]s)
3328 0 7 if ($answ =~ m[]*>(.+).+/result>]s)
3332 0 7 if ($answ =~ m[([^<>]+)])
3340 2 5 if ($answ =~ m[(.+)]s)
3349 4 6 if ($rdata =~ m[([^<>]+)])
3356 6 6 if ($rdata =~ m[([^<>]+)])
3369 7 0 wantarray ? :
3372 0 0 wantarray ? :
3398 0 10 unless $params->{'dname'}
3402 6 4 if $ext
3436 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*
3450 0 0 if ($row =~ /host:status s="([^"]+)"/)
3458 0 0 if ($row =~ m[host:addr ip="v\d">([^<>]+)
3464 0 0 if ($rdata =~ m[([^<>]+)])
3470 0 0 if ($rdata =~ m[([^<>]+)])
3480 0 0 if ($rdata =~ m[([^<>]+)])
3497 0 0 if ($rdata =~ m[([^<>]+)])
3503 0 0 if ($rdata =~ m[([^<>]+)])
3514 0 0 if ($rdata =~ m[(.+?)]s)
3516 0 0 if ($trids =~ m[([0-9A-Za-z]+)])
3519 0 0 if ($trids =~ m[([0-9A-Za-z\-]+)])
3524 0 0 if ($rdata =~ m[([^<>]+)])
3610 1 0 if ($answ and $answ =~ //)
3614 1 0 if ($answ =~ m[]*>(.+?).+/result>]s)
3620 0 1 if ($rcode == 1301)
3621 0 0 if ($answ =~ m[(.*)]s)
3626 0 0 if ($q and $q =~ m[(.+).*(.+?)]s) { }
0 0 elsif ($q and $q =~ m[(.+)]s) { }
0 0 elsif ($q) { }
3630 0 0 if ($info{'qmsg'} =~ /\[CDATA\[/)
3646 0 0 if ($answ =~ m[(.+?)]s)
3649 0 0 if (not $rdata and $err)
3650 0 0 wantarray ? :
3656 0 0 if ($answ =~ m[(.+?)]s)
3664 1 0 wantarray ? :
3667 0 0 wantarray ? :
3683 0 0 unless $params->{'msg_id'}
3698 0 0 if ($answ and $answ =~ //)
3705 0 0 if ($answ =~ m[])
3710 0 0 wantarray ? :
3715 0 0 wantarray ? :
3730 0 77 unless $self->{'sock'}
3732 0 77 unless ($self->{'test'} or $self->{'sock'}->opened)
3751 0 77 unless ($self->{'test'})
3766 73 4 if ($self->{'sock'})
3770 0 77 if ($self->{'log_fh'})