Branch Coverage

blib/lib/Mail/BIMI/Record.pm
Criterion Covered Total %
branch 54 98 55.1


line true false branch
43 1 29 unless (exists $self->record_hashref->{'v'})
51 2 33 if (exists $self->record_hashref->{'a'})
60 24 5 if (exists $self->record_hashref->{'l'})
72 54 0 unless $self->bimi_object->options->no_location_with_vmc
73 0 0 if ($self->authority and $self->authority->is_relevant)
81 6 30 unless keys %{$self->record_hashref}
83 1 29 if (not defined $self->version) { }
88 1 28 if lc $self->version eq ''
89 4 25 if lc $self->version ne 'bimi1'
90 4 25 if @{$self->errors}
92 0 25 if ($self->authority->is_relevant and not $self->authority->is_valid)
95 3 22 if ($self->location_is_relevant and not $self->location->is_valid)
99 3 22 if @{$self->errors}
101 0 22 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 22 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 22 if @{$self->errors}
149 1 25 unless (eval {
158 6 19 if (not @records) { }
1 18 elsif (scalar @records > 1) { }
159 2 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 0 30 if ($self->bimi_object->options->force_record)
217 6 22 unless (my $query = $res->query("$selector._bimi.$domain", 'TXT'))
221 1 23 if $rr->type eq 'CNAME'
222 1 23 if $rr->type ne 'TXT'
226 1 21 if (not @matches and $cname)
228 0 1 unless ($query = $res->query($cname, 'TXT'))
232 0 1 if $rr->type ne 'TXT'
248 1 70 if (exists $data->{$key})
251 71 0 if (grep {$key eq $_;} 'v', 'l', 'a')
260 5 0 if $self->authority
261 5 0 if $self->location
267 0 0 $self->is_valid ? :
270 0 0 if ($self->retrieved_record)
274 0 0 if $self->authority
275 0 0 if $self->location_is_relevant and $self->location
276 0 0 $self->is_valid ? :
279 0 0 if (@{$self->warnings})
286 0 0 if (not $self->is_valid)
293 0 0 $error_detail ? :