diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-05-06 08:00:44 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-05-06 10:49:49 (GMT) |
commit | 081fc03556708447610e9697a57235fa191a4f0d (patch) | |
tree | 505c8cc9129d2b44968d183a180f0ccddaa08810 /Swift/Controllers/UnitTest/RosterControllerTest.cpp | |
parent | 8c53236875d2ca77f1b463449918458f6b424ab1 (diff) | |
download | swift-contrib-081fc03556708447610e9697a57235fa191a4f0d.zip swift-contrib-081fc03556708447610e9697a57235fa191a4f0d.tar.bz2 |
Rewrite of large amounts of roster code.
Now keeps widgets out of Swiften, keeps sorting inside Swiften,
and keeps track of presences to show the correct presence per
roster item.
Resolves: #316
Resolves: #81
Resolves: #239
Diffstat (limited to 'Swift/Controllers/UnitTest/RosterControllerTest.cpp')
-rw-r--r-- | Swift/Controllers/UnitTest/RosterControllerTest.cpp | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/Swift/Controllers/UnitTest/RosterControllerTest.cpp b/Swift/Controllers/UnitTest/RosterControllerTest.cpp index 1177bd7..4bb3a08 100644 --- a/Swift/Controllers/UnitTest/RosterControllerTest.cpp +++ b/Swift/Controllers/UnitTest/RosterControllerTest.cpp @@ -10,7 +10,6 @@ #include "Swift/Controllers/RosterController.h" #include "Swift/Controllers/UnitTest/MockMainWindowFactory.h" -#include "Swiften/Roster/UnitTest/MockTreeWidgetFactory.h" // #include "Swiften/Elements/Payload.h" // #include "Swiften/Elements/RosterItemPayload.h" // #include "Swiften/Elements/RosterPayload.h" @@ -18,6 +17,9 @@ #include "Swiften/Client/DummyStanzaChannel.h" #include "Swiften/Queries/IQRouter.h" #include "Swiften/Roster/XMPPRoster.h" +#include "Swiften/Roster/Roster.h" +#include "Swiften/Roster/GroupRosterItem.h" +#include "Swiften/Roster/ContactRosterItem.h" #include "Swift/Controllers/EventController.h" #include "Swiften/Presence/PresenceOracle.h" #include "Swift/Controllers/NickResolver.h" @@ -25,6 +27,7 @@ using namespace Swift; +#define CHILDREN mainWindow_->roster->getRoot()->getChildren() class RosterControllerTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(RosterControllerTest); @@ -40,8 +43,7 @@ class RosterControllerTest : public CppUnit::TestFixture jid_ = JID("testjid@swift.im/swift"); xmppRoster_ = boost::shared_ptr<XMPPRoster>(new XMPPRoster()); avatarManager_ = NULL;//new AvatarManager(); - treeWidgetFactory_ = new MockTreeWidgetFactory(); - mainWindowFactory_ = new MockMainWindowFactory(treeWidgetFactory_); + mainWindowFactory_ = new MockMainWindowFactory(); nickResolver_ = new NickResolver(xmppRoster_); channel_ = new DummyIQChannel(); router_ = new IQRouter(channel_); @@ -49,9 +51,8 @@ class RosterControllerTest : public CppUnit::TestFixture presenceOracle_ = new PresenceOracle(stanzaChannel_); eventController_ = new EventController(); uiEventStream_ = new UIEventStream(); - rosterController_ = new RosterController(jid_, xmppRoster_, avatarManager_, mainWindowFactory_, treeWidgetFactory_, nickResolver_, presenceOracle_, eventController_, uiEventStream_, router_); - - + rosterController_ = new RosterController(jid_, xmppRoster_, avatarManager_, mainWindowFactory_, nickResolver_, presenceOracle_, eventController_, uiEventStream_, router_); + mainWindow_ = mainWindowFactory_->last; }; void tearDown() { @@ -65,16 +66,19 @@ class RosterControllerTest : public CppUnit::TestFixture delete presenceOracle_; delete stanzaChannel_; delete uiEventStream_; - delete treeWidgetFactory_; }; + GroupRosterItem* groupChild(size_t i) { + return dynamic_cast<GroupRosterItem*>(CHILDREN[i]); + } + void testAdd() { std::vector<String> groups; groups.push_back("testGroup1"); groups.push_back("testGroup2"); xmppRoster_->addContact(JID("test@testdomain.com/bob"), "name", groups, RosterItemPayload::Both); - CPPUNIT_ASSERT_EQUAL(2, (int)treeWidgetFactory_->getGroups().size()); + CPPUNIT_ASSERT_EQUAL(2, (int)CHILDREN.size()); //CPPUNIT_ASSERT_EQUAL(String("Bob"), xmppRoster_->getNameForJID(JID("foo@bar.com"))); }; @@ -83,15 +87,15 @@ class RosterControllerTest : public CppUnit::TestFixture JID jid("test@testdomain.com"); xmppRoster_->addContact(jid, "name", groups, RosterItemPayload::None); - CPPUNIT_ASSERT_EQUAL(1, (int)treeWidgetFactory_->getGroups().size()); - CPPUNIT_ASSERT_EQUAL(1, (int)treeWidgetFactory_->getGroupMembers("Contacts").size()); + CPPUNIT_ASSERT_EQUAL(1, (int)CHILDREN.size()); + CPPUNIT_ASSERT_EQUAL(1, (int)groupChild(0)->getChildren().size()); xmppRoster_->addContact(jid, "name", groups, RosterItemPayload::To); - CPPUNIT_ASSERT_EQUAL(1, (int)treeWidgetFactory_->getGroups().size()); - CPPUNIT_ASSERT_EQUAL(1, (int)treeWidgetFactory_->getGroupMembers("Contacts").size()); + CPPUNIT_ASSERT_EQUAL(1, (int)CHILDREN.size()); + CPPUNIT_ASSERT_EQUAL(1, (int)groupChild(0)->getChildren().size()); xmppRoster_->addContact(jid, "name", groups, RosterItemPayload::Both); - CPPUNIT_ASSERT_EQUAL(1, (int)treeWidgetFactory_->getGroups().size()); - CPPUNIT_ASSERT_EQUAL(1, (int)treeWidgetFactory_->getGroupMembers("Contacts").size()); + CPPUNIT_ASSERT_EQUAL(1, (int)CHILDREN.size()); + CPPUNIT_ASSERT_EQUAL(1, (int)groupChild(0)->getChildren().size()); }; @@ -100,20 +104,20 @@ class RosterControllerTest : public CppUnit::TestFixture JID jid("test@testdomain.com"); xmppRoster_->addContact(jid, "name", groups, RosterItemPayload::Both); - CPPUNIT_ASSERT_EQUAL(1, (int)treeWidgetFactory_->getGroups().size()); - CPPUNIT_ASSERT_EQUAL(1, (int)treeWidgetFactory_->getGroupMembers("Contacts").size()); + CPPUNIT_ASSERT_EQUAL(1, (int)CHILDREN.size()); + CPPUNIT_ASSERT_EQUAL(1, (int)groupChild(0)->getChildren().size()); + CPPUNIT_ASSERT_EQUAL(String("name"), groupChild(0)->getChildren()[0]->getDisplayName()); xmppRoster_->addContact(jid, "NewName", groups, RosterItemPayload::Both); - CPPUNIT_ASSERT_EQUAL(1, (int)treeWidgetFactory_->getGroups().size()); - CPPUNIT_ASSERT_EQUAL(1, (int)treeWidgetFactory_->getGroupMembers("Contacts").size()); - CPPUNIT_ASSERT_EQUAL(String("NewName"), treeWidgetFactory_->getGroupMembers("Contacts")[0]->getText()); + CPPUNIT_ASSERT_EQUAL(1, (int)CHILDREN.size()); + CPPUNIT_ASSERT_EQUAL(1, (int)groupChild(0)->getChildren().size()); + CPPUNIT_ASSERT_EQUAL(String("NewName"), groupChild(0)->getChildren()[0]->getDisplayName()); }; private: JID jid_; boost::shared_ptr<XMPPRoster> xmppRoster_; AvatarManager* avatarManager_; - MainWindowFactory* mainWindowFactory_; - MockTreeWidgetFactory* treeWidgetFactory_; + MockMainWindowFactory* mainWindowFactory_; NickResolver* nickResolver_; RosterController* rosterController_; DummyIQChannel* channel_; @@ -122,6 +126,8 @@ class RosterControllerTest : public CppUnit::TestFixture PresenceOracle* presenceOracle_; EventController* eventController_; UIEventStream* uiEventStream_; + MockMainWindow* mainWindow_; }; +#undef children CPPUNIT_TEST_SUITE_REGISTRATION(RosterControllerTest); |