diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-09-13 19:24:55 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-09-13 19:24:55 (GMT) |
commit | 30c3130def563b76c18f6bc91bd527ef1ba092be (patch) | |
tree | 84031f9eba904a7fe211f40b333d93f7ecf5411e /Swift/Controllers | |
parent | ef1052bbdb315aaa1c6254098ea05638d9a25b2f (diff) | |
download | swift-contrib-30c3130def563b76c18f6bc91bd527ef1ba092be.zip swift-contrib-30c3130def563b76c18f6bc91bd527ef1ba092be.tar.bz2 |
Moved XMPPRosterController to Swiften.
Diffstat (limited to 'Swift/Controllers')
-rw-r--r-- | Swift/Controllers/MainController.cpp | 2 | ||||
-rw-r--r-- | Swift/Controllers/SConscript | 2 | ||||
-rw-r--r-- | Swift/Controllers/UnitTest/XMPPRosterControllerTest.cpp | 86 | ||||
-rw-r--r-- | Swift/Controllers/XMPPRosterController.cpp | 48 | ||||
-rw-r--r-- | Swift/Controllers/XMPPRosterController.h | 36 |
5 files changed, 1 insertions, 173 deletions
diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp index 6221f21..4cd9be4 100644 --- a/Swift/Controllers/MainController.cpp +++ b/Swift/Controllers/MainController.cpp @@ -35,7 +35,7 @@ #include "Swift/Controllers/SystemTray.h" #include "Swift/Controllers/SystemTrayController.h" #include "Swift/Controllers/XMLConsoleController.h" -#include "Swift/Controllers/XMPPRosterController.h" +#include "Swiften/Roster/XMPPRosterController.h" #include "Swift/Controllers/UIEvents/UIEventStream.h" #include "Swift/Controllers/PresenceNotifier.h" #include "SwifTools/Dock/Dock.h" diff --git a/Swift/Controllers/SConscript b/Swift/Controllers/SConscript index 30c9590..41461bd 100644 --- a/Swift/Controllers/SConscript +++ b/Swift/Controllers/SConscript @@ -29,7 +29,6 @@ if env["SCONS_STAGE"] == "build" : "MainController.cpp", "NickResolver.cpp", "RosterController.cpp", - "XMPPRosterController.cpp", "EventController.cpp", "EventWindowController.cpp", "SoundEventController.cpp", @@ -46,7 +45,6 @@ if env["SCONS_STAGE"] == "build" : env.Append(UNITTEST_SOURCES = [ File("UnitTest/NickResolverTest.cpp"), File("UnitTest/RosterControllerTest.cpp"), - File("UnitTest/XMPPRosterControllerTest.cpp"), File("UnitTest/PreviousStatusStoreTest.cpp"), File("UnitTest/PresenceNotifierTest.cpp"), File("Chat/UnitTest/ChatsManagerTest.cpp"), diff --git a/Swift/Controllers/UnitTest/XMPPRosterControllerTest.cpp b/Swift/Controllers/UnitTest/XMPPRosterControllerTest.cpp deleted file mode 100644 index 6787528..0000000 --- a/Swift/Controllers/UnitTest/XMPPRosterControllerTest.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2010 Kevin Smith - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#include <cppunit/extensions/HelperMacros.h> -#include <cppunit/extensions/TestFactoryRegistry.h> - -#include "Swift/Controllers/XMPPRosterController.h" -#include "Swiften/Elements/Payload.h" -#include "Swiften/Elements/RosterItemPayload.h" -#include "Swiften/Elements/RosterPayload.h" -#include "Swiften/Queries/DummyIQChannel.h" -#include "Swiften/Queries/IQRouter.h" -#include "Swiften/Roster/XMPPRoster.h" - -using namespace Swift; - -class XMPPRosterControllerTest : public CppUnit::TestFixture -{ - CPPUNIT_TEST_SUITE(XMPPRosterControllerTest); - CPPUNIT_TEST(testAdd); - CPPUNIT_TEST(testModify); - CPPUNIT_TEST(testRemove); - CPPUNIT_TEST_SUITE_END(); - - public: - XMPPRosterControllerTest() {} - - void setUp() { - channel_ = new DummyIQChannel(); - router_ = new IQRouter(channel_); - xmppRoster_ = new XMPPRoster(); - } - - void tearDown() { - delete channel_; - delete router_; - } - - void testAdd() { - XMPPRosterController controller(router_, xmppRoster_); - - boost::shared_ptr<RosterPayload> payload(new RosterPayload()); - payload->addItem(RosterItemPayload(JID("foo@bar.com"), "Bob", RosterItemPayload::Both)); - channel_->onIQReceived(IQ::createRequest(IQ::Set, JID(), "eou", payload)); - - CPPUNIT_ASSERT(xmppRoster_->containsJID(JID("foo@bar.com"))); - CPPUNIT_ASSERT_EQUAL(String("Bob"), xmppRoster_->getNameForJID(JID("foo@bar.com"))); - } - - void testModify() { - XMPPRosterController controller(router_, xmppRoster_); - boost::shared_ptr<RosterPayload> payload1(new RosterPayload()); - payload1->addItem(RosterItemPayload(JID("foo@bar"), "Bob", RosterItemPayload::Both)); - channel_->onIQReceived(IQ::createRequest(IQ::Set, JID(), "id1", payload1)); - - boost::shared_ptr<RosterPayload> payload2(new RosterPayload()); - payload2->addItem(RosterItemPayload(JID("foo@bar"), "Bob2", RosterItemPayload::Both)); - channel_->onIQReceived(IQ::createRequest(IQ::Set, JID(), "id2", payload2)); - - CPPUNIT_ASSERT_EQUAL(String("Bob2"), xmppRoster_->getNameForJID(JID("foo@bar"))); - } - - void testRemove() { - XMPPRosterController controller(router_, xmppRoster_); - boost::shared_ptr<RosterPayload> payload1(new RosterPayload()); - payload1->addItem(RosterItemPayload(JID("foo@bar"), "Bob", RosterItemPayload::Both)); - channel_->onIQReceived(IQ::createRequest(IQ::Set, JID(), "id1", payload1)); - - boost::shared_ptr<RosterPayload> payload2(new RosterPayload()); - payload2->addItem(RosterItemPayload(JID("foo@bar"), "Bob", RosterItemPayload::Remove)); - channel_->onIQReceived(IQ::createRequest(IQ::Set, JID(), "id2", payload2)); - CPPUNIT_ASSERT(!xmppRoster_->containsJID(JID("foo@bar"))); - } - - private: - DummyIQChannel* channel_; - IQRouter* router_; - XMPPRoster* xmppRoster_; -}; - -CPPUNIT_TEST_SUITE_REGISTRATION(XMPPRosterControllerTest); - - diff --git a/Swift/Controllers/XMPPRosterController.cpp b/Swift/Controllers/XMPPRosterController.cpp deleted file mode 100644 index c3144b7..0000000 --- a/Swift/Controllers/XMPPRosterController.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2010 Kevin Smith - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#include "Swift/Controllers/XMPPRosterController.h" - -#include <boost/bind.hpp> - -#include "Swiften/Base/foreach.h" -#include "Swiften/Elements/RosterItemPayload.h" -#include "Swiften/Queries/IQRouter.h" -#include "Swiften/Queries/Requests/GetRosterRequest.h" -#include "Swiften/EventLoop/MainEventLoop.h" -#include "Swiften/Roster/Roster.h" -#include "Swiften/Roster/SetPresence.h" -#include "Swiften/Roster/OfflineRosterFilter.h" -#include "Swiften/Roster/XMPPRoster.h" - -namespace Swift { - -/** - * The controller does not gain ownership of these parameters. - */ -XMPPRosterController::XMPPRosterController(IQRouter* iqRouter, XMPPRoster* xmppRoster) : iqRouter_(iqRouter), rosterPushResponder_(iqRouter), xmppRoster_(xmppRoster) { - rosterPushResponder_.onRosterReceived.connect(boost::bind(&XMPPRosterController::handleRosterReceived, this, _1)); -} - -void XMPPRosterController::requestRoster() { - xmppRoster_->clear(); - boost::shared_ptr<GetRosterRequest> rosterRequest(new GetRosterRequest(iqRouter_)); - rosterRequest->onResponse.connect(boost::bind(&XMPPRosterController::handleRosterReceived, this, _1)); - rosterRequest->send(); -} - -void XMPPRosterController::handleRosterReceived(boost::shared_ptr<RosterPayload> rosterPayload) { - foreach(const RosterItemPayload& item, rosterPayload->getItems()) { - //Don't worry about the updated case, the XMPPRoster sorts that out. - if (item.getSubscription() == RosterItemPayload::Remove) { - xmppRoster_->removeContact(item.getJID()); - } else { - xmppRoster_->addContact(item.getJID(), item.getName(), item.getGroups(), item.getSubscription()); - } - } -} - -} diff --git a/Swift/Controllers/XMPPRosterController.h b/Swift/Controllers/XMPPRosterController.h deleted file mode 100644 index 14159c7..0000000 --- a/Swift/Controllers/XMPPRosterController.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2010 Kevin Smith - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#pragma once - -#include "Swiften/JID/JID.h" -#include "Swiften/Base/String.h" -#include "Swiften/Elements/IQ.h" -#include "Swiften/Elements/RosterPayload.h" -#include "Swiften/Queries/Responders/RosterPushResponder.h" - -#include "Swiften/Base/boost_bsignals.h" -#include <boost/shared_ptr.hpp> - -namespace Swift { - class IQRouter; - class XMPPRoster; - - class XMPPRosterController { - public: - XMPPRosterController(IQRouter *iqRouter, XMPPRoster* xmppRoster); - - void requestRoster(); - - void handleRosterReceived(boost::shared_ptr<RosterPayload> rosterPayload); - - private: - IQRouter* iqRouter_; - RosterPushResponder rosterPushResponder_; - XMPPRoster* xmppRoster_; - }; -} - |