Branch Coverage

blib/lib/CGI/Session.pm
Criterion Covered Total %
branch 122 170 71.7


line true false branch
20 23 7 unless @args
24 1 6 if ($arg eq "-ip_match")
35 2 47 if (ref $class) { }
62 0 47 unless (defined $self)
68 36 13 unless ($dataref->{'_SESSION_ID'})
81 0 35 unless (defined $id)
105 212 0 defined $_[0]->dataref ? :
108 8 0 defined $_[0]->dataref ? :
111 8 0 defined $_[0]->dataref ? :
115 44 47 if defined $self->{'_OBJECTS'}{'driver'}
117 0 47 unless defined($self->{'_OBJECTS'}{'driver'} = $pm->new($self->{'_DRIVER_ARGS'}))
124 26 45 if defined $self->{'_OBJECTS'}{'serializer'}
131 0 36 if defined $self->{'_OBJECTS'}{'id'}
146 0 40 unless $dsn_str
158 11 21 if ($self->{'_QUERY'})
172 64 6 if (ref $self)
173 63 1 unless (defined $name)
179 1 5 if defined $name
196 0 125 unless @_
203 0 56 unless @_
225 9 75 unless $self->id
228 17 58 if not defined $self->{'_STATUS'} or $self->{'_STATUS'} == 1
230 7 51 if ($self->_test_status(2) and $self->_test_status(8))
238 14 37 if ($self->_test_status(8))
239 0 14 unless defined $driver->remove($self->id)
246 35 2 if ($self->_test_status(6))
248 0 35 unless (defined $datastr)
251 0 35 unless defined $driver->store($self->id, $datastr)
264 0 155 if ($self->_test_status(8))
270 6 149 if (@args == 0) { }
116 33 elsif (@args == 1) { }
285 6 27 if (defined $name and defined $value)
286 0 6 if ($name =~ /^_SESSION_/)
297 4 23 if defined $args{'-name'}
302 23 0 if (@args % 2 == 0)
306 0 31 if ($name =~ /^_SESSION_/)
340 0 2 if ($self->is_expired) { }
0 2 elsif (my $t = $self->expire) { }
364 0 0 unless my(@values) = $query->param($p)
365 0 0 if (@values > 1) { }
393 1 0 if (defined $params) { }
394 1 0 unless ref $params
412 0 1 if (@_ == 1) { }
420 0 1 unless ($coderef and ref $coderef and ref $coderef eq "CODE")
425 0 1 if ($dsn)
432 0 1 if (my $errmsg = $@)
437 0 1 unless ($driver_obj)
447 0 1 unless ($session)
453 0 1 unless defined $driver_obj->traverse($driver_coderef)
635 1 60 if ref $class
636 0 60 if @_ > 5
662 10 50 if (@_ == 1) { }
40 10 elsif (@_ > 1) { }
673 3 37 if (ref $read_only and ref $read_only eq "HASH")
677 3 0 if ($params->{'name'})
684 1 39 if (defined $read_only and $read_only != 1)
688 35 4 if (defined $dsn)
695 39 0 if defined $dsn_args
702 0 59 if $class->errstr
704 28 31 unless (defined $self->{'_CLAIMED_ID'})
709 0 28 if (my $errmsg = $@)
715 25 34 unless $self->{'_CLAIMED_ID'}
720 0 34 unless (defined $raw_data)
725 14 20 unless $raw_data
729 0 20 unless (defined $self->{'_DATA'})
734 0 20 unless (defined $self->{'_DATA'} and ref $self->{'_DATA'} and ref $self->{'_DATA'} eq "HASH" and defined $self->{'_DATA'}{'_SESSION_ID'})
741 7 13 if ($self->{'_DATA'}{'_SESSION_ETIME'})
742 2 5 if ($self->{'_DATA'}{'_SESSION_ATIME'} + $self->{'_DATA'}{'_SESSION_ETIME'} <= time)
752 0 18 if ($self->{'_DATA'}{'_SESSION_EXPIRE_LIST'})
754 0 0 if ($self->{'_DATA'}{'_SESSION_ATIME'} + $max_exp_interval <= time)
759 0 18 if @expired_params
763 17 1 unless (defined $read_only)
765 2 15 if ($CGI::Session::IP_MATCH)
766 1 1 unless ($self->ip_matches)
785 7 42 if (ref $query_or_sid) { }
806 123 54 unless (defined $mod_name)
809 177 0 if ($mod_name =~ /^(\w+)$/) { }
820 0 177 if ($@)
972 34 22 if (not @_) { }
20 2 elsif (@_ == 1) { }
979 1 19 if (defined $time and $time =~ /^\d$/ and $time == 0) { }
993 1 1 if ($time =~ /^\d$/ and $time == 0) { }
1019 0 29 unless defined $str
1020 4 25 if $str =~ /^[-+]?\d+$/
1033 0 25 unless (defined $koef and defined $d)