Branch Coverage

lib/Sisimai/Fact.pm
Criterion Covered Total %
branch 143 164 87.2


line true false branch
61 0 3501 unless ref $argvs eq "HASH"
67 0 3456 unless $mesg1->{'ds'}
68 0 3456 unless $mesg1->{'rfc822'}
78 0 3638 if length $e->{'recipient'} < 5
79 12 3626 if not $argvs->{'delivered'} and index($e->{'status'}, "2.") == 0
80 21 3605 if not $argvs->{'vacation'} and $e->{'reason'} eq "vacation"
108 2301 3333 unless exists $rfc822data->{$f}
109 0 3333 unless $rfc822data->{$f}
121 0 3605 unless $piece->{'addresser'}
127 1898 1707 if $e->{'date'}
132 11281 3139 unless $rfc822data->{$f}
137 1821 1784 if scalar @datevalues < 2
143 3605 0 if ($datestring =~ /\A(.+)[ ]+([-+]\d{4})\z/u)
149 3605 0 if $datestring
158 0 3605 unless defined $piece->{'timestamp'}
163 1655 1950 unless ($piece->{'rhost'})
166 416 1239 if "Sisimai::RFC1123"->is_internethost($ir)
168 1239 416 unless ($piece->{'rhost'})
173 424 1509 if $piece->{'rhost'}
175 418 1091 unless "Sisimai::RFC1123"->is_internethost($cv)
180 286 3319 if $piece->{'lhost'} eq $piece->{'rhost'}
182 1568 2037 unless ($piece->{'lhost'})
187 594 1167 unless "Sisimai::RFC1123"->is_internethost($cv)
194 549 6661 unless length $piece->{$v}
195 0 6661 if (index($piece->{$v}, "\@") != -1)
201 77 6584 if (index($piece->{$v}, " ") != -1)
207 0 77 if "Sisimai::RFC791"->is_ipv4address($w)
210 0 77 if index($piece->{$v}, " ") > 0
212 54 6607 if substr($piece->{$v}, -1, 1) eq "."
220 3062 543 if ('Sisimai::String'->aligned(\$rfc822data->{'message-id'}, ['<', '@', '>'])) { }
232 27 3578 if ('Sisimai::String'->aligned(\$rfc822data->{'list-id'}, ['<', '.', '>'])) { }
247 10 3595 unless length $piece->{'diagnosticcode'}
250 0 3595 if substr($piece->{'diagnosticcode'}, -1, 1) eq "\r"
256 2585 1010 if (length $cr == 3)
260 207 2378 if (index($piece->{'diagnosticcode'}, $cr . '-') != -1)
293 0 207 if (index($piece->{'diagnosticcode'}, $cr) > 1)
304 22 3573 if $p1 > 0 and $p2 > 0
310 10 3595 if $piece->{'reason'} eq "mailererror"
311 3489 116 unless grep {$piece->{'reason'} eq $_;} "feedback", "vacation"
315 1925 1680 unless "Sisimai::SMTP::Command"->test($piece->{'command'})
317 0 3605 if substr($piece->{'subject'}, -1, 1) eq "\r"
349 2929 676 if length $thing->{'alias'} == 0 or $thing->{'recipient'}->address ne $thing->{'alias'}
350 0 676 unless exists $rfc822data->{'received'}
351 99 577 unless scalar @{$rfc822data->{'received'}}
355 250 761 unless index($er, " for ") > 1
358 0 761 if scalar @$or == 0 or length $or->[5] == 0
359 0 761 if "Sisimai::Address"->is_emailaddress($or->[5]) == 0
360 728 33 if $thing->{'recipient'}->address eq $or->[5]
366 643 2962 if $thing->{'alias'} eq $thing->{'recipient'}{'address'}
370 3262 343 if ($thing->{'reason'} eq "" or exists $$retryindex{$thing->{'reason'}})
374 32 3230 if ($cr->is_explicit($or))
375 833 2397 if ($cr->is_explicit($or))
376 2360 37 if ($cr->is_explicit($or))
377 27 10 $thing->{'diagnosticcode'} ? :
383 120 3485 if ($thing->{'reason'} eq 'delivered' or $thing->{'reason'} eq 'feedback' or $thing->{'reason'} eq 'vacation') { }
385 116 4 unless $thing->{'reason'} eq "delivered"
390 10 3475 if length $smtperrors < 4
397 2834 771 if $thing->{'deliverystatus'}
400 10 761 if length $smtperrors < 4
403 492 279 $permanent0 . $temporary0 eq '00' ? :
410 935 2670 if ($cx->[0] ne $cx->[1])
413 10 925 index($cx->[1], $cx->[0]) == 0 ? :
416 1665 1940 unless (exists $$actionlist{$thing->{'action'}})
418 1665 0 if (my $ox = "Sisimai::RFC1894"->field('Action: ' . $thing->{'action'}))
427 4 3601 if $thing->{'reason'} eq "delivered"
428 249 3356 if $thing->{'reason'} eq "expired"
429 3485 120 if $cx->[0] eq 4 or $cx->[0] eq 5
433 2564 1041 if ($thing->{'replycode'} ne "")
436 324 2240 if (scalar @$cv > 0)
437 5 319 if $cv->[0] ne "" and $thing->{'command'} eq ""
438 0 324 if $cv->[1] ne "" and "Sisimai::SMTP::Status"->is_explicit($thing->{'deliverystatus'}) == 0
439 5 319 if $cv->[2] ne "" and "Sisimai::Reason"->is_explicit($thing->{'reason'}) == 0
466 461 3138 if index($cv, 4) == 0 or index($cw, 4) == 0
467 1237 1901 if grep {$cr eq $_;} "userunknown", "hostunknown", "hasmoved", "notaccept", "suspend", "suppressed"
469 580 1321 if (grep {$cr eq $_;} 'mailboxfull', 'filtered', 'norelaying') { }
111 1210 elsif ($cr eq 'feedback') { }
475 15 565 if $cr ne "mailboxfull" and $thing->{'command'} eq "RCPT"
476 449 116 if index($cv, 5) == 0
477 80 36 if "Sisimai::SMTP::Status"->is_explicit($cw) == 0
478 36 0 if index($cw, "5.") == 0
483 96 15 if grep {$thing->{'feedbacktype'} eq $_;} "abuse", "fraud", "opt-out"
535 38 1485 unless $type =~ /\A(?:json|yaml)\z/u