diff --git a/src/tests/usermanager.cpp b/src/tests/usermanager.cpp index 80a78cf7fbf7102410594765460c31848bb80e23..1f03575daffc06c7c9f59833d533f0ecfa256821 100644 --- a/src/tests/usermanager.cpp +++ b/src/tests/usermanager.cpp @@ -23,6 +23,7 @@ using namespace Transport; class UserManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_TEST_SUITE(UserManagerTest); CPPUNIT_TEST(connectUser); + CPPUNIT_TEST(connectTwoResources); CPPUNIT_TEST(connectUserTransportDisabled); CPPUNIT_TEST(connectUserRegistrationNeeded); CPPUNIT_TEST(connectUserRegistrationNeededRegistered); @@ -86,6 +87,22 @@ class UserManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_ASSERT_EQUAL(Swift::Presence::Unavailable, presence->getType()); } + void connectTwoResources() { + connectUser(); + add2Buddies(); + connectSecondResource(); + + // we should get presences + CPPUNIT_ASSERT_EQUAL(4, (int) received2.size()); + CPPUNIT_ASSERT(dynamic_cast(getStanza(received2[2]))); + CPPUNIT_ASSERT_EQUAL(Swift::StatusShow::Away, dynamic_cast(getStanza(received2[2]))->getShow()); + CPPUNIT_ASSERT_EQUAL(std::string("status1"), dynamic_cast(getStanza(received2[2]))->getStatus()); + + CPPUNIT_ASSERT(dynamic_cast(getStanza(received2[3]))); + CPPUNIT_ASSERT_EQUAL(Swift::StatusShow::Away, dynamic_cast(getStanza(received2[3]))->getShow()); + CPPUNIT_ASSERT_EQUAL(std::string("status2"), dynamic_cast(getStanza(received2[3]))->getStatus()); + } + }; CPPUNIT_TEST_SUITE_REGISTRATION (UserManagerTest);