Branch Coverage

blib/lib/IO/EPP/Base.pm
Criterion Covered Total %
branch 326 680 47.9


line true false branch
128 52 40 if (not $params->{'tld'} and $params->{'dname'})
132 46 46 if ($params->{'conn'}) { }
136 0 46 unless ($code and $code == 1000)
146 92 0 if ($self->can($action)) { }
156 0 92 if $self->{'critical_error'}
160 3 89 unless $answ and ref $answ
165 92 0 wantarray ? :
191 0 8 unless $pw_length
201 8 0 if $pw =~ /\d/ and $pw =~ /[A-Z]/ and $pw =~ /[a-z]/ and $pw =~ /[!\@\$\%\*_\.:-=\+\?#,"']/
220 0 0 if (ref $root eq 'HASH') { }
0 0 elsif (ref $root eq 'ARRAY') { }
0 0 elsif ($root and ref $root eq '') { }
311 77 0 if ($test) { }
322 0 77 unless ($sock)
350 0 77 if (not $hello or $self->{'critical_error'})
352 0 0 if $self->{'critical_error'}
360 47 30 if (ref($self) =~ /IO::EPP::Base/)
361 47 0 if ($hello =~ /urn:ietf:params:xml:ns:contact-1.0/)
365 47 0 if ($hello =~ /urn:ietf:params:xml:ns:domain-1.0/)
369 47 0 if ($hello =~ /urn:ietf:params:xml:ns:host-1.0/)
375 47 0 if ($hello =~ /urn:ietf:params:xml:ns:secDNS-1.1/)
384 77 0 if ($c and $c == 1000)
385 75 2 wantarray ? :
391 0 0 wantarray ? :
411 0 77 if $params->{'log_name'}
412 0 77 if $params->{'log_fn'}
461 814 0 if $self->{'no_log'}
465 0 0 if ($self->{'log_fn'}) { }
0 0 elsif ($self->{'log_name'}) { }
471 0 0 if ($self->{'log_fh'}) { }
475 0 0 unless open $fh, '>>', $self->{'log_name'}
499 186 47 if $out_data
506 0 233 unless (eval { do { $answ = IO::EPP::Test::Base::req(@_); 1 } })
537 407 0 if $self->{'test'}
541 0 0 if ($out_data)
557 0 0 if ($out_data)
568 0 0 unless $a_out
573 0 0 unless (defined $self->{'sock'}->read($hdr, 4))
579 0 0 if $data_size < 0
581 0 0 unless $data_size
583 0 0 if $data_size > $THRESHOLD
593 0 0 if (length $buf == 0)
594 0 0 if ($wait_cnt < 3) { }
612 0 0 if $l != $data_size
617 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 } })
656 0 211 unless ($body)
657 0 0 wantarray ? :
662 211 0 if ($content and $content =~ //)
666 211 0 if ($content =~ m[]*>(.+).+/result>]s)
670 90 121 if ($code == 1001 or $code >= 2000)
675 22 68 if $reason
679 0 90 if $xcp
683 0 90 if $text
689 0 211 if ($check_queue_msgs and $content =~ //)
697 21 1245 if ($content =~ m[<[a-z]+:$k>([^<>]+)])
702 7 204 if ($content =~ m[([^<>]+)])
706 11 200 if ($content =~ m[<(host|domain):name>([^<>]+)])
716 211 0 wantarray ? :
719 0 0 wantarray ? :
741 0 77 unless $self->{'user'}
742 0 77 unless $pw
747 77 0 if ($ext)
752 0 77 if ($new_pw)
799 0 4 unless ($content and $content =~ /greeting/)
800 0 0 wantarray ? :
808 4 0 wantarray ? :
844 0 1 unless $params->{'contacts'} and scalar @{$params->{'contacts'};}
856 0 1 if $ext
875 1 0 if ($content =~ //)
879 1 0 if ($content =~ m[]*>(.+).+/result>]s)
887 2 0 if ($a =~ m[([^<>]+)])
892 1 0 wantarray ? :
895 0 0 wantarray ? :
903 8 5 unless ($params->{'int'} and $params->{'loc'})
906 8 80 if defined $params->{$f}
912 8 18 unless $params->{$type}
919 16 2 if ($params->{'need_name'})
920 0 16 if ($params->{$type}{'name'}) { }
924 16 0 if $params->{$type}{'first_name'}
926 0 16 if ($params->{$type}{'last_name'} and $params->{$type}{'family_name'}) { }
927 0 0 if ($params->{$type}{'last_name'})
928 0 0 if $name
932 0 0 if ($params->{$type}{'patronymic'})
933 0 0 if $name
937 0 0 if ($params->{$type}{'family_name'})
938 0 0 if $name
944 0 16 if ($params->{$type}{'patronymic'})
945 0 0 if $name
949 16 0 if ($params->{$type}{'last_name'} or $params->{$type}{'family_name'})
950 16 0 if $name
957 16 0 if $name
961 10 8 if ($params->{$type}{'org'}) { }
973 4 14 unless ref $params->{$type}{'addr'}
976 5 18 if $street
980 18 0 $params->{$type}{'state'} ? :
981 18 0 $params->{$type}{'postcode'} ? :
998 8 5 unless ref $params->{'phone'}
1000 4 13 if $voice
1004 0 13 $params->{'fax'} ? :
1007 12 1 unless ref $params->{'email'}
1009 0 13 if $email
1013 13 0 $params->{'authinfo'} ? :
1047 0 11 unless ref $params
1049 0 11 unless $params->{'cont_id'}
1059 0 11 if ($ext)
1095 1 5 unless $postal
1099 4 1 if ($rdata =~ m[([^<>]*)])
1127 0 3 if (scalar @aa) { }
1129 0 0 if ($row =~ m[([^<>]+)])
1138 0 3 if ($rdata =~ m[\s*(.+?)]s)
1143 3 0 $visible ? :
1147 9 6 if ($rdata =~ m[([^<>]+)])
1154 6 12 if ($rdata =~ m[([^<>]+)])
1183 0 4 unless $params->{'cont_id'}
1187 0 4 if ($ext)
1208 4 0 if ($content =~ /result code=['"](\d+)['"]/)
1212 4 0 if ($content =~ m[]*>(.+).+/result>]s)
1219 3 1 if ($content =~ m[(.+)]s) { }
1223 1 0 wantarray ? :
1226 0 3 if ($content =~ m[(.+)]s)
1233 0 0 if ($content =~ m[]*>(.+)]s)
1237 0 0 if $krdata =~ m[1]
1238 0 0 if $krdata =~ m[1]
1239 0 0 if $krdata =~ m[1]
1244 3 0 wantarray ? :
1247 0 0 wantarray ? :
1256 2 12 if (ref $statuses eq 'HASH') { }
12 0 elsif (ref $statuses eq 'ARRAY') { }
1264 12 2 if (not $sts{$st} or $sts{$st} eq '+') { }
1282 0 4 if (ref $statuses eq 'HASH') { }
4 0 elsif (ref $statuses eq 'ARRAY') { }
1305 0 2 unless ref $params
1307 0 2 unless $params->{'cont_id'}
1311 0 2 if ($params->{'add'})
1312 0 0 if ($params->{'add'}{'statuses'})
1317 0 2 if $add
1319 0 2 if ($params->{'rem'})
1320 0 0 if ($params->{'rem'}{'statuses'})
1325 0 2 if $rem
1327 2 0 if ($params->{'chg'})
1333 2 0 if $chg
1337 0 2 if $ext
1370 0 2 unless ref $params
1372 0 2 unless $params->{'cont_id'}
1376 0 2 if $ext
1409 0 2 unless $params->{'nss'} and scalar @{$params->{'nss'};}
1419 1 1 if $ext
1438 2 0 if ($content =~ //)
1442 2 0 if ($content =~ m[]*>(.+).+/result>]s)
1450 8 0 if ($a =~ m[([^<>]+)])
1454 2 6 if ($a =~ m[([^<>]+)])
1460 2 0 wantarray ? :
1463 0 0 wantarray ? :
1479 0 17 unless $params->{'ns'}
1482 8 9 if ($params->{'ips'} and ref $params->{'ips'} eq 'ARRAY')
1484 6 4 if ($ip =~ /^\d+\.\d+\.\d+\.\d+$/) { }
1495 9 8 if $ext
1530 0 2 if (scalar @aa) { }
1532 0 0 if ($row =~ m[([^<>]+)])
1545 5 5 if ($rdata =~ m[([^<>]+)])
1552 3 9 if ($rdata =~ m[([^<>]+)])
1574 0 6 unless $params->{'ns'}
1578 4 2 if $ext
1597 6 0 if ($content =~ /result code=['"](\d+)['"]/)
1601 6 0 if ($content =~ m[]*>(.+).+/result>]s)
1608 2 4 if ($content =~ m[(.+)]s)
1614 6 0 wantarray ? :
1632 0 16 unless $params->{'ns'}
1636 11 5 if ($params->{'add'})
1637 7 4 if ($params->{'add'}{'ips'} and ref $params->{'add'}{'ips'})
1639 5 2 if ($ip =~ /^\d+\.\d+\.\d+\.\d+$/) { }
1648 4 7 if ($params->{'add'}{'statuses'})
1653 11 5 if ($add) { }
1662 5 11 if ($params->{'rem'})
1663 3 2 if (defined $params->{'rem'}{'ips'} and ref $params->{'rem'}{'ips'})
1665 3 1 if ($ip =~ /^\d+\.\d+\.\d+\.\d+$/) { }
1674 2 3 if ($params->{'rem'}{'statuses'})
1679 5 11 if ($rem) { }
1688 1 15 if ($params->{'chg'})
1689 0 1 if ($params->{'chg'}{'new_name'})
1694 0 16 if ($chg) { }
3 13 elsif (not $params->{'no_empty_chg'}) { }
1703 13 3 if $ext
1739 0 5 unless $params->{'ns'}
1743 3 2 if $ext
1772 26 0 if ($a =~ m[([^<>]+)])
1777 10 16 if ($a =~ m[([^<>]+)])
1783 0 3 if ($rdata =~ m[claims])
1785 0 0 if ($rdata =~ m[([0-9a-z.\-]+)\n?\s*([^<>]+)])
1790 0 3 if ($rdata =~ m[]+>(.+)])
1814 0 3 unless $params->{'domains'} and scalar @{$params->{'domains'};}
1824 1 2 if $ext
1846 3 0 if ($answ =~ /
1850 3 0 if ($answ =~ m[]*>([^<>]+)])
1854 3 0 if ($answ =~ m[(.+)]s)
1859 3 0 wantarray ? :
1862 0 0 wantarray ? :
1875 14 0 if $nss
1885 21 0 if (exists $params->{'authinfo'})
1899 0 21 if ($params->{'dnssec'})
1903 0 0 if $raw->{'keytag'}
1904 0 0 if $raw->{'alg'}
1905 0 0 if $raw->{'digtype'}
1906 0 0 if $raw->{'digest'}
1908 0 0 if $ds
1911 0 0 if $dsdata
1931 0 21 unless $params->{'dname'}
1934 14 1 if ($params->{'nss'} and scalar @{$params->{'nss'};})
1941 11 10 if $params->{'reg_id'}
1944 36 27 if ($$params{$t . '_id'})
1945 36 0 unless ref $$params{$t . '_id'}
1954 0 21 if ($params->{'descr'})
1955 0 0 unless ref $params->{'descr'}
1966 9 12 if $ext
2005 0 10 if (scalar @aa) { }
2007 0 0 if ($row =~ m[([^<>]+)])
2016 3 7 if ($rdata =~ m[([^<>]+)])
2023 9 0 if ($row =~ m[([^<>]+)])
2028 0 10 if ($rdata =~ //)
2032 10 0 if ($rdata =~ //)
2036 0 10 unless ($info->{'nss'} or not $rdata =~ //)
2042 0 0 unless ($info->{'nss'} or not $rdata =~ // or scalar @{$info->{'nss'};})
2047 10 0 if ($info->{'nss'})
2052 4 6 if ($rdata =~ //)
2059 30 20 if ($rdata =~ m[([^<>]+)])
2066 30 30 if ($rdata =~ m[([^<>]+)])
2071 7 3 if ($rdata =~ m[authInfo.+([^<>]+).+authInfo]s)
2101 0 14 unless ($params->{'dname'})
2102 0 0 wantarray ? :
2105 0 14 $params->{'authinfo'} ? :
2107 0 14 $params->{'hosts'} ? :
2111 10 4 if $ext
2130 14 0 if ($answ and $answ =~ //)
2134 14 0 if ($answ =~ m[]*>(.+).+/result>]s)
2138 4 10 if ($rcode != 1000)
2139 2 2 if ($answ =~ m[(.+)]s)
2144 0 4 if ($answ =~ m[(.+)]s)
2149 4 0 wantarray ? :
2155 10 0 if ($answ =~ m[(.+)]s)
2161 7 3 if ($answ =~ m[(.+)]s)
2172 14 0 if ($descr =~ /^endDate=/)
2180 0 7 if ($rdata =~ /secDNS:infData/)
2191 0 0 if ($sdata =~ m[(.+)]s)
2209 10 0 wantarray ? :
2212 0 0 wantarray ? :
2228 0 11 unless $params->{'dname'} and $params->{'period'} and $params->{'exp_date'}
2232 6 5 if $ext
2291 0 10 if ($params->{'rem'} and $params->{'rem'}{'dnssec'})
2294 0 0 if $raw->{'keytag'}
2295 0 0 if $raw->{'alg'}
2296 0 0 if $raw->{'digtype'}
2297 0 0 if $raw->{'digest'}
2299 0 0 if $ds
2302 0 0 if $rem_ds
2306 0 21 if ($params->{'add'} and $params->{'add'}{'dnssec'})
2309 0 0 if $raw->{'keytag'}
2310 0 0 if $raw->{'alg'}
2311 0 0 if $raw->{'digtype'}
2312 0 0 if $raw->{'digest'}
2314 0 0 if $ds
2317 0 0 if $add_ds
2320 0 39 if ($rem_ds or $add_ds)
2343 0 39 unless ref $params
2345 0 39 unless $params->{'dname'}
2350 21 18 if (ref $params->{'add'})
2351 9 0 if ($params->{'add'}{'nss'} and ref $params->{'add'}{'nss'} and scalar @{$params->{'add'}{'nss'};})
2358 2 61 if ($params->{'add'}{$t . '_id'})
2359 0 2 unless ref $params->{'add'}{$t . '_id'}
2367 10 11 if ($params->{'add'}{'statuses'})
2374 21 18 if ($add) { }
2382 9 30 if (ref $params->{'chg'})
2383 3 6 if ($params->{'chg'}{'reg_id'})
2389 6 3 if ($params->{'chg'}{'authinfo'})
2395 0 9 if ($params->{'chg'}{'descr'})
2396 0 0 unless ref $params->{'chg'}{'descr'}
2404 9 30 if ($chg) { }
2412 10 29 if ($params->{'rem'})
2413 6 0 if ($params->{'rem'}{'nss'} and ref $params->{'rem'}{'nss'} and scalar @{$params->{'rem'}{'nss'};})
2420 2 28 if ($params->{'rem'}{$t . '_id'})
2421 0 2 unless ref $params->{'rem'}{$t . '_id'}
2429 2 8 if ($params->{'rem'}{'statuses'})
2436 10 29 if ($rem) { }
2447 19 20 if $ext
2480 0 7 unless $params->{'dname'}
2482 0 7 unless $params->{'op'} and $params->{'op'} =~ /query|request|cancel|approve|reject|usertransfer/
2485 2 5 if (defined $params->{'authinfo'})
2491 4 3 if (defined $params->{'period'})
2501 0 7 if $ext
2520 7 0 if ($answ =~ //)
2524 7 0 if ($answ =~ m[]*>(.+).+/result>]s)
2527 0 7 if ($answ =~ m[]*>(.+).+/result>]s)
2531 0 7 if ($answ =~ m[([^<>]+)])
2539 2 5 if ($answ =~ m[(.+)]s)
2548 4 6 if ($rdata =~ m[([^<>]+)])
2555 6 6 if ($rdata =~ m[([^<>]+)])
2568 7 0 wantarray ? :
2571 0 0 wantarray ? :
2587 0 10 unless $params->{'dname'}
2591 6 4 if $ext
2619 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*
2633 0 0 if ($row =~ /host:status s="([^"]+)"/)
2641 0 0 if ($row =~ m[host:addr ip="v\d">([^<>]+)
2647 0 0 if ($rdata =~ m[([^<>]+)])
2653 0 0 if ($rdata =~ m[([^<>]+)])
2663 0 0 if ($rdata =~ m[([^<>]+)])
2680 0 0 if ($rdata =~ m[([^<>]+)])
2686 0 0 if ($rdata =~ m[([^<>]+)])
2697 0 0 if ($rdata =~ m[(.+?)]s)
2699 0 0 if ($trids =~ m[([0-9A-Za-z]+)])
2702 0 0 if ($trids =~ m[([0-9A-Za-z\-]+)])
2707 0 0 if ($rdata =~ m[([^<>]+)])
2751 1 0 if ($answ and $answ =~ //)
2755 1 0 if ($answ =~ m[]*>(.+?).+/result>]s)
2761 0 1 if ($rcode == 1301)
2762 0 0 if ($answ =~ m[(.*)]s)
2767 0 0 if ($q and $q =~ m[(.+).*(.+?)]s) { }
0 0 elsif ($q and $q =~ m[(.+)]s) { }
0 0 elsif ($q) { }
2771 0 0 if ($info{'qmsg'} =~ /\[CDATA\[/)
2787 0 0 if ($answ =~ m[(.+?)]s)
2790 0 0 if (not $rdata and $err)
2791 0 0 wantarray ? :
2797 0 0 if ($answ =~ m[(.+?)]s)
2805 1 0 wantarray ? :
2808 0 0 wantarray ? :
2820 0 0 unless $params->{'msg_id'}
2835 0 0 if ($answ and $answ =~ //)
2842 0 0 if ($answ =~ m[])
2847 0 0 wantarray ? :
2852 0 0 wantarray ? :
2867 0 77 unless $self->{'sock'}
2869 0 77 unless ($self->{'test'} or $self->{'sock'}->opened)
2888 0 77 unless ($self->{'test'})
2903 73 4 if ($self->{'sock'})
2907 0 77 if ($self->{'log_fh'})