From 25642926dd9ddcb1c2a2ec6e397e07bdc19a5773 Mon Sep 17 00:00:00 2001 From: HanzZ Date: Thu, 20 Oct 2011 20:52:42 +0200 Subject: [PATCH] more tests --- src/tests/usermanager.cpp | 34 +++++++++++++++++++++++++++++++++- src/transport.cpp | 1 - 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/tests/usermanager.cpp b/src/tests/usermanager.cpp index bd559a54..d0084ddf 100644 --- a/src/tests/usermanager.cpp +++ b/src/tests/usermanager.cpp @@ -58,10 +58,13 @@ class TestingFactory : public Factory { class UserManagerTest : public CPPUNIT_NS :: TestFixture, public Swift::XMPPParserClient { CPPUNIT_TEST_SUITE(UserManagerTest); CPPUNIT_TEST(connectUser); + CPPUNIT_TEST(handleProbePresence); + CPPUNIT_TEST(disconnectUser); CPPUNIT_TEST_SUITE_END(); public: void setUp (void) { + streamEnded = false; std::istringstream ifs("service.server_mode = 1\n"); cfg = new Config(); cfg->load(ifs); @@ -119,7 +122,7 @@ class UserManagerTest : public CPPUNIT_NS :: TestFixture, public Swift::XMPPPars } void handleStreamEnd() { - + streamEnded = true; } void connectUser() { @@ -138,8 +141,36 @@ class UserManagerTest : public CPPUNIT_NS :: TestFixture, public Swift::XMPPPars user->setConnected(true); CPPUNIT_ASSERT(user->isConnected() == true); + + CPPUNIT_ASSERT_EQUAL(1, (int) received.size()); + CPPUNIT_ASSERT(getStanza(received[0])->getPayload()); } + void disconnectUser() { + connectUser(); + received.clear(); + + userManager->disconnectUser("user@localhost"); + dynamic_cast(factories->getTimerFactory())->setTime(10); + loop->processEvents(); + + CPPUNIT_ASSERT_EQUAL(0, userManager->getUserCount()); + CPPUNIT_ASSERT_EQUAL(1, (int) received.size()); + CPPUNIT_ASSERT(dynamic_cast(getStanza(received[0]))); + } + + void handleProbePresence() { + Swift::Presence::ref response = Swift::Presence::create(); + response->setTo("localhost"); + response->setFrom("user@localhost/resource"); + response->setType(Swift::Presence::Probe); + dynamic_cast(component->getStanzaChannel())->onPresenceReceived(response); + loop->processEvents(); + + CPPUNIT_ASSERT_EQUAL(2, (int) received.size()); + CPPUNIT_ASSERT(getStanza(received[0])->getPayload()); + CPPUNIT_ASSERT(dynamic_cast(getStanza(received[1]))); + } Swift::Stanza *getStanza(boost::shared_ptr element) { Swift::Stanza *stanza = dynamic_cast(element.get()); @@ -148,6 +179,7 @@ class UserManagerTest : public CPPUNIT_NS :: TestFixture, public Swift::XMPPPars } private: + bool streamEnded; UserManager *userManager; boost::shared_ptr serverFromClientSession; Swift::FullPayloadSerializerCollection* payloadSerializers; diff --git a/src/transport.cpp b/src/transport.cpp index cb2cdbb6..e9d87cb5 100644 --- a/src/transport.cpp +++ b/src/transport.cpp @@ -251,7 +251,6 @@ void Component::handlePresence(Swift::Presence::ref presence) { } // check if we have this client's capabilities and ask for them -// bool haveFeatures = false; if (presence->getType() != Swift::Presence::Unavailable) { boost::shared_ptr capsInfo = presence->getPayload(); if (capsInfo && capsInfo->getHash() == "sha-1") {