Branch Coverage

blib/lib/POE/Component/IRC/State.pm
Criterion Covered Total %
branch 177 300 59.0


line true false branch
34 4 24 unless defined $nickinfo
46 4 22 unless defined $nickinfo
55 0 0 unless defined $nickinfo
69 34 19 if ($unick eq uc_irc($self->nick_name, $map)) { }
84 0 34 if (exists $self->{'whojoiners'} and not $self->{'whojoiners'} and $self->isupport('UHNAMES')) { }
97 1 18 if (exists $self->{'NETSPLIT'}{'Users'}{$netsplit})
100 1 0 if (time - $nuser->{'stamp'} < 3600)
106 15 3 if (!exists $self->{'whojoiners'} || $self->{'whojoiners'} and not exists $self->{'STATE'}{'Nicks'}{$unick}{'Real'}) { }
131 2 30 if ($self->{'awaypoll'})
145 3 2 if ($nick eq uc_irc($self->nick_name, $map)) { }
151 2 0 if (keys %{$$self{"STATE"}{"Nicks"}{$member}{"CHANS"};} <= 0)
161 2 0 unless (keys %{$$self{"STATE"}{"Nicks"}{$nick}{"CHANS"};})
180 1 2 if _is_netsplit($msg)
182 3 0 if ($unick ne uc_irc($self->nick_name, $map))
191 1 2 if ($netsplit)
203 1 2 if $msg =~ /^\s*\S+\.[a-z]{2,} \S+\.[a-z]{2,}$/i
217 4 4 if ($unick eq uc_irc($self->nick_name, $map)) { }
223 3 1 if (keys %{$$self{"STATE"}{"Nicks"}{$member}{"CHANS"};} <= 0)
233 3 1 if (keys %{$$self{"STATE"}{"Nicks"}{$unick}{"CHANS"};} <= 0)
254 0 2 if ($unick eq $unew) { }
279 26 38 defined $_[3] ? :
283 63 1 if not $mode =~ /\+[qoah]/ or $me ne uc_irc($arg, $map)
287 1 0 if $excepts
288 1 0 if $invex
309 0 0 unless $self->_channel_exists($chan)
347 49 28 if ($uchan ne uc_irc($self->nick_name, $map)) { }
351 26 38 if (length $chanmodes->[2] and length $alwaysarg and $mode =~ /^(.[$alwaysarg]|\+[$chanmodes->[2]])/)
358 3 61 if (length $statmodes and ($flag) = $mode =~ /\+([$statmodes])/) { }
0 61 elsif (length $statmodes and ($flag) = $mode =~ /-([$statmodes])/) { }
5 56 elsif (length $chanmodes->[0] and ($flag) = $mode =~ /\+([$chanmodes->[0]])/) { }
4 52 elsif (length $chanmodes->[0] and ($flag) = $mode =~ /-([$chanmodes->[0]])/) { }
12 40 elsif (length $chanmodes->[3] and ($flag) = $mode =~ /\+([^$chanmodes->[3]])/) { }
4 36 elsif (length $chanmodes->[3] and ($flag) = $mode =~ /-([^$chanmodes->[3]])/) { }
34 2 elsif (($flag) = $mode =~ /^\+(.)/) { }
2 0 elsif (($flag) = $mode =~ /^-(.)/) { }
360 3 0 unless ($self->{'STATE'}{'Nicks'}{$arg}{'CHANS'}{$uchan} and $self->{'STATE'}{'Nicks'}{$arg}{'CHANS'}{$uchan} =~ /$flag/)
367 0 0 if ($self->{'STATE'}{'Nicks'}{$arg}{'CHANS'}{$uchan} =~ /$flag/)
384 8 4 unless $self->{'STATE'}{'Chans'}{$uchan}{'Mode'} =~ /$flag/
394 34 0 unless $self->{'STATE'}{'Chans'}{$uchan}{'Mode'} =~ /$flag/
399 26 38 defined $orig_arg ? :
403 49 0 if ($self->{'STATE'}{'Chans'}{$uchan}{'Mode'})
411 28 0 if (($flag) = $mode =~ /^\+(.)/) { }
0 0 elsif (($flag) = $mode =~ /^-(.)/) { }
412 28 0 unless $self->{'STATE'}{'usermode'} =~ /$flag/
446 35 0 if $data[0] =~ /^[\@=*]$/
457 35 19 if (($status) = $nick =~ /^($search+)/)
462 0 54 if ($self->isupport("UHNAMES"))
467 19 35 unless defined $status
472 35 127 if ($status =~ /\Q$prefix->{$mode}\E/ and not $existing =~ /\Q$prefix->{$mode}\E/)
477 53 1 unless length $existing and $existing =~ /$whatever/
481 0 54 if ($self->isupport("UHNAMES"))
502 76 0 if (not exists $self->{'whojoiners'} or $self->{'whojoiners'})
506 1 75 if $status =~ /\*/
509 61 15 if (exists $self->{'STATE'}{'Chans'}{$uchan})
515 36 147 if ($status =~ /\Q$prefix->{$mode}\E/ and not $existing =~ /\Q$prefix->{$mode}\E/)
520 25 36 unless $existing and $existing =~ /$whatever/
525 2 59 if ($self->{'STATE'}{'Chans'}{$uchan}{'AWAY_SYNCH'} and $unick ne uc_irc($self->nick_name, $map))
526 1 1 if ($status =~ /G/ and not $self->{'STATE'}{'Nicks'}{$unick}{'Away'}) { }
1 0 elsif ($status =~ /H/ and $self->{'STATE'}{'Nicks'}{$unick}{'Away'}) { }
534 9 52 if ($self->{'awaypoll'})
535 2 7 $status =~ /G/ ? :
549 35 15 if (exists $self->{'STATE'}{'Chans'}{$uwhat}) { }
551 0 35 if ($self->_channel_sync($chan, 'WHO')) { }
2 33 elsif ($self->{'STATE'}{'Chans'}{$uchan}{'AWAY_SYNCH'}) { }
564 15 0 unless @{$self->{'NICK_SYNCH'}{$unick};}
607 32 1 if ($self->_channel_sync($chan, "BAN"))
682 6 68 if ($mode =~ /[^$modes->[3]]/)
687 57 17 if ($self->{'STATE'}{'Chans'}{$uchan}{'Mode'}) { }
688 25 32 unless $self->{'STATE'}{'Chans'}{$uchan}{'Mode'} =~ /$mode/
694 73 1 if defined $arg
697 33 0 if ($self->{'STATE'}{'Chans'}{$uchan}{'Mode'})
701 0 33 if ($self->_channel_sync($chan, "MODE"))
746 0 2 unless (defined $mode)
753 0 2 unless $mode
755 2 0 if $self->{'STATE'}{'usermode'} =~ /$mode/
776 5 96 unless $self->_channel_exists($chan) and defined $self->{'CHANNEL_SYNCH'}{$uchan}
777 96 0 if $sync
780 64 96 unless $self->{'CHANNEL_SYNCH'}{$uchan}{$item}
791 142 20 if exists $self->{'STATE'}{'Nicks'}{$unick}
800 137 0 if exists $self->{'STATE'}{'Chans'}{$uchan}
811 0 8 unless $self->is_channel_member($uchan, $unick)
812 1 7 if $self->{'STATE'}{'Nicks'}{$unick}{'CHANS'}{$uchan} =~ /$flag/
824 56 10 if (defined $unick and $self->_nick_exists($unick))
841 0 58 unless (defined $nick)
849 9 49 unless $self->_nick_exists($nick)
855 49 0 if (defined $result{'User'} and defined $result{'Host'})
866 0 16 unless (defined $nick)
874 0 16 unless $self->_nick_exists($nick)
877 0 16 unless exists $user->{'User'} and exists $user->{'Host'}
884 0 10 unless (defined $nick)
891 0 10 unless $self->_nick_exists($nick)
898 0 6 unless (defined $chan)
906 0 6 unless $self->_channel_exists($chan)
913 0 4 unless (defined $nick)
921 4 0 if ($unick eq uc_irc($self->nick_name))
923 1 3 if $self->{'STATE'}{'away'}
927 0 0 unless $self->_nick_exists($nick)
928 0 0 if $self->{'STATE'}{'Nicks'}{$unick}{'Away'}
935 0 2 unless (defined $nick)
943 2 0 unless $self->_nick_exists($nick)
945 0 0 if $self->{'STATE'}{'Nicks'}{$unick}{'IRCop'}
952 0 8 unless (defined $chan and defined $mode)
961 0 8 unless $self->_channel_exists($chan) and $mode
964 2 6 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Mode'} and $self->{'STATE'}{'Chans'}{$uchan}{'Mode'} =~ /$mode/)
975 0 0 unless (defined $chan)
986 0 2 unless (defined $chan)
994 0 2 unless $self->_channel_exists($chan)
995 0 2 unless exists $self->{'STATE'}{'Chans'}{$uchan}{'CreationTime'}
1003 0 3 unless (defined $chan)
1011 0 3 unless $self->_channel_exists($chan)
1013 1 2 if ($self->is_channel_mode_set($chan, "l") and defined $self->{'STATE'}{'Chans'}{$uchan}{'ModeArgs'}{'l'})
1024 0 2 unless (defined $chan)
1031 0 2 unless $self->_channel_exists($chan)
1033 0 2 if ($self->is_channel_mode_set($chan, "k") and defined $self->{'STATE'}{'Chans'}{$uchan}{'ModeArgs'}{'k'})
1044 0 0 unless (defined $chan)
1051 0 0 unless $self->_channel_exists($chan)
1054 0 0 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Mode'})
1057 0 0 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'ModeArgs'})
1068 0 11 unless (defined $chan and defined $nick)
1077 0 11 unless $self->_channel_exists($chan) and $self->_nick_exists($nick)
1078 11 0 if defined $self->{'STATE'}{'Chans'}{$uchan}{'Nicks'}{$unick}
1085 0 4 unless (defined $chan and defined $nick)
1090 1 3 if $self->_nick_has_channel_mode($chan, $nick, "o")
1097 0 2 unless (defined $chan and defined $nick)
1102 0 2 if $self->_nick_has_channel_mode($chan, $nick, "v")
1109 0 2 unless (defined $chan and defined $nick)
1114 0 2 if $self->_nick_has_channel_mode($chan, $nick, "h")
1121 0 0 unless (defined $chan and defined $nick)
1126 0 0 if $self->_nick_has_channel_mode($chan, $nick, "q")
1133 0 0 unless (defined $chan and defined $nick)
1138 0 0 if $self->_nick_has_channel_mode($chan, $nick, "a")
1145 0 2 unless (defined $chan and defined $mask)
1154 0 2 unless $self->_channel_exists($chan)
1163 2 1 if uc_irc($self->nick_long_form($nick)) =~ /^$mask$/
1173 0 0 unless (defined $chan)
1182 0 0 unless $self->_channel_exists($chan)
1184 0 0 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Lists'}{'b'})
1194 0 0 unless (defined $chan)
1204 0 0 unless $self->_channel_exists($chan)
1206 0 0 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Lists'}{$excepts})
1216 0 0 unless (defined $chan)
1226 0 0 unless $self->_channel_exists($chan)
1228 0 0 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Lists'}{$invex})
1238 0 2 unless (defined $chan)
1247 0 2 unless $self->_channel_exists($chan)
1249 1 1 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Topic'})
1259 0 0 unless (defined $chan)
1267 0 0 unless $self->_channel_exists($chan)
1274 0 0 unless (defined $chan and defined $nick)
1283 0 0 unless $self->is_channel_member($chan, $nick)