Branch Coverage

blib/lib/XML/Smart/Data.pm
Criterion Covered Total %
branch 223 348 64.0


line true false branch
43 0 251 if ($args{'tree'}) { }
51 0 251 if ($args{'root'} or ref $tree ne 'HASH') { }
57 175 76 if (ref $$tree{'/nodes'} eq 'HASH')
58 151 100 if (ref $$tree{'/order'} eq 'ARRAY')
62 3 248 if ($ks > $n) { }
69 9 239 if (ref $$tree{$k} eq 'ARRAY' and $#{$$tree{$k};} > 0) { }
0 239 elsif (ref $$tree{$k} =~ /^(?:HASH|)$/) { }
72 15 3 if ($i and &is_valid_tree($i))
73 6 12 if ($c > 1)
75 3 6 if (not $addroot and $ok)
81 9 242 if ($addroot)
87 3 248 if ($args{'lowtag'})
88 3 248 if ($args{'upertag'})
90 0 251 if ($args{'lowarg'})
91 3 248 if ($args{'uperarg'})
97 167 84 unless $args{'nospace'}
98 14 237 if (&_is_unicode($data))
102 14 237 if ($unicode)
105 0 251 if ($args{'meta'})
107 0 0 if (ref $args{'meta'} eq 'ARRAY') { }
0 0 elsif (ref $args{'meta'} eq 'HASH') { }
112 0 0 if (ref $metas_i eq 'HASH')
131 7 244 $args{'wild'} ? :
134 6 245 if ($args{'nometagen'})
137 3 248 if ($args{'length'})
143 227 0 if $args{'nometagen'} eq ''
227 24 if ($args{'noheader'})
147 4 247 if (not $args{'nodtd'} and $$$this{'DTD'})
148 4 0 ref $$$this{'DTD'} ? :
150 1 3 if $dtd ne '' and not $args{'nospace'}
156 227 24 if ($xml eq '')
158 0 251 if (wantarray)
178 0 0 if $index_of_smart_html_encode == -1
187 0 0 if $index_of_multiple_smart_html_encode == -1
189 0 0 if ($check_string =~ /multiple_smart_html_encode\((.*?)\).*/)
218 30 3 if (ref $tree eq 'HASH') { }
3 0 elsif (ref $tree eq 'ARRAY') { }
0 0 elsif (ref $tree eq 'SCALAR' and $$tree ne '') { }
220 15 27 if ($Key eq '' or $Key eq '/order' or $Key eq '/nodes')
221 12 15 if (ref $$tree{$Key}) { }
15 0 elsif ($$tree{$Key} ne '') { }
223 27 0 if ($found)
228 3 0 if (ref $value) { }
0 0 elsif ($value ne '') { }
230 3 0 if ($found)
246 251 0 if ($] >= 5.008001) { }
0 0 elsif ($] >= 5.008) { }
0 0 elsif ($] >= 5.007) { }
247 14 237 if (utf8::is_utf8($_[0]))
254 0 0 if (Encode::is_utf8($_[0]))
266 0 0 if $is
288 0 0 defined $$$tree{'content'} ? :
0 1482 if (ref $tree eq 'XML::Smart')
290 1482 0 if (ref $tree)
291 0 1482 if ($$parsed{"$tree"})
299 1410 72 unless $stat[0]
301 477 1005 if ($stat[1])
302 16 1466 if $stat[1] > 1
306 34 1448 $stat[4] ? :
307 0 1482 if ($stat[2] == 1) { }
56 1426 elsif ($stat[2] == 2) { }
310 1110 372 if (ref $tree eq 'HASH') { }
372 0 elsif (ref $tree eq 'ARRAY') { }
0 0 elsif (ref $tree eq 'SCALAR') { }
0 0 elsif (ref $tree) { }
315 524 586 if (not $stat[5] and $$tree{'/order'}) { }
318 350 0 if (exists $$tree{$keys_i} and !ref($$tree{$keys_i}) || ref $$tree{$keys_i} eq 'HASH' || ref $$tree{$keys_i} eq 'XML::Smart' || ref $$tree{$keys_i} eq 'ARRAY' && exists $$tree{$keys_i}[$keys{$keys_i}])
321 127 1209 if (++$keys{$keys_i} == 2 and ref $$tree{$keys_i} eq 'ARRAY')
322 324 3 $_ ne '' ? :
323 124 3 if $#val > 0
328 907 1140 if (not $keys{$keys_i} and exists $$tree{$keys_i})
336 1034 1972 if ($Key eq '' or $Key eq '/order' or $Key eq '/nodes')
338 10 1962 if ($Key eq '!--' and !ref($$tree{$Key}) || ref $$tree{$Key} eq 'HASH' && keys %{$$tree{$Key};} == 1 && (defined $$tree{$Key}{'CONTENT'} || defined $$tree{$Key}{'content'})) { }
904 1058 elsif (ref $$tree{$Key}) { }
7 1051 elsif ($$tree{'/nodes'}{$Key}) { }
324 727 elsif (lc $Key eq 'content') { }
20 707 elsif ($Key =~ m[^/\.CONTENT/\d+$]) { }
6 701 elsif ($stat[4] and $$tree{$Key} eq '') { }
340 10 0 defined $$tree{$Key}{'CONTENT'} ? :
10 0 if (ref $$tree{$Key})
341 10 0 if ($ct ne '')
346 1 903 if (ref $k eq 'XML::Smart') { }
317 1125 elsif (ref $k eq 'ARRAY' and $multi_keys{$Key}) { }
347 0 1 defined $${$$tree{$Key};}{'content'} ? :
350 317 0 if $#{$k;} > 0
352 901 3 if $array_i{$Key} ne 'ok'
353 47 857 if $i eq '' and ref $k eq 'ARRAY'
360 8 316 if (tied $$tree{$Key} and $$tree{$Key} =~ /\S/s)
363 8 316 if tied $$tree{$Key}
365 304 12 if ($$tree{$Key} ne '')
375 692 9 if ($tp == 1) { }
376 15 677 $stat[4] ? :
377 0 692 if ($stat[3] == 1) { }
40 652 elsif ($stat[3] == 2) { }
382 0 9 $stat[4] ? :
383 0 9 if ($stat[2] == 1) { }
0 9 elsif ($stat[2] == 2) { }
386 0 9 if ($tp == 2) { }
6 3 elsif ($tp == 3) { }
3 0 elsif ($tp == 4) { }
402 4 164 if ($array_i{$Key} ne 'ok' and $#{$$tree{$Key};} >= $array_i{$Key})
409 304 806 if ($cont ne '')
415 11 293 if ($node_type =~ /^(\w+),(\d+),(\d*)$/)
418 2 9 if (not $node_set) { }
419 1 1 if ($tp == 3 and $node_tp eq 'cdata') { }
1 0 elsif ($tp == 4 and $node_tp eq 'binary') { }
423 3 6 if ($node_tp eq 'cdata') { }
6 0 elsif ($node_tp eq 'binary') { }
428 5 299 if ($tp == 3) { }
25 274 elsif ($tp == 4) { }
441 15 289 if ($px > $pe)
448 6 1104 if ($args_end ne '')
453 40 1070 if (not @all_keys) { }
187 883 elsif ($args ne '' and $tags ne '') { }
178 705 elsif ($args ne '') { }
690 15 elsif ($tags ne '') { }
454 24 16 if $tag ne ''
457 10 177 if ($args =~ /dt\:dt="binary.base64"/ and $decode) { }
458 10 0 if $tag ne ''
462 177 0 if $tag ne ''
465 129 58 unless $cont
466 187 0 if $tag ne ''
472 455 235 if $tag ne ''
474 444 246 unless $cont
475 455 235 if $tag ne ''
478 15 0 if $tag ne ''
485 321 51 $ar_i ne '' ? :
488 0 414 if (ref $value_i eq 'XML::Smart')
491 0 414 if ($tag_org eq '!--' and !ref($value) || ref $value eq 'HASH' && keys %{$value;} == 1 && (defined $$value{'CONTENT'} || defined $$value{'content'})) { }
319 95 elsif (ref $value) { }
494 0 0 defined $$value{'CONTENT'} ? :
0 0 if (ref $value)
496 0 0 if $c == 1
500 319 0 if (ref $value eq 'HASH') { }
0 0 elsif (ref $value eq 'SCALAR') { }
0 0 elsif (ref $value ne 'ARRAY') { }
508 92 322 if ($do_val and $value ne '')
511 7 85 if ($node_type =~ /^(\w+),(\d+),(\d*)$/)
513 7 0 if (not $node_set) { }
514 5 2 if ($tp == 3 and $node_tp eq 'cdata') { }
2 0 elsif ($tp == 4 and $node_tp eq 'binary') { }
518 0 0 if ($node_tp eq 'cdata') { }
0 0 elsif ($node_tp eq 'binary') { }
523 82 10 if ($tp <= 2) { }
0 10 elsif ($tp == 3) { }
10 0 elsif ($tp == 4) { }
528 53 29 if $c == 1
533 0 0 if $c == 1
541 10 0 if $c == 1
546 3 369 if ($ar_i eq '' and $c <= 1 and not $$prev_tree{'/nodes'}{$tag}) { }
547 0 3 $stat[4] ? :
548 0 3 if ($stat[3] == 1) { }
2 1 elsif ($stat[3] == 2) { }
550 3 0 if ref $tree
558 0 0 $stat[4] ? :
559 0 0 if ($stat[3] == 1) { }
0 0 elsif ($stat[3] == 2) { }
561 0 0 if ref $tree
567 0 0 $stat[4] ? :
568 0 0 if ($stat[3] == 1) { }
0 0 elsif ($stat[3] == 2) { }
570 0 0 if ref $tree
576 0 0 $stat[4] ? :
577 0 0 if ($stat[3] == 1) { }
0 0 elsif ($stat[3] == 2) { }
579 0 0 if ref $tree
586 1479 0 if ref $tree
614 4 2133 if ($_[0] =~ /(?:^[.:-]|[^\w\:\.\-])/s)
637 4 691 $data =~ /"/s ? :
638 0 695 $data =~ /'/s ? :
640 691 0 unless ($q1 or $q2)
645 0 4 if ($q1 and $q2)
651 4 0 if ($q1)
655 0 0 if ($q2)