diff --git a/src/tests/usermanager.cpp b/src/tests/usermanager.cpp index 5ae281a0d17c435badf6f604756169444cae6621..80a78cf7fbf7102410594765460c31848bb80e23 100644 --- a/src/tests/usermanager.cpp +++ b/src/tests/usermanager.cpp @@ -24,6 +24,8 @@ class UserManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_TEST_SUITE(UserManagerTest); CPPUNIT_TEST(connectUser); CPPUNIT_TEST(connectUserTransportDisabled); + CPPUNIT_TEST(connectUserRegistrationNeeded); + CPPUNIT_TEST(connectUserRegistrationNeededRegistered); CPPUNIT_TEST(handleProbePresence); CPPUNIT_TEST(disconnectUser); CPPUNIT_TEST_SUITE_END(); @@ -49,6 +51,24 @@ class UserManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_ASSERT(!user); } + void connectUserRegistrationNeeded() { + cfg->updateBackendConfig("[registration]\nneedRegistration=1\n"); + CPPUNIT_ASSERT_EQUAL(0, userManager->getUserCount()); + userRegistry->isValidUserPassword(Swift::JID("user@localhost/resource"), serverFromClientSession.get(), Swift::createSafeByteArray("password")); + loop->processEvents(); + CPPUNIT_ASSERT_EQUAL(0, userManager->getUserCount()); + CPPUNIT_ASSERT(streamEnded); + } + + void connectUserRegistrationNeededRegistered() { + addUser(); + cfg->updateBackendConfig("[registration]\nneedRegistration=1\n"); + CPPUNIT_ASSERT_EQUAL(0, userManager->getUserCount()); + userRegistry->isValidUserPassword(Swift::JID("user@localhost/resource"), serverFromClientSession.get(), Swift::createSafeByteArray("password")); + loop->processEvents(); + CPPUNIT_ASSERT_EQUAL(1, userManager->getUserCount()); + CPPUNIT_ASSERT(!streamEnded); + } void handleProbePresence() { Swift::Presence::ref response = Swift::Presence::create();