Changeset - 9c48437b09d7
[Not reviewed]
0 2 0
HanzZ - 13 years ago 2012-12-28 08:55:29
hanzz.k@gmail.com
support for XEP-0172
2 files changed with 16 insertions and 9 deletions:
0 comments (0 inline, 0 general)
src/rostermanager.cpp
Show inline comments
 
@@ -204,7 +204,9 @@ void RosterManager::sendBuddySubscribePresence(Buddy *buddy) {
 
	response->setTo(m_user->getJID());
 
	response->setFrom(buddy->getJID());
 
	response->setType(Swift::Presence::Subscribe);
 
// 	TODO: NICKNAME
 
	if (!buddy->getAlias().empty()) {
 
		response->addPayload(boost::make_shared<Swift::Nickname>(buddy->getAlias()));
 
	}
 
	m_component->getStanzaChannel()->sendPresence(response);
 
}
 

	
 
@@ -231,14 +233,7 @@ void RosterManager::setBuddyCallback(Buddy *buddy) {
 
			sendBuddyRosterPush(buddy);
 
		}
 
		else {
 
			// Send RIE only if there's resource which supports it.
 
			std::vector<Swift::JID> jidWithRIE = m_user->getJIDWithFeature("http://jabber.org/protocol/rosterx");
 
			if (!jidWithRIE.empty()) {
 
				m_RIETimer->start();
 
			}
 
			else {
 
				sendBuddySubscribePresence(buddy);
 
			}
 
			m_RIETimer->start();
 
		}
 
	}
 

	
src/tests/rostermanager.cpp
Show inline comments
 
@@ -25,6 +25,7 @@ class RosterManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest {
 
	CPPUNIT_TEST(setBuddy);
 
	CPPUNIT_TEST(sendCurrentPresences);
 
	CPPUNIT_TEST(sendCurrentPresence);
 
	CPPUNIT_TEST(sendBuddySubscribePresence);
 
	CPPUNIT_TEST(removeBuddy);
 
	CPPUNIT_TEST(subscribeExistingBuddy);
 
	CPPUNIT_TEST(subscribeNewBuddy);
 
@@ -59,6 +60,17 @@ class RosterManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTest {
 
		m_buddy = buddy->getName();
 
	}
 

	
 
	void sendBuddySubscribePresence() {
 
		add2Buddies();
 
		received.clear();
 
		User *user = userManager->getUser("user@localhost");
 
		user->getRosterManager()->sendBuddySubscribePresence(user->getRosterManager()->getBuddy("buddy1"));
 
		CPPUNIT_ASSERT_EQUAL(1, (int) received.size());
 
		CPPUNIT_ASSERT(getStanza(received[0])->getPayload<Swift::Nickname>());
 
		CPPUNIT_ASSERT_EQUAL(std::string("Buddy 1"), getStanza(received[0])->getPayload<Swift::Nickname>()->getNickname());
 
		
 
	}
 

	
 
	void setBuddy() {
 
		add2Buddies();
 
		CPPUNIT_ASSERT_EQUAL(2, (int) received.size());
0 comments (0 inline, 0 general)