summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp')
-rw-r--r--Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp34
1 files changed, 20 insertions, 14 deletions
diff --git a/Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp b/Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp
index ea5a705..fb3a0ee 100644
--- a/Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp
+++ b/Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp
@@ -9,7 +9,8 @@
#include "3rdParty/hippomocks.h"
#include "Swift/Controllers/XMPPEvents/EventController.h"
-#include "Swiften/Presence/PresenceSender.h"
+#include "Swiften/Presence/DirectedPresenceSender.h"
+#include "Swiften/Presence/StanzaChannelPresenceSender.h"
#include "Swiften/Avatars/NullAvatarManager.h"
#include "Swift/Controllers/Chat/MUCController.h"
#include "Swift/Controllers/UIInterfaces/ChatWindow.h"
@@ -42,7 +43,6 @@ public:
void setUp() {
self_ = JID("girl@wonderland.lit/rabbithole");
- muc_ = JID("teaparty@rooms.wonderland.lit");
nick_ = "aLiCe";
mocks_ = new MockRepository();
stanzaChannel_ = new DummyStanzaChannel();
@@ -51,14 +51,16 @@ public:
eventController_ = new EventController();
chatWindowFactory_ = mocks_->InterfaceMock<ChatWindowFactory>();
presenceOracle_ = new PresenceOracle(stanzaChannel_);
- presenceSender_ = new PresenceSender(stanzaChannel_);
+ presenceSender_ = new StanzaChannelPresenceSender(stanzaChannel_);
+ directedPresenceSender_ = new DirectedPresenceSender(presenceSender_);
uiEventStream_ = new UIEventStream();
avatarManager_ = new NullAvatarManager();
TimerFactory* timerFactory = NULL;
window_ = new MockChatWindow();//mocks_->InterfaceMock<ChatWindow>();
- mocks_->ExpectCall(chatWindowFactory_, ChatWindowFactory::createChatWindow).With(muc_, uiEventStream_).Return(window_);
- controller_ = new MUCController (self_, muc_, nick_, stanzaChannel_, presenceSender_,
- iqRouter_, chatWindowFactory_, presenceOracle_, avatarManager_, uiEventStream_, false, timerFactory, eventController_);
+ mucRegistry_ = new MUCRegistry();
+ muc_ = MUC::ref(new MUC(stanzaChannel_, iqRouter_, directedPresenceSender_, JID("teaparty@rooms.wonderland.lit"), mucRegistry_));
+ mocks_->ExpectCall(chatWindowFactory_, ChatWindowFactory::createChatWindow).With(muc_->getJID(), uiEventStream_).Return(window_);
+ controller_ = new MUCController (self_, muc_, nick_, stanzaChannel_, iqRouter_, chatWindowFactory_, presenceOracle_, avatarManager_, uiEventStream_, false, timerFactory, eventController_);
};
void tearDown() {
@@ -69,14 +71,16 @@ public:
delete uiEventStream_;
delete stanzaChannel_;
delete presenceSender_;
+ delete directedPresenceSender_;
delete iqRouter_;
delete iqChannel_;
+ delete mucRegistry_;
delete avatarManager_;
}
void finishJoin() {
Presence::ref presence(new Presence());
- presence->setFrom(JID(muc_.toString() + "/" + nick_));
+ presence->setFrom(JID(muc_->getJID().toString() + "/" + nick_));
MUCUserPayload::ref status(new MUCUserPayload());
MUCUserPayload::StatusCode code;
code.code = 110;
@@ -90,20 +94,20 @@ public:
Message::ref message(new Message());
message = Message::ref(new Message());
- message->setFrom(JID(muc_.toString() + "/otherperson"));
+ message->setFrom(JID(muc_->getJID().toString() + "/otherperson"));
message->setBody(nick_ + ": hi there");
message->setType(Message::Groupchat);
controller_->handleIncomingMessage(MessageEvent::ref(new MessageEvent(message)));
CPPUNIT_ASSERT_EQUAL((size_t)1, eventController_->getEvents().size());
- message->setFrom(JID(muc_.toString() + "/other"));
+ message->setFrom(JID(muc_->getJID().toString() + "/other"));
message->setBody("Hi there " + nick_);
message->setType(Message::Groupchat);
controller_->handleIncomingMessage(MessageEvent::ref(new MessageEvent(message)));
CPPUNIT_ASSERT_EQUAL((size_t)2, eventController_->getEvents().size());
message = Message::ref(new Message());
- message->setFrom(JID(muc_.toString() + "/other2"));
+ message->setFrom(JID(muc_->getJID().toString() + "/other2"));
message->setBody("Hi " + nick_.getLowerCase());
message->setType(Message::Groupchat);
controller_->handleIncomingMessage(MessageEvent::ref(new MessageEvent(message)));
@@ -113,7 +117,7 @@ public:
void testNotAddressedToSelf() {
finishJoin();
Message::ref message(new Message());
- message->setFrom(JID(muc_.toString() + "/other3"));
+ message->setFrom(JID(muc_->getJID().toString() + "/other3"));
message->setBody("Hi there Hatter");
message->setType(Message::Groupchat);
controller_->handleIncomingMessage(MessageEvent::ref(new MessageEvent(message)));
@@ -123,7 +127,7 @@ public:
void testAddressedToSelfBySelf() {
finishJoin();
Message::ref message(new Message());
- message->setFrom(JID(muc_.toString() + "/" + nick_));
+ message->setFrom(JID(muc_->getJID().toString() + "/" + nick_));
message->setBody("Hi there " + nick_);
message->setType(Message::Groupchat);
controller_->handleIncomingMessage(MessageEvent::ref(new MessageEvent(message)));
@@ -200,7 +204,7 @@ public:
private:
JID self_;
- JID muc_;
+ MUC::ref muc_;
String nick_;
StanzaChannel* stanzaChannel_;
IQChannel* iqChannel_;
@@ -211,10 +215,12 @@ private:
// NickResolver* nickResolver_;
PresenceOracle* presenceOracle_;
AvatarManager* avatarManager_;
- PresenceSender* presenceSender_;
+ StanzaChannelPresenceSender* presenceSender_;
+ DirectedPresenceSender* directedPresenceSender_;
MockRepository* mocks_;
UIEventStream* uiEventStream_;
MockChatWindow* window_;
+ MUCRegistry* mucRegistry_;
};
CPPUNIT_TEST_SUITE_REGISTRATION(MUCControllerTest);