From 2538cc414d5f7f8d75afb584d93f99eea9e76e53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Damstedt=20Rasmussen?= Date: Wed, 12 Jun 2019 21:23:19 +0200 Subject: [PATCH] Cannot determine order of TTMessage when doing channel update and user state change --- .../test/dk/bearware/TeamTalkTestCase.java | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/Library/TeamTalkJNI/test/dk/bearware/TeamTalkTestCase.java b/Library/TeamTalkJNI/test/dk/bearware/TeamTalkTestCase.java index 132657e107..299cbd4ffa 100644 --- a/Library/TeamTalkJNI/test/dk/bearware/TeamTalkTestCase.java +++ b/Library/TeamTalkJNI/test/dk/bearware/TeamTalkTestCase.java @@ -1750,15 +1750,26 @@ public void testSoloTransmitChannel() { assertTrue("Enable voice transmission", ttclient.enableVoiceTransmission(true)); - assertTrue("wait chan update " + i, waitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_CHANNEL_UPDATE, DEF_WAIT, msg)); - - assertTrue("Channel tx queue set", ttclient.getChannel(ttclient.getMyChannelID(), chan)); - - assertEquals("myself in queue", ttclient.getMyUserID(), chan.transmitUsersQueue[0]); + boolean chanUpEvent = false, userUpEvent = false; + while (ttclient.getMessage(msg, DEF_WAIT) && (!chanUpEvent || !userUpEvent)) { + switch (msg.nClientEvent) { + case ClientEvent.CLIENTEVENT_CMD_CHANNEL_UPDATE : + assertTrue("Channel tx queue set", ttclient.getChannel(ttclient.getMyChannelID(), chan)); + assertEquals("myself in queue", ttclient.getMyUserID(), chan.transmitUsersQueue[0]); + chanUpEvent = true; + break; + case ClientEvent.CLIENTEVENT_USER_STATECHANGE : + assertEquals("User state to voice", UserState.USERSTATE_VOICE, msg.user.uUserState & UserState.USERSTATE_VOICE); + assertEquals("myself talking", ttclient.getMyUserID(), msg.user.nUserID); + userUpEvent = true; + break; + } + } - assertTrue("Wait for talking event", waitForEvent(ttclient, ClientEvent.CLIENTEVENT_USER_STATECHANGE, DEF_WAIT, msg)); - assertEquals("User state to voice", UserState.USERSTATE_VOICE, msg.user.uUserState & UserState.USERSTATE_VOICE); - assertEquals("myself talking", ttclient.getMyUserID(), msg.user.nUserID); + //assertTrue("wait chan update " + i, waitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_CHANNEL_UPDATE, DEF_WAIT, msg)); + assertTrue("wait chan update " + i, chanUpEvent); + //assertTrue("Wait for talking event", waitForEvent(ttclient, ClientEvent.CLIENTEVENT_USER_STATECHANGE, DEF_WAIT, msg)); + assertTrue("Wait for talking event", userUpEvent); assertTrue("Disable voice transmission", ttclient.enableVoiceTransmission(false));