diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java
index 77718d8b0..3d08edf5b 100644
--- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java
+++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java
@@ -3059,17 +3059,20 @@ public void loadSkin()
*/
public void chatRoomPropertyChanged(ChatRoomMemberPropertyChangeEvent event)
{
- String message = GuiActivator.getResources().getI18NString(
- "service.gui.CHAT_NICKNAME_CHANGE",
- new String[]{
- (String) event.getOldValue(),
- (String) event.getNewValue()
- });
- this.conversationPanel
- .appendMessageToEnd(
+ if (ChatRoomMemberPropertyChangeEvent.MEMBER_NICKNAME.equals(event
+ .getPropertyName()))
+ {
+ String message =
+ GuiActivator.getResources().getI18NString(
+ "service.gui.CHAT_NICKNAME_CHANGE",
+ new String[]
+ { (String) event.getOldValue(),
+ (String) event.getNewValue() });
+ this.conversationPanel.appendMessageToEnd(
"
"
- + StringEscapeUtils.escapeHtml4(message) + "
",
+ + StringEscapeUtils.escapeHtml4(message) + "",
ChatHtmlUtils.HTML_CONTENT_TYPE);
+ }
}
/**
diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatContactCellRenderer.java b/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatContactCellRenderer.java
index 936c05ecc..7264b6b1b 100644
--- a/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatContactCellRenderer.java
+++ b/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatContactCellRenderer.java
@@ -91,9 +91,18 @@ public Component getListCellRendererComponent( JList list,
if(memberRole != null)
this.nameLabel.setIcon(
ChatContactRoleIcon.getRoleIcon(memberRole));
- }
- if (contactForegroundColor != null)
+ // FIXME Make solution more generic by querying color from presence
+ // status instance.
+ final int presenceStatus = member.getPresenceStatus().getStatus();
+ if (presenceStatus >= PresenceStatus.AVAILABLE_THRESHOLD) {
+ this.nameLabel.setForeground(Color.BLACK);
+ }
+ else if (presenceStatus >= PresenceStatus.AWAY_THRESHOLD) {
+ this.nameLabel.setForeground(Color.GRAY);
+ }
+ }
+ else if (contactForegroundColor != null)
this.nameLabel.setForeground(contactForegroundColor);
this.setBorder(BorderFactory.createEmptyBorder(1, 5, 1, 1));
diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/DefaultContactList.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/DefaultContactList.java
index 41d858be3..98a0a9389 100644
--- a/src/net/java/sip/communicator/impl/gui/main/contactlist/DefaultContactList.java
+++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/DefaultContactList.java
@@ -197,6 +197,9 @@ else if (element instanceof ChatContact>)
tip.addLine(ChatContactRoleIcon.getRoleIcon(member.getRole()),
roleName);
+ // FIXME Needs i18n status name
+ PresenceStatus status = member.getPresenceStatus();
+ tip.addLine(null, status.getStatusName());
}
}
diff --git a/src/net/java/sip/communicator/impl/msghistory/MessageHistoryServiceImpl.java b/src/net/java/sip/communicator/impl/msghistory/MessageHistoryServiceImpl.java
index 1b7354792..605b5dbf6 100644
--- a/src/net/java/sip/communicator/impl/msghistory/MessageHistoryServiceImpl.java
+++ b/src/net/java/sip/communicator/impl/msghistory/MessageHistoryServiceImpl.java
@@ -6,8 +6,7 @@
*/
package net.java.sip.communicator.impl.msghistory;
-import static
- net.java.sip.communicator.service.history.HistoryService.DATE_FORMAT;
+import static net.java.sip.communicator.service.history.HistoryService.*;
import java.beans.*;
import java.io.*;
@@ -24,9 +23,10 @@
import net.java.sip.communicator.service.msghistory.event.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.protocol.event.*;
+import net.java.sip.communicator.service.protocol.globalstatus.*;
import net.java.sip.communicator.util.*;
-
import net.java.sip.communicator.util.account.*;
+
import org.jitsi.service.configuration.*;
import org.osgi.framework.*;
@@ -2720,6 +2720,13 @@ public void setConferenceDescription(ConferenceDescription cd)
{
return;
}
+
+ @Override
+ public PresenceStatus getPresenceStatus()
+ {
+ // FIXME is this correct response?
+ return GlobalStatusEnum.ONLINE;
+ }
}
/**
diff --git a/src/net/java/sip/communicator/impl/protocol/irc/ChannelManager.java b/src/net/java/sip/communicator/impl/protocol/irc/ChannelManager.java
index 8ca037431..168b92c3b 100644
--- a/src/net/java/sip/communicator/impl/protocol/irc/ChannelManager.java
+++ b/src/net/java/sip/communicator/impl/protocol/irc/ChannelManager.java
@@ -451,7 +451,7 @@ private void prepareChatRoom(final ChatRoomIrcImpl chatRoom,
final ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(this.provider, chatRoom,
user.getNick(), user.getIdent(), user.getHostname(),
- ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
ChatRoomMemberRole role;
for (final IRCUserStatus status : channel.getStatusesForUser(user))
{
@@ -790,11 +790,26 @@ private final class ChatRoomListener
*/
private static final int IRC_ERR_NOTONCHANNEL = 442;
+ /**
+ * IRC reply code for WHO reply entry for an individual user.
+ */
+ private static final int IRC_RPL_WHOREPLY = 352;
+
+ /**
+ * IRC reply code for end of WHO reply list.
+ */
+ private static final int IRC_RPL_ENDOFWHO = 315;
+
/**
* Chat room for which this listener is working.
*/
private final ChatRoomIrcImpl chatroom;
+ /**
+ * Periodic task timer.
+ */
+ private final Timer presenceTaskTimer;
+
/**
* Constructor. Instantiate listener for the provided chat room.
*
@@ -808,6 +823,27 @@ private ChatRoomListener(final ChatRoomIrcImpl chatroom)
throw new IllegalArgumentException("chatroom cannot be null");
}
this.chatroom = chatroom;
+ this.presenceTaskTimer = createPeriodicPresenceWatcher();
+ }
+
+ /**
+ * Create periodic task for updating channel presence statuses.
+ */
+ private Timer createPeriodicPresenceWatcher() {
+ final Timer presence = new Timer();
+ final TimerTask task = new TimerTask()
+ {
+ @Override
+ public void run()
+ {
+ irc.rawMessage("WHO " + chatroom.getIdentifier());
+ }
+ };
+ // FIXME create constants
+ presence.schedule(task, 1000L, 60000L);
+ LOGGER.debug("Scheduled periodic task for querying member presence "
+ + "for channel " + this.chatroom.getIdentifier());
+ return presence;
}
/**
@@ -858,7 +894,7 @@ public void onChannelJoin(final ChanJoinMessage msg)
final ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(ChannelManager.this.provider,
this.chatroom, user, ident, host,
- ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
this.chatroom.fireMemberPresenceEvent(member, null,
ChatRoomMemberPresenceChangeEvent.MEMBER_JOINED, null);
}
@@ -951,11 +987,48 @@ public void onServerNumericMessage(final ServerNumericMessage msg)
}
break;
+ case IRC_RPL_WHOREPLY:
+ // FIXME filter out replies not for this channel
+ final String[] messageComponents = msg.getText().split(" ");
+ final String nick = messageComponents[4];
+ final ChatRoomMemberIrcImpl member =
+ (ChatRoomMemberIrcImpl) this.chatroom
+ .getChatRoomMember(nick);
+ if (member != null)
+ {
+ final IrcStatusEnum status =
+ determineStatus(messageComponents[5]);
+ final IrcStatusEnum previous =
+ member.setPresenceStatus(status);
+ final ChatRoomMemberPropertyChangeEvent presenceEvent =
+ new ChatRoomMemberPropertyChangeEvent(member,
+ this.chatroom,
+ ChatRoomMemberPropertyChangeEvent.MEMBER_PRESENCE,
+ previous, status);
+ this.chatroom.fireMemberPropertyChangeEvent(presenceEvent);
+ }
+ break;
+
default:
break;
}
}
+ /**
+ * Determine the presence status by the code in the IRC WHO reply.
+ *
+ * @param presenceReply presence code
+ * @return returns corresponding IrcStatusEnum instance
+ */
+ private IrcStatusEnum determineStatus(final String presenceReply)
+ {
+ if (presenceReply != null && presenceReply.startsWith("G"))
+ {
+ return IrcStatusEnum.AWAY;
+ }
+ return IrcStatusEnum.ONLINE;
+ }
+
/**
* Event in case of channel kick.
*
@@ -1009,9 +1082,12 @@ public void onChannelKick(final ChannelKick msg)
@Override
public void onUserQuit(final QuitMessage msg)
{
- String user = msg.getSource().getNick();
- super.onUserQuit(msg);
- if (!localUser(user))
+ final String user = msg.getSource().getNick();
+ if (localUser(user))
+ {
+ this.presenceTaskTimer.cancel();
+ }
+ else
{
final ChatRoomMember member =
this.chatroom.getChatRoomMember(user);
@@ -1022,6 +1098,18 @@ public void onUserQuit(final QuitMessage msg)
msg.getQuitMsg());
}
}
+ super.onUserQuit(msg);
+ }
+
+ /**
+ * Event in case of error. Cancel running timer then do the regular
+ * onError stuff.
+ */
+ @Override
+ public void onError(ErrorMessage msg)
+ {
+ this.presenceTaskTimer.cancel();
+ super.onError(msg);
}
/**
@@ -1071,11 +1159,12 @@ public void onChannelMessage(final ChannelPrivMsg msg)
final MessageIrcImpl message =
MessageIrcImpl.newMessageFromIRC(msg.getText());
+ // FIXME why create a new instance?
final ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(ChannelManager.this.provider,
this.chatroom, msg.getSource().getNick(), msg.getSource()
.getIdent(), msg.getSource().getHostname(),
- ChatRoomMemberRole.MEMBER);
+ ChatRoomMemberRole.MEMBER, IrcStatusEnum.ONLINE);
this.chatroom.fireMessageReceivedEvent(message, member, new Date(),
ChatRoomMessageReceivedEvent.CONVERSATION_MESSAGE_RECEIVED);
}
@@ -1094,10 +1183,12 @@ public void onChannelAction(final ChannelActionMsg msg)
}
String userNick = msg.getSource().getNick();
+ // FIXME why create a new instance?
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(ChannelManager.this.provider,
this.chatroom, userNick, msg.getSource().getIdent(), msg
- .getSource().getHostname(), ChatRoomMemberRole.MEMBER);
+ .getSource().getHostname(), ChatRoomMemberRole.MEMBER,
+ IrcStatusEnum.ONLINE);
MessageIrcImpl message =
MessageIrcImpl.newActionFromIRC(msg.getText());
this.chatroom.fireMessageReceivedEvent(message, member, new Date(),
@@ -1118,10 +1209,12 @@ public void onChannelNotice(final ChannelNotice msg)
}
final String userNick = msg.getSource().getNick();
+ // FIXME why create a new instance?
final ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(ChannelManager.this.provider,
this.chatroom, userNick, msg.getSource().getIdent(), msg
- .getSource().getHostname(), ChatRoomMemberRole.MEMBER);
+ .getSource().getHostname(), ChatRoomMemberRole.MEMBER,
+ IrcStatusEnum.ONLINE);
final MessageIrcImpl message =
MessageIrcImpl.newNoticeFromIRC(member, msg.getText());
this.chatroom.fireMessageReceivedEvent(message, member, new Date(),
@@ -1133,6 +1226,7 @@ public void onChannelNotice(final ChannelNotice msg)
*/
private void leaveChatRoom()
{
+ this.presenceTaskTimer.cancel();
this.irc.deleteListener(this);
ChannelManager.this.joined.remove(this.chatroom.getIdentifier());
LOGGER.debug("Leaving chat room " + this.chatroom.getIdentifier()
@@ -1348,7 +1442,7 @@ private ChatRoomMemberIrcImpl extractChatRoomMember(
member =
new ChatRoomMemberIrcImpl(ChannelManager.this.provider,
this.chatroom, "", "", "",
- ChatRoomMemberRole.ADMINISTRATOR);
+ ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE);
}
else if (source instanceof IRCUser)
{
diff --git a/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomMemberIrcImpl.java b/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomMemberIrcImpl.java
index 19a9472f8..66f9bd879 100644
--- a/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomMemberIrcImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomMemberIrcImpl.java
@@ -58,6 +58,11 @@ public class ChatRoomMemberIrcImpl
private final SortedSet roles =
new TreeSet();
+ /**
+ * Member's presence status in the chat room.
+ */
+ private IrcStatusEnum status;
+
/**
* Creates an instance of ChatRoomMemberIrcImpl, by specifying the
* protocol provider, the corresponding chat room, where this member is
@@ -71,12 +76,14 @@ public class ChatRoomMemberIrcImpl
* @param ident ident of member
* @param hostname host name of member
* @param chatRoomMemberRole the role that this member has in the
+ * @param status current presence status
* corresponding chat room
*/
public ChatRoomMemberIrcImpl(
final ProtocolProviderServiceIrcImpl parentProvider,
final ChatRoom chatRoom, final String contactID, final String ident,
- final String hostname, final ChatRoomMemberRole chatRoomMemberRole)
+ final String hostname, final ChatRoomMemberRole chatRoomMemberRole,
+ final IrcStatusEnum status)
{
if (parentProvider == null)
{
@@ -110,6 +117,11 @@ public ChatRoomMemberIrcImpl(
throw new IllegalArgumentException("member role cannot be null");
}
this.roles.add(chatRoomMemberRole);
+ if (status == null)
+ {
+ throw new IllegalArgumentException("status cannot be null");
+ }
+ this.status = status;
}
/**
@@ -298,4 +310,27 @@ public boolean equals(final Object obj)
return false;
return true;
}
+
+ /**
+ * Return the chat room member's most recent presence status.
+ *
+ * @return returns the most recent presence status
+ */
+ @Override
+ public PresenceStatus getPresenceStatus()
+ {
+ return this.status;
+ }
+
+ /**
+ * Set a new presence status.
+ *
+ * @param status the new presence status
+ */
+ IrcStatusEnum setPresenceStatus(final IrcStatusEnum status)
+ {
+ final IrcStatusEnum previous = this.status;
+ this.status = status;
+ return previous;
+ }
}
diff --git a/src/net/java/sip/communicator/impl/protocol/irc/OperationSetMultiUserChatIrcImpl.java b/src/net/java/sip/communicator/impl/protocol/irc/OperationSetMultiUserChatIrcImpl.java
index 4ee475548..8fc7c1919 100644
--- a/src/net/java/sip/communicator/impl/protocol/irc/OperationSetMultiUserChatIrcImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/irc/OperationSetMultiUserChatIrcImpl.java
@@ -362,7 +362,7 @@ protected ChatRoomMemberIrcImpl findSystemMember()
return new ChatRoomMemberIrcImpl(ircProvider, serverChatRoom,
ircProvider.getAccountID().getService(), "", ircProvider
.getAccountID().getServerAddress(),
- ChatRoomMemberRole.GUEST);
+ ChatRoomMemberRole.GUEST, IrcStatusEnum.ONLINE);
}
}
diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/ChatRoomMemberJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/ChatRoomMemberJabberImpl.java
index 22916c51c..ca91a4df5 100644
--- a/src/net/java/sip/communicator/impl/protocol/jabber/ChatRoomMemberJabberImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/jabber/ChatRoomMemberJabberImpl.java
@@ -8,6 +8,7 @@
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.protocol.jabber.*;
+import net.java.sip.communicator.service.protocol.jabberconstants.*;
import org.jivesoftware.smack.util.*;
import org.jivesoftware.smackx.muc.*;
@@ -250,4 +251,17 @@ public void setContact(Contact contact)
{
this.contact = contact;
}
+
+ /**
+ * Current presence status of chat room member.
+ *
+ * @return returns current presence status
+ */
+ @Override
+ public PresenceStatus getPresenceStatus()
+ {
+ // FIXME implement accurate status for chat room member
+ return ((ProtocolProviderServiceJabberImpl) getProtocolProvider())
+ .getJabberStatusEnum().getStatus(JabberStatusEnum.AVAILABLE);
+ }
}
diff --git a/src/net/java/sip/communicator/impl/protocol/mock/MockChatRoomMember.java b/src/net/java/sip/communicator/impl/protocol/mock/MockChatRoomMember.java
index cba9dbe1f..4c45603f4 100644
--- a/src/net/java/sip/communicator/impl/protocol/mock/MockChatRoomMember.java
+++ b/src/net/java/sip/communicator/impl/protocol/mock/MockChatRoomMember.java
@@ -134,4 +134,14 @@ public Contact getContact()
{
return contact;
}
+
+ /**
+ * Returns status for fully available mock chat room member.
+ */
+ @Override
+ public PresenceStatus getPresenceStatus()
+ {
+ // mock fully available
+ return MockStatusEnum.MOCK_STATUS_100;
+ }
}
diff --git a/src/net/java/sip/communicator/service/protocol/ChatRoomMember.java b/src/net/java/sip/communicator/service/protocol/ChatRoomMember.java
index 82fac370a..991f4bed9 100644
--- a/src/net/java/sip/communicator/service/protocol/ChatRoomMember.java
+++ b/src/net/java/sip/communicator/service/protocol/ChatRoomMember.java
@@ -89,4 +89,15 @@ public interface ChatRoomMember
* to set for this member in its containing chat room.
*/
public void setRole(ChatRoomMemberRole role);
+
+ /**
+ * Returns the status of the chat room member as per the last status update
+ * we've received for it. Note that this method is not to perform any
+ * network operations and will simply return the status received in the last
+ * status update message.
+ *
+ * @return the PresenceStatus that we've received in the last status update
+ * pertaining to this contact.
+ */
+ public PresenceStatus getPresenceStatus();
}
diff --git a/src/net/java/sip/communicator/service/protocol/event/ChatRoomMemberPropertyChangeEvent.java b/src/net/java/sip/communicator/service/protocol/event/ChatRoomMemberPropertyChangeEvent.java
index f42924d84..456ec4484 100644
--- a/src/net/java/sip/communicator/service/protocol/event/ChatRoomMemberPropertyChangeEvent.java
+++ b/src/net/java/sip/communicator/service/protocol/event/ChatRoomMemberPropertyChangeEvent.java
@@ -30,6 +30,11 @@ public class ChatRoomMemberPropertyChangeEvent
*/
public static final String MEMBER_NICKNAME = "MemberNickname";
+ /**
+ * The presence status of the ChatRoomMember property.
+ */
+ public static final String MEMBER_PRESENCE = "MemberPresence";
+
/**
* The ChatRoom, to which the corresponding member belongs.
*/
diff --git a/test/net/java/sip/communicator/impl/protocol/irc/ChatRoomMemberIrcImplTest.java b/test/net/java/sip/communicator/impl/protocol/irc/ChatRoomMemberIrcImplTest.java
index 39af2d922..110a8f21f 100644
--- a/test/net/java/sip/communicator/impl/protocol/irc/ChatRoomMemberIrcImplTest.java
+++ b/test/net/java/sip/communicator/impl/protocol/irc/ChatRoomMemberIrcImplTest.java
@@ -20,7 +20,8 @@ public void testConstructorNullProvider()
try
{
new ChatRoomMemberIrcImpl(null, chatroom, "user", "user",
- "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "host.name", ChatRoomMemberRole.SILENT_MEMBER,
+ IrcStatusEnum.ONLINE);
Assert.fail("should throw IAE for parent provider instance");
}
catch (IllegalArgumentException e)
@@ -36,7 +37,8 @@ public void testConstructorNullChatRoom()
try
{
new ChatRoomMemberIrcImpl(provider, null, "user", "user",
- "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "host.name", ChatRoomMemberRole.SILENT_MEMBER,
+ IrcStatusEnum.ONLINE);
Assert.fail("should throw IAE for ChatRoom instance");
}
catch (IllegalArgumentException e)
@@ -53,7 +55,8 @@ public void testConstructorNullContactId()
try
{
new ChatRoomMemberIrcImpl(provider, chatroom, null, "user",
- "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "host.name", ChatRoomMemberRole.SILENT_MEMBER,
+ IrcStatusEnum.ONLINE);
Assert.fail("should throw IAE for ChatRoom instance");
}
catch (IllegalArgumentException e)
@@ -70,7 +73,8 @@ public void testConstructorNullIdent()
try
{
new ChatRoomMemberIrcImpl(provider, chatroom, "user", null,
- "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "host.name", ChatRoomMemberRole.SILENT_MEMBER,
+ IrcStatusEnum.ONLINE);
Assert.fail("should throw IAE for ChatRoom instance");
}
catch (IllegalArgumentException e)
@@ -87,7 +91,7 @@ public void testConstructorNullHostname()
try
{
new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", null,
- ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
Assert.fail("should throw IAE for ChatRoom instance");
}
catch (IllegalArgumentException e)
@@ -104,7 +108,7 @@ public void testConstructorNullRole()
try
{
new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user",
- "host.name", null);
+ "host.name", null, IrcStatusEnum.ONLINE);
Assert.fail("should throw IAE for ChatRoom instance");
}
catch (IllegalArgumentException e)
@@ -119,7 +123,8 @@ public void testConstructorSuccessful()
ProtocolProviderServiceIrcImpl provider =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
Assert.assertNotNull(new ChatRoomMemberIrcImpl(provider, chatroom,
- "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER));
+ "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER,
+ IrcStatusEnum.ONLINE));
}
public void testCheckGetters()
@@ -127,8 +132,10 @@ public void testCheckGetters()
ChatRoom chatroom = EasyMock.createMock(ChatRoom.class);
ProtocolProviderServiceIrcImpl provider =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
- ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom,
- "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberIrcImpl member =
+ new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user",
+ "host.name", ChatRoomMemberRole.SILENT_MEMBER,
+ IrcStatusEnum.ONLINE);
Assert.assertEquals(provider, member.getProtocolProvider());
Assert.assertEquals(chatroom, member.getChatRoom());
Assert.assertEquals("user", member.getContactAddress());
@@ -143,7 +150,8 @@ public void testNameNull()
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user",
- "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "host.name", ChatRoomMemberRole.SILENT_MEMBER,
+ IrcStatusEnum.ONLINE);
Assert.assertEquals("user", member.getContactAddress());
Assert.assertEquals("user", member.getName());
try
@@ -162,8 +170,10 @@ public void testNameChange()
ChatRoom chatroom = EasyMock.createMock(ChatRoom.class);
ProtocolProviderServiceIrcImpl provider =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
- ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom,
- "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberIrcImpl member =
+ new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user",
+ "host.name", ChatRoomMemberRole.SILENT_MEMBER,
+ IrcStatusEnum.ONLINE);
Assert.assertEquals("user", member.getContactAddress());
Assert.assertEquals("user", member.getName());
member.setName("myNewName");
@@ -178,7 +188,7 @@ public void testRoleNull()
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name",
- ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
member.setRole(null);
}
@@ -187,8 +197,10 @@ public void testRoleUnchange()
ChatRoom chatroom = EasyMock.createMock(ChatRoom.class);
ProtocolProviderServiceIrcImpl provider =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
- ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom,
- "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberIrcImpl member =
+ new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user",
+ "host.name", ChatRoomMemberRole.SILENT_MEMBER,
+ IrcStatusEnum.ONLINE);
Assert.assertSame(ChatRoomMemberRole.SILENT_MEMBER, member.getRole());
member.setRole(ChatRoomMemberRole.ADMINISTRATOR);
Assert.assertSame(ChatRoomMemberRole.SILENT_MEMBER, member.getRole());
@@ -201,7 +213,7 @@ public void testAddSignificantRole()
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name",
- ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
Assert.assertSame(ChatRoomMemberRole.SILENT_MEMBER, member.getRole());
member.addRole(ChatRoomMemberRole.ADMINISTRATOR);
Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole());
@@ -214,7 +226,7 @@ public void testRemoveSignificantRole()
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name",
- ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
member.addRole(ChatRoomMemberRole.ADMINISTRATOR);
Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole());
member.removeRole(ChatRoomMemberRole.ADMINISTRATOR);
@@ -228,7 +240,7 @@ public void testAddInsignificantRole()
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name",
- ChatRoomMemberRole.ADMINISTRATOR);
+ ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE);
Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole());
member.addRole(ChatRoomMemberRole.MEMBER);
Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole());
@@ -241,7 +253,7 @@ public void testRemoveInsignificantRole()
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name",
- ChatRoomMemberRole.ADMINISTRATOR);
+ ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE);
member.addRole(ChatRoomMemberRole.MEMBER);
Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole());
member.removeRole(ChatRoomMemberRole.MEMBER);
@@ -259,7 +271,7 @@ public void testGetContact()
EasyMock.replay(provider);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name",
- ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
Assert.assertNull(member.getContact());
}
@@ -270,7 +282,7 @@ public void testGetAvatar()
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name",
- ChatRoomMemberRole.SILENT_MEMBER);
+ ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
Assert.assertNull(member.getAvatar());
}
@@ -280,7 +292,7 @@ public void testEqualsSame()
ProtocolProviderServiceIrcImpl provider =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom,
- "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
Assert.assertTrue(member.equals(member));
}
@@ -290,7 +302,7 @@ public void testEqualsNull()
ProtocolProviderServiceIrcImpl provider =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom,
- "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
Assert.assertFalse(member.equals(null));
}
@@ -300,7 +312,7 @@ public void testEqualsObject()
ProtocolProviderServiceIrcImpl provider =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom,
- "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
Assert.assertFalse(member.equals(new Object()));
}
@@ -310,11 +322,11 @@ public void testEqualsSameUserDifferentProvider()
ProtocolProviderServiceIrcImpl provider =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member1 = new ChatRoomMemberIrcImpl(provider, chatroom,
- "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
ProtocolProviderServiceIrcImpl provider2 =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member2 = new ChatRoomMemberIrcImpl(provider2, chatroom,
- "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
Assert.assertFalse(member1.equals(member2));
}
@@ -324,9 +336,9 @@ public void testEqualsSameProviderDifferentUser()
ProtocolProviderServiceIrcImpl provider =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member1 = new ChatRoomMemberIrcImpl(provider, chatroom,
- "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
ChatRoomMemberIrcImpl member2 = new ChatRoomMemberIrcImpl(provider, chatroom,
- "susy", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "susy", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
Assert.assertFalse(member1.equals(member2));
}
@@ -336,9 +348,9 @@ public void testEqualsTrue()
ProtocolProviderServiceIrcImpl provider =
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member1 = new ChatRoomMemberIrcImpl(provider, chatroom,
- "susy", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "susy", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
ChatRoomMemberIrcImpl member2 = new ChatRoomMemberIrcImpl(provider, chatroom,
- "susy", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER);
+ "susy", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE);
Assert.assertTrue(member1.equals(member2));
}
@@ -349,7 +361,7 @@ public void testHashcodeNotFailing()
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "ET", "user", "host.name",
- ChatRoomMemberRole.ADMINISTRATOR);
+ ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE);
member.hashCode();
}
@@ -360,7 +372,7 @@ public void testGetIdent()
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "ET", "user", "host.name",
- ChatRoomMemberRole.ADMINISTRATOR);
+ ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE);
Assert.assertEquals("user", member.getIdent());
}
@@ -371,7 +383,7 @@ public void testGetHostname()
EasyMock.createMock(ProtocolProviderServiceIrcImpl.class);
ChatRoomMemberIrcImpl member =
new ChatRoomMemberIrcImpl(provider, chatroom, "ET", "user", "host.name",
- ChatRoomMemberRole.ADMINISTRATOR);
+ ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE);
Assert.assertEquals("host.name", member.getHostname());
}
}