Branch Coverage

blib/lib/WebDyne/HTML/TreeBuilder.pm
Criterion Covered Total %
branch 56 132 42.4


line true false branch
221 2 36 if ($line =~ /^#/) { }
242 33 247 @{$tree_or->{'_html_wedge_ar'};} ? :
243 211 69 if ($line)
257 36 244 if ($html_fh->eof and $html)
259 1 35 unless $html =~ /(?:\r?\n|\r)$/
266 280 0 if (my $attr_convert = $WebDyne::HTML::TreeBuilder::WEBDYNE_ALPINE_VUE_ATTRIBUTE_HACK_ENABLE)
267 0 280 if ($html =~ s/ (<\s*[\w:-]+ # match the start of an HTML tag (?:\s+[^>]*?)?) # non-greedy match of attributes \s@([\w\.-]+) # match attribute like @click or @keydown.enter (\s*=\s*["'][^"']*["']) # match = "value" or = 'value' /"$1 ${attr_convert}:$2$3";/egx) { }
332 2 242 if ($attr_value =~ /([\$\@%!+*^])\{(\1?)/)
334 0 2 if ($attr_value =~ s/\s*[\r\n]+\s*/ /g)
359 0 772 if (delete $attr_hr->{'chomp'})
377 15 757 if ($WebDyne::HTML::TreeBuilder::CGI_TAG_IMPLICIT{$tag_parent} or $tag_parent =~ /^(?:start_|end_)/i) { }
0 757 elsif ($WebDyne::HTML::TreeBuilder::CGI_TAG_WEBDYNE{$tag_parent} and $tag eq 'head') { }
0 757 elsif ($WebDyne::HTML::TreeBuilder::CGI_TAG_WEBDYNE{$tag_parent} and $tag eq 'body') { }
35 722 elsif ($WebDyne::HTML::TreeBuilder::CGI_TAG_SPECIAL{$tag} and $method ne 'SUPER::text') { }
0 722 elsif (my($modifier, $tag_actual) = $tag =~ /^(start_|end_)(.*)/i and $method ne 'SUPER::text') { }
0 722 elsif ($WebDyne::HTML::TreeBuilder::CGI_TAG_IMPLICIT{$tag_parent}) { }
2 720 elsif ($WebDyne::HTML::TreeBuilder::CGI_TAG_WEBDYNE{$tag_parent}) { }
503 279 493 if ((my $ref = ref $html_or) eq 'HTML::Element') { }
0 493 elsif ($ref and $ref ne 'WebDyne::HTML::TreeBuilder') { }
554 0 0 if ($attr_hr->{'type'} eq 'application/perl') { }
564 0 0 unless $self->_text_block_tag
579 0 0 unless $self->_text_block_tag
594 0 0 if ($method eq 'SUPER::start') { }
0 0 elsif ($method eq 'SUPER::end') { }
612 0 3 if $attr_hr->{'compact'} or $attr_hr->{'bare'}
613 0 3 if (delete $attr_hr->{'perl'}) { }
616 0 0 unless $self->_text_block_tag
634 1 0 if (delete $attr_hr->{'perl'}) { }
637 1 0 unless $self->_text_block_tag
654 0 0 if (delete $attr_hr->{'perl'}) { }
657 0 0 unless $self->_text_block_tag
671 0 0 unless $self->_text_block_tag
690 0 0 if ($tag eq "perl")
691 0 0 unless (grep {exists $attr_hr->{$_};} "package", "method", "handler")
696 0 0 if ($inline) { }
702 0 0 unless $self->_text_block_tag
749 346 0 unless ref $tag
753 0 346 if ($self->_text_block_tag) { }
777 104 46 unless ref $tag
790 0 150 if ($tag eq 'div') { }
0 150 elsif ($tag eq 'script') { }
800 0 0 if (my $div_ar = pop @{$$self{'_div_stack'};}) { }
812 0 0 if $self->_text_block_tag
814 0 0 if ref $self->pos eq "HTML::Element"
820 0 0 if ref $self->pos eq "HTML::Element"
833 0 0 if (my $tag = $div_or->attr('wrap') or @div_attr_name) { }
862 0 0 if ref $self->pos eq "HTML::Element"
876 0 0 if (my $script_ar = pop @{$$self{'_script_stack'};}) { }
888 0 0 if $self->_text_block_tag
896 0 0 if ref $self->pos eq "HTML::Element"
920 1 149 if ($self->_text_block_tag and $tag eq $self->_text_block_tag) { }
0 149 elsif ($self->_text_block_tag) { }
0 149 elsif (not $_[0] and delete $self->{'_end_ignore'}) { }
923 1 0 if ref $self->pos eq "HTML::Element"
928 0 0 if ref $self->pos eq "HTML::Element"
940 148 1 if ref $self->pos eq "HTML::Element"
968 0 473 if (delete $self->{'_chomp'})
990 50 423 if (grep {$self->_text_block_tag eq $_;} 'perl', 'htmx', 'api', 'json') { }
16 407 elsif ($text =~ /^\W*__CODE__/ or $text =~ /^\W*__PERL__/) { }
0 407 elsif ($text =~ /^\W*__END__/) { }
1011 16 0 if $self->{'_pos'}
1045 0 407 if ($text =~ /([\$!+\^*]+)\{([\$!+]?)(.*?)\2\}/s) { }
1079 0 0 if (@{$self->{'_script_stack'};} and !$attr{'type'} || $$WebDyne::HTML::TreeBuilder::WEBDYNE_SCRIPT_TYPE_EXECUTABLE_HR{$attr{'type'}} and not $attr{'subst'}) { }
0 0 elsif ($attr{'nosubst'}) { }
1208 0 0 if (my(@tag) = grep({/^data-webdyne-/;} keys %{$attr_hr;})) { }
1268 35 2589 @_ == 3 ? :