diff --git a/src/tests/user.cpp b/src/tests/user.cpp index e5df9ee212d45beaea2f41e81ef296dcbf37c794..f1f03a44ea7019f3e02a56ba6063021b9ea60966 100644 --- a/src/tests/user.cpp +++ b/src/tests/user.cpp @@ -26,6 +26,7 @@ class UserTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_TEST(handlePresence); CPPUNIT_TEST(handlePresenceJoinRoom); CPPUNIT_TEST(handlePresenceLeaveRoom); + CPPUNIT_TEST(leaveJoinedRoom); CPPUNIT_TEST(handleDisconnected); CPPUNIT_TEST_SUITE_END(); @@ -191,6 +192,18 @@ class UserTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_ASSERT_EQUAL(std::string(""), roomPassword); } + void leaveJoinedRoom() { + User *user = userManager->getUser("user@localhost"); + handlePresenceJoinRoom(); + + CPPUNIT_ASSERT(user->getConversationManager()->getConversation("#room")); + + received.clear(); + handlePresenceLeaveRoom(); + + CPPUNIT_ASSERT(!user->getConversationManager()->getConversation("#room")); + } + void handleDisconnected() { User *user = userManager->getUser("user@localhost"); user->handleDisconnected("Connection error", Swift::SpectrumErrorPayload::CONNECTION_ERROR_AUTHENTICATION_FAILED);