diff --git a/src/tests/usermanager.cpp b/src/tests/usermanager.cpp index 428892c707990f8d39c348147ad4dc7fc49ac279..b67c8e8813c6592b0870704abd98d83250f444e8 100644 --- a/src/tests/usermanager.cpp +++ b/src/tests/usermanager.cpp @@ -16,46 +16,11 @@ #include "Swiften/Server/ServerStanzaChannel.h" #include "Swiften/Server/ServerFromClientSession.h" #include "Swiften/Parser/PayloadParsers/FullPayloadParserFactoryCollection.h" +#include "basictest.h" using namespace Transport; -class TestingConversation : public Conversation { - public: - TestingConversation(ConversationManager *conversationManager, const std::string &legacyName, bool muc = false) : Conversation(conversationManager, legacyName, muc) { - } - - // Called when there's new message to legacy network from XMPP network - void sendMessage(boost::shared_ptr &message) { - - } -}; - -class TestingFactory : public Factory { - public: - TestingFactory() { - } - - // Creates new conversation (NetworkConversation in this case) - Conversation *createConversation(ConversationManager *conversationManager, const std::string &legacyName) { - Conversation *nc = new TestingConversation(conversationManager, legacyName); - return nc; - } - - // Creates new LocalBuddy - Buddy *createBuddy(RosterManager *rosterManager, const BuddyInfo &buddyInfo) { - LocalBuddy *buddy = new LocalBuddy(rosterManager, buddyInfo.id); - buddy->setAlias(buddyInfo.alias); - buddy->setName(buddyInfo.legacyName); - buddy->setSubscription(buddyInfo.subscription); - buddy->setGroups(buddyInfo.groups); - buddy->setFlags((BuddyFlag) buddyInfo.flags); - if (buddyInfo.settings.find("icon_hash") != buddyInfo.settings.end()) - buddy->setIconHash(buddyInfo.settings.find("icon_hash")->second.s); - return buddy; - } -}; - -class UserManagerTest : public CPPUNIT_NS :: TestFixture, public Swift::XMPPParserClient { +class UserManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_TEST_SUITE(UserManagerTest); CPPUNIT_TEST(connectUser); CPPUNIT_TEST(handleProbePresence); @@ -64,67 +29,13 @@ class UserManagerTest : public CPPUNIT_NS :: TestFixture, public Swift::XMPPPars public: void setUp (void) { - streamEnded = false; - std::istringstream ifs("service.server_mode = 1\n"); - cfg = new Config(); - cfg->load(ifs); - - factory = new TestingFactory(); - - loop = new Swift::DummyEventLoop(); - factories = new Swift::DummyNetworkFactories(loop); - - userRegistry = new UserRegistry(cfg, factories); - - component = new Component(loop, factories, cfg, factory, userRegistry); - component->start(); - - userManager = new UserManager(component, userRegistry); - - payloadSerializers = new Swift::FullPayloadSerializerCollection(); - payloadParserFactories = new Swift::FullPayloadParserFactoryCollection(); - parser = new Swift::XMPPParser(this, payloadParserFactories, factories->getXMLParserFactory()); - - serverFromClientSession = boost::shared_ptr(new Swift::ServerFromClientSession("id", factories->getConnectionFactory()->createConnection(), - payloadParserFactories, payloadSerializers, userRegistry, factories->getXMLParserFactory(), Swift::JID("user@localhost/resource"))); - serverFromClientSession->startSession(); - - serverFromClientSession->onDataWritten.connect(boost::bind(&UserManagerTest::handleDataReceived, this, _1)); - - dynamic_cast(component->getStanzaChannel())->addSession(serverFromClientSession); - parser->parse(""); - received.clear(); - loop->processEvents(); + setMeUp(); } void tearDown (void) { - dynamic_cast(component->getStanzaChannel())->removeSession(serverFromClientSession); - delete component; - delete userRegistry; - delete factories; - delete factory; - delete loop; - delete cfg; - delete parser; - received.clear(); + tearMeDown(); } - void handleDataReceived(const Swift::SafeByteArray &data) { - parser->parse(safeByteArrayToString(data)); - } - - void handleStreamStart(const Swift::ProtocolHeader&) { - - } - - void handleElement(boost::shared_ptr element) { - received.push_back(element); - } - - void handleStreamEnd() { - streamEnded = true; - } - void connectUser() { CPPUNIT_ASSERT_EQUAL(0, userManager->getUserCount()); userRegistry->isValidUserPassword(Swift::JID("user@localhost/resource"), serverFromClientSession.get(), Swift::createSafeByteArray("password")); @@ -175,27 +86,6 @@ class UserManagerTest : public CPPUNIT_NS :: TestFixture, public Swift::XMPPPars CPPUNIT_ASSERT_EQUAL(Swift::Presence::Unavailable, presence->getType()); } - Swift::Stanza *getStanza(boost::shared_ptr element) { - Swift::Stanza *stanza = dynamic_cast(element.get()); - CPPUNIT_ASSERT(stanza); - return stanza; - } - - private: - bool streamEnded; - UserManager *userManager; - boost::shared_ptr serverFromClientSession; - Swift::FullPayloadSerializerCollection* payloadSerializers; - Swift::FullPayloadParserFactoryCollection* payloadParserFactories; - Swift::XMPPParser *parser; - UserRegistry *userRegistry; - Config *cfg; - Swift::Server *server; - Swift::DummyNetworkFactories *factories; - Swift::DummyEventLoop *loop; - TestingFactory *factory; - Component *component; - std::vector > received; }; CPPUNIT_TEST_SUITE_REGISTRATION (UserManagerTest);