diff --git a/src/tests/user.cpp b/src/tests/user.cpp index cd5044bf3956b6cc577d28dcd9e6e474d6216b44..fcf348c869b4731312779e577db9e1f106d1e031 100644 --- a/src/tests/user.cpp +++ b/src/tests/user.cpp @@ -28,6 +28,7 @@ class UserTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_TEST(handlePresenceLeaveRoom); CPPUNIT_TEST(leaveJoinedRoom); CPPUNIT_TEST(handleDisconnected); + CPPUNIT_TEST(handleDisconnectedReconnect); CPPUNIT_TEST_SUITE_END(); public: @@ -203,6 +204,16 @@ class UserTest : public CPPUNIT_NS :: TestFixture, public BasicTest { disconnected = true; } + void handleDisconnectedReconnect() { + User *user = userManager->getUser("user@localhost"); + user->handleDisconnected("Connection error"); + loop->processEvents(); + + CPPUNIT_ASSERT(!streamEnded); + user = userManager->getUser("user@localhost"); + CPPUNIT_ASSERT(user); + } + }; CPPUNIT_TEST_SUITE_REGISTRATION (UserTest);