additional checks for testInviteJoin

complete testRoomSubject
avoid possible null pointer exception in ChatRoomPropertyChangeFailedEvent
cusax-fix
Symphorien Wanko 17 years ago
parent 4f86dfefb9
commit 9fd6a51a96

@ -121,11 +121,11 @@ public String toString()
return "ChatRoomPropertyChangeEvent[type="
+ this.getPropertyName()
+ " sourceRoom="
+ this.getSource().toString()
+ this.getSource()
+ "oldValue="
+ this.getOldValue().toString()
+ this.getOldValue()
+ "newValue="
+ this.getNewValue().toString()
+ this.getNewValue()
+ "]";
}
}

@ -241,9 +241,9 @@ public static Test suite()
new TestOperationSetMultiUserChat2("testNickName"));
// following test are not yet commplete
//
// suite.addTest(
// new TestOperationSetMultiUserChat2("testRoomSubject"));
suite.addTest(
new TestOperationSetMultiUserChat2("testRoomSubject"));
//
//
// suite.addTest(
@ -511,10 +511,14 @@ public void testInviteJoin()
MUCEventCollector opSet2RoomCollector =
new MUCEventCollector(opSet2Room, MUCEventCollector.EVENT_PRESENCE);
opSet2Collector =
new MUCEventCollector(opSetMUC2, MUCEventCollector.EVENT_PRESENCE);
opSet2Room.join();
opSet2RoomCollector.waitForEvent(10000);
opSet1RoomCollector.waitForEvent(10000);
opSet2Collector.waitForEvent(10000); // listening for user2 own join
opSet2RoomCollector.waitForEvent(10000); // listening for user1 join
opSet1RoomCollector.waitForEvent(10000); // listening for user2 join
// we know check if both member received events
assertEquals("a room member has not been notified that someone " +
@ -540,6 +544,18 @@ public void testInviteJoin()
assertEquals("there is not exactly two members in the room"
, 2, opSet1Room.getMembersCount());
// is user2 notified of its own join
assertEquals("user hasn't been notified of its own join"
, 1, opSet2Collector.collectedEvents.size());
LocalUserChatRoomPresenceChangeEvent localEvent =
(LocalUserChatRoomPresenceChangeEvent)
opSet2Collector.collectedEvents.get(0);
assertEquals("the event user2 received is not LOCAL_USER_JOINED"
, LocalUserChatRoomPresenceChangeEvent.LOCAL_USER_JOINED
, localEvent.getEventType());
// both sides should report the same members number.
// here we use opSet2Room.getMembers().size() rather than
// opSet2Room.getMembersCount() because the last method will not
@ -746,33 +762,66 @@ public void testRoomSubject()
throws OperationFailedException,
OperationNotSupportedException
{
if (true) // just to avoid the not reacheable statement when compiling
throw new OperationNotSupportedException("not yet implemented");
String testRoomName = testRoomBaseName + roomID++;
String oldSubject;
String newSubjet = "bingo";
// we create the test room
ChatRoom opSet1Room =
opSetMUC1.createChatRoom(testRoomName, null);
opSet1Room.join();
String subject1 = "one";
String subject2 = "two";
ChatRoom opSet2Room = opSetMUC2.findRoom(testRoomName);
opSet2Room.join();
MUCEventCollector opSet2RoomCollector =
new MUCEventCollector(opSet2Room, MUCEventCollector.EVENT_PROPERTY);
MUCEventCollector opSet1RoomCollector =
new MUCEventCollector(opSet2Room, MUCEventCollector.EVENT_PROPERTY);
oldSubject = opSet1Room.getSubject();
opSet1Room.setSubject(subject1);
assertEquals("failed to change room subject"
, subject1, opSet1Room.getSubject());
opSet1Room.setSubject(newSubjet);
assertEquals("subject change not seen on peer side"
, subject1, opSet2Room.getSubject());
opSet1RoomCollector.waitForEvent(10000);
opSet2RoomCollector.waitForEvent(10000);
assertEquals("user1 didnt received an event for room subject change"
, 1, opSet1RoomCollector.collectedEvents.size());
assertEquals("user2 didnt received an event for room subject change"
, 1, opSet2RoomCollector.collectedEvents.size());
assertEquals("the room subject is not up to date "
, newSubjet, opSet1Room.getSubject());
assertEquals("the room subject is not up to date " +
"from peer side"
, newSubjet, opSet2Room.getSubject());
ChatRoomPropertyChangeEvent changeEvent =
(ChatRoomPropertyChangeEvent)
opSet1RoomCollector.collectedEvents.get(0);
assertEquals("the old subject provided by the change event " +
"is not the good one"
, oldSubject, changeEvent.getOldValue());
opSet1Room.setSubject(subject2);
assertEquals("failed to change room subject"
, subject2, opSet1Room.getSubject());
assertEquals("the new subject provided by the change event " +
"is not the good one"
, newSubjet, changeEvent.getNewValue());
assertEquals("subject change not seem on peer side"
, subject2, opSet2Room.getSubject());
ChatRoomPropertyChangeEvent peerEvent =
(ChatRoomPropertyChangeEvent)
opSet2RoomCollector.collectedEvents.get(0);
assertEquals("both sides didn't received similar change event ",
changeEvent.getOldValue(), peerEvent.getOldValue());
assertEquals("both sides didn't received similar change event ",
changeEvent.getNewValue(), peerEvent.getNewValue());
}
/**
@ -952,7 +1001,8 @@ class MUCEventCollector
LocalUserChatRoomPresenceListener,
ChatRoomMemberPresenceListener,
ChatRoomMessageListener,
ChatRoomMemberPropertyChangeListener
ChatRoomMemberPropertyChangeListener,
ChatRoomPropertyChangeListener
{
private final ArrayList collectedEvents = new ArrayList();
@ -1012,6 +1062,7 @@ public MUCEventCollector(ChatRoom room, int eventType)
break;
case EVENT_PROPERTY:
room.addMemberPropertyChangeListener(this);
room.addPropertyChangeListener(this);
break;
default:
throw new IllegalArgumentException(
@ -1028,7 +1079,7 @@ public MUCEventCollector(ChatRoom room, int eventType)
*/
public void waitForEvent(long waitFor)
{
logger.trace("Waiting for a CallEvent");
logger.trace("Waiting for a MUC Event");
synchronized (this)
{
@ -1122,5 +1173,17 @@ public void chatRoomPropertyChanged(
{
collectEvent(evt);
}
public void chatRoomPropertyChanged(
ChatRoomPropertyChangeEvent evt)
{
collectEvent(evt);
}
public void chatRoomPropertyChangeFailed(
ChatRoomPropertyChangeFailedEvent evt)
{
collectEvent(evt);
}
}
}

Loading…
Cancel
Save