Branch Coverage

blib/lib/POE/Component/IRC/State.pm
Criterion Covered Total %
branch 178 300 59.3


line true false branch
35 4 24 unless defined $nickinfo
47 4 22 unless defined $nickinfo
56 0 0 unless defined $nickinfo
70 34 19 if ($unick eq uc_irc($self->nick_name, $map)) { }
85 0 34 if (exists $self->{'whojoiners'} and not $self->{'whojoiners'} and $self->isupport('UHNAMES')) { }
98 1 18 if (exists $self->{'NETSPLIT'}{'Users'}{$netsplit})
101 1 0 if (time - $nuser->{'stamp'} < 3600)
107 14 4 if (!exists $self->{'whojoiners'} || $self->{'whojoiners'} and not exists $self->{'STATE'}{'Nicks'}{$unick}{'Real'}) { }
132 2 29 if ($self->{'awaypoll'})
146 3 2 if ($nick eq uc_irc($self->nick_name, $map)) { }
152 2 0 if (keys %{$$self{'STATE'}{'Nicks'}{$member}{'CHANS'};} <= 0)
162 2 0 unless (keys %{$$self{'STATE'}{'Nicks'}{$nick}{'CHANS'};})
181 1 3 if _is_netsplit($msg)
183 4 0 if ($unick ne uc_irc($self->nick_name, $map))
192 1 3 if ($netsplit)
204 1 3 if $msg =~ /^\s*\S+\.[a-z]{2,} \S+\.[a-z]{2,}$/i
218 4 4 if ($unick eq uc_irc($self->nick_name, $map)) { }
224 3 1 if (keys %{$$self{'STATE'}{'Nicks'}{$member}{'CHANS'};} <= 0)
234 3 1 if (keys %{$$self{'STATE'}{'Nicks'}{$unick}{'CHANS'};} <= 0)
255 0 2 if ($unick eq $unew) { }
280 26 38 defined $_[3] ? :
284 63 1 if not $mode =~ /\+[qoah]/ or $me ne uc_irc($arg, $map)
288 1 0 if $excepts
289 1 0 if $invex
310 0 0 unless $self->_channel_exists($chan)
348 49 28 if ($uchan ne uc_irc($self->nick_name, $map)) { }
352 26 38 if (length $chanmodes->[2] and length $alwaysarg and $mode =~ /^(.[$alwaysarg]|\+[$chanmodes->[2]])/)
359 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 =~ /^-(.)/) { }
361 3 0 unless ($self->{'STATE'}{'Nicks'}{$arg}{'CHANS'}{$uchan} and $self->{'STATE'}{'Nicks'}{$arg}{'CHANS'}{$uchan} =~ /$flag/)
368 0 0 if ($self->{'STATE'}{'Nicks'}{$arg}{'CHANS'}{$uchan} =~ /$flag/)
385 8 4 unless $self->{'STATE'}{'Chans'}{$uchan}{'Mode'} =~ /$flag/
395 34 0 unless $self->{'STATE'}{'Chans'}{$uchan}{'Mode'} =~ /$flag/
400 26 38 defined $orig_arg ? :
404 49 0 if ($self->{'STATE'}{'Chans'}{$uchan}{'Mode'})
412 28 0 if (($flag) = $mode =~ /^\+(.)/) { }
0 0 elsif (($flag) = $mode =~ /^-(.)/) { }
413 28 0 unless $self->{'STATE'}{'usermode'} =~ /$flag/
447 35 0 if $data[0] =~ /^[\@=*]$/
458 35 19 if (($status) = $nick =~ /^($search+)/)
463 0 54 if ($self->isupport('UHNAMES'))
468 19 35 unless defined $status
473 35 127 if ($status =~ /\Q$prefix->{$mode}\E/ and not $existing =~ /\Q$prefix->{$mode}\E/)
478 53 1 unless length $existing and $existing =~ /$whatever/
482 0 54 if ($self->isupport('UHNAMES'))
503 72 0 if (not exists $self->{'whojoiners'} or $self->{'whojoiners'})
507 1 71 if $status =~ /\*/
510 59 13 if (exists $self->{'STATE'}{'Chans'}{$uchan})
516 35 142 if ($status =~ /\Q$prefix->{$mode}\E/ and not $existing =~ /\Q$prefix->{$mode}\E/)
521 24 35 unless $existing and $existing =~ /$whatever/
526 2 57 if ($self->{'STATE'}{'Chans'}{$uchan}{'AWAY_SYNCH'} and $unick ne uc_irc($self->nick_name, $map))
527 1 1 if ($status =~ /G/ and not $self->{'STATE'}{'Nicks'}{$unick}{'Away'}) { }
1 0 elsif ($status =~ /H/ and $self->{'STATE'}{'Nicks'}{$unick}{'Away'}) { }
535 8 51 if ($self->{'awaypoll'})
536 2 6 $status =~ /G/ ? :
550 35 13 if (exists $self->{'STATE'}{'Chans'}{$uwhat}) { }
552 0 35 if ($self->_channel_sync($chan, 'WHO')) { }
2 33 elsif ($self->{'STATE'}{'Chans'}{$uchan}{'AWAY_SYNCH'}) { }
565 13 0 unless @{$self->{'NICK_SYNCH'}{$unick};}
608 31 2 if ($self->_channel_sync($chan, 'BAN'))
683 6 68 if ($mode =~ /[^$modes->[3]]/)
688 57 17 if ($self->{'STATE'}{'Chans'}{$uchan}{'Mode'}) { }
689 25 32 unless $self->{'STATE'}{'Chans'}{$uchan}{'Mode'} =~ /$mode/
695 73 1 if defined $arg
698 33 0 if ($self->{'STATE'}{'Chans'}{$uchan}{'Mode'})
702 0 33 if ($self->_channel_sync($chan, 'MODE'))
747 0 2 unless (defined $mode)
754 0 2 unless $mode
756 2 0 if $self->{'STATE'}{'usermode'} =~ /$mode/
777 6 95 unless $self->_channel_exists($chan) and defined $self->{'CHANNEL_SYNCH'}{$uchan}
778 95 0 if $sync
781 64 93 unless $self->{'CHANNEL_SYNCH'}{$uchan}{$item}
792 143 20 if exists $self->{'STATE'}{'Nicks'}{$unick}
801 136 1 if exists $self->{'STATE'}{'Chans'}{$uchan}
812 0 8 unless $self->is_channel_member($uchan, $unick)
813 1 7 if $self->{'STATE'}{'Nicks'}{$unick}{'CHANS'}{$uchan} =~ /$flag/
825 56 10 if (defined $unick and $self->_nick_exists($unick))
842 0 58 unless (defined $nick)
850 9 49 unless $self->_nick_exists($nick)
856 49 0 if (defined $result{'User'} and defined $result{'Host'})
867 0 16 unless (defined $nick)
875 0 16 unless $self->_nick_exists($nick)
878 0 16 unless exists $user->{'User'} and exists $user->{'Host'}
885 0 11 unless (defined $nick)
892 0 11 unless $self->_nick_exists($nick)
899 0 6 unless (defined $chan)
907 0 6 unless $self->_channel_exists($chan)
914 0 4 unless (defined $nick)
922 4 0 if ($unick eq uc_irc($self->nick_name))
924 1 3 if $self->{'STATE'}{'away'}
928 0 0 unless $self->_nick_exists($nick)
929 0 0 if $self->{'STATE'}{'Nicks'}{$unick}{'Away'}
936 0 2 unless (defined $nick)
944 2 0 unless $self->_nick_exists($nick)
946 0 0 if $self->{'STATE'}{'Nicks'}{$unick}{'IRCop'}
953 0 8 unless (defined $chan and defined $mode)
962 0 8 unless $self->_channel_exists($chan) and $mode
965 2 6 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Mode'} and $self->{'STATE'}{'Chans'}{$uchan}{'Mode'} =~ /$mode/)
976 0 0 unless (defined $chan)
987 0 2 unless (defined $chan)
995 0 2 unless $self->_channel_exists($chan)
996 0 2 unless exists $self->{'STATE'}{'Chans'}{$uchan}{'CreationTime'}
1004 0 3 unless (defined $chan)
1012 0 3 unless $self->_channel_exists($chan)
1014 1 2 if ($self->is_channel_mode_set($chan, 'l') and defined $self->{'STATE'}{'Chans'}{$uchan}{'ModeArgs'}{'l'})
1025 0 2 unless (defined $chan)
1032 0 2 unless $self->_channel_exists($chan)
1034 0 2 if ($self->is_channel_mode_set($chan, 'k') and defined $self->{'STATE'}{'Chans'}{$uchan}{'ModeArgs'}{'k'})
1045 0 0 unless (defined $chan)
1052 0 0 unless $self->_channel_exists($chan)
1055 0 0 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Mode'})
1058 0 0 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'ModeArgs'})
1069 0 11 unless (defined $chan and defined $nick)
1078 0 11 unless $self->_channel_exists($chan) and $self->_nick_exists($nick)
1079 11 0 if defined $self->{'STATE'}{'Chans'}{$uchan}{'Nicks'}{$unick}
1086 0 4 unless (defined $chan and defined $nick)
1091 1 3 if $self->_nick_has_channel_mode($chan, $nick, 'o')
1098 0 2 unless (defined $chan and defined $nick)
1103 0 2 if $self->_nick_has_channel_mode($chan, $nick, 'v')
1110 0 2 unless (defined $chan and defined $nick)
1115 0 2 if $self->_nick_has_channel_mode($chan, $nick, 'h')
1122 0 0 unless (defined $chan and defined $nick)
1127 0 0 if $self->_nick_has_channel_mode($chan, $nick, 'q')
1134 0 0 unless (defined $chan and defined $nick)
1139 0 0 if $self->_nick_has_channel_mode($chan, $nick, 'a')
1146 0 2 unless (defined $chan and defined $mask)
1155 0 2 unless $self->_channel_exists($chan)
1164 2 1 if uc_irc($self->nick_long_form($nick)) =~ /^$mask$/
1174 0 0 unless (defined $chan)
1183 0 0 unless $self->_channel_exists($chan)
1185 0 0 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Lists'}{'b'})
1195 0 0 unless (defined $chan)
1205 0 0 unless $self->_channel_exists($chan)
1207 0 0 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Lists'}{$excepts})
1217 0 0 unless (defined $chan)
1227 0 0 unless $self->_channel_exists($chan)
1229 0 0 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Lists'}{$invex})
1239 0 2 unless (defined $chan)
1248 0 2 unless $self->_channel_exists($chan)
1250 1 1 if (defined $self->{'STATE'}{'Chans'}{$uchan}{'Topic'})
1260 0 0 unless (defined $chan)
1268 0 0 unless $self->_channel_exists($chan)
1275 0 0 unless (defined $chan and defined $nick)
1284 0 0 unless $self->is_channel_member($chan, $nick)