Branch Coverage

lib/Web/DataService/Node.pm
Criterion Covered Total %
branch 66 222 29.7


line true false branch
111 2 0 if (ref $item eq 'HASH') { }
0 0 elsif (not ref $item) { }
114 0 2 unless defined $item->{'path'} and $item->{'path'} ne ''
117 0 2 if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx
133 0 1 unless $last_node
154 0 2 if (defined $ds->{'path_defs'}{$path}) { }
177 0 6 unless $NODE_DEF{$key}
184 0 6 if (not defined $value or $value eq '') { }
3 3 elsif ($NODE_DEF{$key} eq 'single') { }
0 3 elsif ($NODE_DEF{$key} eq 'hook') { }
0 3 elsif ($NODE_DEF{$key} eq 'set') { }
1 2 elsif ($NODE_DEF{$key} eq 'list') { }
203 0 0 if (ref $value eq 'ARRAY') { }
207 0 0 unless ref $v eq 'CODE' or not ref $v
214 0 0 unless ref $value eq 'CODE' or not ref $value
230 0 0 unless ($value =~ qr/ ^ (?> [\w.:][\w.:-]* | \s*,\s* )* $ /sx or $value =~ qr/ ^ (?> [+-][\w.:][\w.:-]* | \s*,\s* )* $ /sx)
237 0 0 if $value =~ qr/ ^ (?> \s*,\s* )* [+-] /sx
245 0 1 unless ($value =~ qr/ ^ (?> [\w.:-]+ | \s*,\s* )+ $ /sx)
266 0 2 if (defined $place)
271 0 0 if ($place > 0 and defined $list and $list ne '') { }
0 0 elsif ($place ne '0') { }
291 0 2 if ($role and not $Web::DataService::ONE_REQUEST)
311 0 2 if ($role)
315 0 0 if $role =~ qr/ [.] pm $ /sx
319 0 0 unless %{"${role}::";}
327 0 2 if ($method)
329 0 0 unless defined $role
332 0 0 unless $role->can($method)
341 0 2 if $method
342 0 2 if $ds->node_attr($path, 'file_dir')
343 0 2 if $ds->node_attr($path, 'file_path')
345 0 2 if ($method and $attr_count > 1) { }
0 2 elsif ($attr_count > 1) { }
361 2 0 if (ref $allow_format and &reftype($allow_format) eq 'HASH')
366 0 4 unless ref $ds->{'format'}{$f}
378 2 0 if (ref $allow_vocab and &reftype($allow_vocab) eq 'HASH')
383 0 4 unless ref $ds->{'vocab'}{$v}
393 0 2 if (defined $place and not $place =~ qr/^[0-9]+$/)
427 0 0 if (ref $item eq 'HASH') { }
0 0 elsif (not ref $item) { }
430 0 0 unless defined $item->{'path'} and $item->{'path'} ne ''
433 0 0 if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx
449 0 0 unless $last_node
466 0 0 unless $NODE_DEF{$key}
472 0 0 unless defined $place and $place =~ qr/^[0-9]+$/
475 0 0 unless defined $list and $list ne ''
480 0 0 if $place
510 0 0 if (ref $item eq 'HASH') { }
0 0 elsif (not ref $item) { }
514 0 0 unless defined $item->{'path'} and $item->{'path'} ne '' or defined $item->{'type'} and $item->{'type'} ne ''
517 0 0 if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx
533 0 0 unless $last_node
552 0 0 unless $name
559 0 0 unless $EXTENDED_DEF{$key}
562 0 0 unless $disp eq '' or $disp eq 'replace' or $disp eq 'add' or $disp eq 'para'
565 0 0 if ($path) { }
0 0 elsif ($type eq 'format') { }
0 0 elsif ($type eq 'vocab') { }
568 0 0 if $item->{'name'}
570 0 0 if $type ne 'node'
574 0 0 unless ref $ds->{'node_attrs'}{$path} eq 'HASH'
577 0 0 if $disp
583 0 0 unless $name
587 0 0 unless ref $ds->{'format'}{$name} eq 'Web::DataService::Format'
590 0 0 if $disp
596 0 0 unless $name
600 0 0 unless ref $ds->{'format'}{$name} eq 'Web::DataService::Vocab'
603 0 0 if $disp
609 0 0 unless $type
612 0 0 if $type eq 'node'
615 0 0 unless $type eq 'node' or $type eq 'format' or $type eq 'vocab'
627 0 0 unless defined $doc
631 0 0 if ref $doc
643 0 0 unless defined $item->{'doc_string'}
644 0 0 if $item->{'doc_string'} ne ''
657 0 0 unless defined $path
658 0 0 if $path eq ''
677 0 19 if (ref $path and &reftype($path) eq 'HASH')
689 2 17 if (exists $ds->{'attr_cache'}{$path}{$key})
701 0 17 unless $key and defined $NODE_DEF{$key}
702 0 17 unless defined $path and $path ne ''
704 0 17 if $path eq ''
706 0 17 unless exists $ds->{'node_attrs'}{$path}
732 3 21 if ($NODE_NONHERITABLE{$key})
743 19 2 if (not exists $ds->{'node_attrs'}{$path}{$key} or $ds->{'path_compose'}{$path}{$key})
750 7 12 if (defined $parent) { }
762 0 12 if (defined $config_value) { }
0 12 elsif (defined $NODE_ATTR_DEFAULT{$key}) { }
0 12 elsif ($key eq 'allow_method') { }
2 10 elsif ($key eq 'allow_format') { }
2 8 elsif ($key eq 'allow_vocab') { }
800 19 0 unless (exists $ds->{'node_attrs'}{$path}{$key})
816 0 2 if ($NODE_DEF{$key} eq 'set') { }
1 1 elsif ($NODE_DEF{$key} eq 'list') { }
0 1 elsif ($NODE_DEF{$key} eq 'hook') { }
818 0 0 ref $inherited_value eq 'HASH' ? :
823 0 0 unless $v =~ /^([+-])?(.*)/
825 0 0 if (defined $1 and $1 eq '-') { }
847 1 0 if defined $v and $v ne ''
855 0 0 if (ref $inherited_value eq 'ARRAY' and @$inherited_value) { }
893 0 19 unless defined $path
894 17 2 if exists $ds->{'path_parent'}{$path}
898 1 1 if ($path eq '/' or $path eq '') { }
1 0 elsif ($path =~ qr" ^ [^/]+ $ "sx) { }
0 0 elsif ($path =~ qr" ^ (.+) / [^/]+ "sx) { }
928 0 3 unless defined $doc
930 0 3 if ref $doc
936 3 0 unless ($node->{'doc_string'})
938 0 3 if ($doc =~ qr/ ^ ! (.*) /sx)
952 3 0 unless defined $node->{'doc_string'}
953 0 3 if $node->{'doc_string'} ne '' and $doc ne ''