diff --git a/tests/libtransport/rostermanager.cpp b/tests/libtransport/rostermanager.cpp index ea0b5dea5cbe583292242424007fdc6be22bef91..aa6c25d68d32d8ccad13dbcbb4b809d7576db561 100644 --- a/tests/libtransport/rostermanager.cpp +++ b/tests/libtransport/rostermanager.cpp @@ -15,6 +15,7 @@ using namespace Transport; class RosterManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_TEST_SUITE(RosterManagerTest); CPPUNIT_TEST(setBuddy); + CPPUNIT_TEST(setBuddyUTF8); CPPUNIT_TEST(setBuddyNoAlias); CPPUNIT_TEST(sendCurrentPresences); CPPUNIT_TEST(sendUnavailablePresences); @@ -85,6 +86,25 @@ class RosterManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_ASSERT_EQUAL(std::string(""), item.getName()); } + void setBuddyUTF8() { + User *user = userManager->getUser("user@localhost"); + CPPUNIT_ASSERT(user); + + std::vector grp; + grp.push_back("group1"); + LocalBuddy *buddy = new LocalBuddy(user->getRosterManager(), -1, "Катя антонова", "", grp, BUDDY_JID_ESCAPING); + user->getRosterManager()->setBuddy(buddy); + + CPPUNIT_ASSERT(user->getRosterManager()->getBuddy("катя антонова")); + + 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("Катя антонова"), Buddy::JIDToLegacyName(item.getJID(), user)); + CPPUNIT_ASSERT_EQUAL(std::string(""), item.getName()); + } + void setBuddy() { User *user = userManager->getUser("user@localhost"); add2Buddies();