diff --git a/src/rostermanager.cpp b/src/rostermanager.cpp index a8b5b550..f9c47e77 100644 --- a/src/rostermanager.cpp +++ b/src/rostermanager.cpp @@ -154,12 +154,7 @@ void RosterManager::sendBuddyRosterPush(Buddy *buddy) { Swift::RosterPayload::ref payload = Swift::RosterPayload::ref(new Swift::RosterPayload()); Swift::RosterItemPayload item; item.setJID(buddy->getJID().toBare()); - if (buddy->getAlias().empty()) { - item.setName(buddy->getJID().toBare().toString()); - } - else { - item.setName(buddy->getAlias()); - } + item.setName(buddy->getAlias()); item.setGroups(buddy->getGroups()); item.setSubscription(Swift::RosterItemPayload::Both); diff --git a/src/tests/rostermanager.cpp b/src/tests/rostermanager.cpp index 35d2d444..b9df7a0f 100644 --- a/src/tests/rostermanager.cpp +++ b/src/tests/rostermanager.cpp @@ -23,6 +23,7 @@ using namespace Transport; class RosterManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_TEST_SUITE(RosterManagerTest); CPPUNIT_TEST(setBuddy); + CPPUNIT_TEST(setBuddyNoAlias); CPPUNIT_TEST(sendCurrentPresences); CPPUNIT_TEST(sendUnavailablePresences); CPPUNIT_TEST(sendCurrentPresence); @@ -72,6 +73,25 @@ class RosterManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest { } + void setBuddyNoAlias() { + User *user = userManager->getUser("user@localhost"); + CPPUNIT_ASSERT(user); + + std::vector grp; + grp.push_back("group1"); + LocalBuddy *buddy = new LocalBuddy(user->getRosterManager(), -1, "buddy1", "", grp, BUDDY_JID_ESCAPING); + user->getRosterManager()->setBuddy(buddy); + + CPPUNIT_ASSERT_EQUAL(1, (int) received.size()); + + Swift::RosterPayload::ref payload1 = getStanza(received[0])->getPayload(); + CPPUNIT_ASSERT(payload1); + CPPUNIT_ASSERT_EQUAL(1, (int) payload1->getItems().size()); + Swift::RosterItemPayload item = payload1->getItems()[0]; + CPPUNIT_ASSERT_EQUAL(std::string("buddy1"), Buddy::JIDToLegacyName(item.getJID())); + CPPUNIT_ASSERT_EQUAL(std::string(""), item.getName()); + } + void setBuddy() { add2Buddies(); CPPUNIT_ASSERT_EQUAL(4, (int) received.size());