Branch Coverage

blib/lib/Novel/Robot/Parser.pm
Criterion Covered Total %
branch 57 136 41.9


line true false branch
76 0 0 unless $url =~ /^https?:/
82 0 0 $base_dom =~ /\./ ? :
89 0 4 if ($url and $url =~ /^https?:/)
91 0 0 if exists $SITE_DOM_NAME{$dom}
131 0 3 if $self->site_type eq "tiezi"
134 2 1 if (not $index_url =~ /^https?:/) { }
171 0 6 if exists $o{$k}
182 0 2 if exists $self->{'book_path'}
183 0 2 if exists $self->{'book_regex'}
184 0 2 if exists $self->{'writer_path'}
185 0 2 if exists $self->{'writer_regex'}
237 0 1 if exists $self->{'item_list_path'}
244 1 1 if exists $r->{'item_list'}
248 1 0 unless exists $path_r->{'path'}
259 0 0 if exists $_->{'url'}
261 0 0 if ($path_r->{'sort'})
282 1 23 unless $up_url =~ m[/]
292 8 15 if ($depth == $links[$i]{'depth'} and $parent eq $links[$i]{'parent'}) { }
302 1 0 if @temp_arr
315 0 3 if $opt{'chapter_url_regex'} and $x->{'url'} =~ /$opt{'chapter_url_regex'}/
316 0 3 if $opt{'chapter_title_regex'} and $x->{'title'} =~ /$opt{'chapter_title_regex'}/
318 0 2 if $x->{'title'} =~ /$title_regex/ or $y and $y->{'title'} =~ /$title_regex/ or $z and $z->{'title'} =~ /$title_regex/
319 0 3 if $x->{'url'} =~ /$chap_num_regex/ || $z->{'url'} =~ /$chap_num_regex/ and scalar @$arr > 50
322 1 2 if $res_arr
329 0 1 if (defined $y->{'title'} and $y->{'title'} =~ /$title_regex/ and defined $y->{'url'} and $y->{'url'} =~ /\.html$/ and not $x->{'url'} =~ /\.html$/) { }
0 1 elsif (defined $y->{'title'} and $y->{'title'} =~ /$title_regex/ and defined $y->{'url'} and $y->{'url'} =~ /$chap_num_regex/ and not $x->{'url'} =~ /$chap_num_regex/) { }
339 1 0 if ($res_arr and defined $$res_arr[0]{'url'} and $$res_arr[0]{'url'} =~ /$chap_num_regex/)
342 0 1 if ($opt{'sort_chapter_url'}) { }
350 0 2 if $s[$i] > $s[$i + 1]
351 0 2 if $random_sort
353 1 0 if $random_sort == 0
362 0 2 if exists $self->{'content_path'}
363 0 2 if exists $self->{'content_regex'}
374 0 0 unless $r->{'content'}
398 0 0 if $r->{'content'} =~ m[]s
399 0 0 if $r->{'content'} =~ /^\s*
400 0 0 if $r->{'content'} =~ /(\x{4e0a}|\x{4e0b})\x{4e00}(\x{7ae0}|\x{9875}|\x{7bc7})/s
401 0 0 if $r->{'content'} =~ m[]s
402 0 0 if $r->{'content'} =~ /All rights reserved/s
403 0 0 if $r->{'content'} =~ m[(.+?){5,}]s
411 0 0 if $_->{'content'} =~ /(\x{4e0a}|\x{4e0b})\x{4e00}(\x{7ae0}|\x{9875}|\x{7bc7})/s
416 0 0 if $cc_n > 5 and $no_next_r->{'word_num'} > 50 or not @grep_next_r
454 0 0 if $topic->{'content'}
508 0 25 if ref $chap ne "HASH"
509 13 12 if ($chap->{'url'})
518 0 25 if ($chap->{'url'} and $rem{$chap->{'url'}} > 1) { }
525 25 0 unless $chap->{'content'} =~ /\x{6b63}\x{5728}\x{624b}\x{6253}\x{4e2d}/s
534 4 2 wantarray ? :
539 0 16 unless $base_url
540 2 14 unless $base_url =~ /^https?:/
552 4 0 if $o{'sub'}
561 4 0 unless $c
562 0 0 if exists $o{'sub'}
563 0 0 unless $c
571 0 4 if $o->{'regex'}
572 0 4 unless $o->{'path'}
578 0 4 $o->{'is_list'} ? :
580 4 0 unless defined $r->{'data'}
582 0 0 unless $o->{'sub'}
606 0 3 if $o{'min_content_word_num'}
609 0 3 if $o{'only_poster'}
612 0 3 if $o{'grep_content'}
615 0 3 if $o{'filter_content'}
617 7 0 if defined $_->{'content'}
626 0 7 if $f->{'word_num'}
636 0 0 unless defined $c
659 2 7 unless $c
689 0 0 unless $h