Branch Coverage

blib/lib/Mail/BIMI/Record.pm
Criterion Covered Total %
branch 66 98 67.3


line true false branch
43 1 35 unless (exists $self->record_hashref->{'v'})
51 5 39 if (exists $self->record_hashref->{'a'})
60 30 8 if (exists $self->record_hashref->{'l'})
72 75 0 unless $self->bimi_object->options->no_location_with_vmc
73 0 0 if ($self->authority and $self->authority->is_relevant)
81 6 36 unless keys %{$self->record_hashref}
83 1 35 if (not defined $self->version) { }
88 1 34 if lc $self->version eq ''
89 4 31 if lc $self->version ne 'bimi1'
90 4 31 if @{$self->errors}
92 0 31 if ($self->authority->is_relevant and not $self->authority->is_valid)
95 6 25 if ($self->location_is_relevant and not $self->location->is_valid)
99 6 25 if @{$self->errors}
101 0 25 if ($self->bimi_object->options->require_vmc)
102 0 0 unless ($self->authority and $self->authority->vmc and $self->authority->vmc->is_valid)
107 0 25 if ($self->authority and $self->authority->is_relevant)
110 0 0 if (not $self->authority->vmc) { }
0 0 elsif (not $self->authority->vmc->indicator) { }
0 0 elsif ($self->location_is_relevant and not $self->location) { }
0 0 elsif ($self->location_is_relevant and not $self->location->indicator) { }
0 0 elsif ($self->location_is_relevant and $self->authority->vmc->indicator->data_uncompressed_normalized ne $self->location->indicator->data_uncompressed_normalized) { }
0 0 elsif ($self->location_is_relevant and $self->authority->vmc->indicator->data_uncompressed ne $self->location->indicator->data_uncompressed) { }
134 0 25 if @{$self->errors}
149 1 34 unless (eval {
158 9 25 if (not @records) { }
1 24 elsif (scalar @records > 1) { }
159 5 4 if ($domain eq $fallback_domain and $selector eq $fallback_selector)
170 1 3 unless (eval {
179 0 3 if (not @records) { }
1 2 elsif (scalar @records > 1) { }
211 3 36 if ($self->bimi_object->options->force_record)
217 9 25 unless (my $query = $res->query("$selector._bimi.$domain", 'TXT'))
221 1 26 if $rr->type eq 'CNAME'
222 1 26 if $rr->type ne 'TXT'
226 1 24 if (not @matches and $cname)
228 0 1 unless ($query = $res->query($cname, 'TXT'))
232 0 1 if $rr->type ne 'TXT'
248 1 85 if (exists $data->{$key})
251 86 0 if (grep {$key eq $_;} 'v', 'l', 'a')
260 14 0 if $self->authority
261 14 0 if $self->location
267 3 3 $self->is_valid ? :
270 6 0 if ($self->retrieved_record)
274 6 0 if $self->authority
275 6 0 if $self->location_is_relevant and $self->location
276 3 3 $self->is_valid ? :
279 0 6 if (@{$self->warnings})
286 3 3 if (not $self->is_valid)
293 0 3 $error_detail ? :