Files
        @ 254143e164d1
    
        
              Branch filter: 
        
    Location: libtransport.git/src/tests/localbuddy.cpp - annotation
        
            
            254143e164d1
            4.3 KiB
            text/x-c++hdr
        
        
    
    spectrum2_manager can run as web-server providing simple web-interface
    | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 31b80dbe76f2 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 31b80dbe76f2 7b287fdc66eb 7b287fdc66eb 7b287fdc66eb | #include "transport/userregistry.h"
#include "transport/config.h"
#include "transport/storagebackend.h"
#include "transport/user.h"
#include "transport/transport.h"
#include "transport/conversation.h"
#include "transport/usermanager.h"
#include "transport/localbuddy.h"
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include <Swiften/Swiften.h>
#include <Swiften/EventLoop/DummyEventLoop.h>
#include <Swiften/Server/Server.h>
#include <Swiften/Network/DummyNetworkFactories.h>
#include <Swiften/Network/DummyConnectionServer.h>
#include "Swiften/Server/ServerStanzaChannel.h"
#include "Swiften/Server/ServerFromClientSession.h"
#include "Swiften/Parser/PayloadParsers/FullPayloadParserFactoryCollection.h"
#include "basictest.h"
using namespace Transport;
class LocalBuddyTest : public CPPUNIT_NS :: TestFixture, public BasicTest {
	CPPUNIT_TEST_SUITE(LocalBuddyTest);
	CPPUNIT_TEST(createWithInvalidName);
	CPPUNIT_TEST(buddyFlagsFromJID);
	CPPUNIT_TEST(JIDToLegacyName);
	CPPUNIT_TEST(handleBuddyChanged);
	CPPUNIT_TEST(setAlias);
	CPPUNIT_TEST_SUITE_END();
	public:
		void setUp (void) {
			setMeUp();
			connectUser();
			received.clear();
		}
		void tearDown (void) {
			received.clear();
			disconnectUser();
			tearMeDown();
		}
	void createWithInvalidName() {
		User *user = userManager->getUser("user@localhost");
		CPPUNIT_ASSERT(user);
		std::vector<std::string> grp;
		grp.push_back("group");
		// with BUDDY_JID_ESCAPING it escapes /
		LocalBuddy *buddy = new LocalBuddy(user->getRosterManager(), -1, "msn/something", "Buddy 1", grp, BUDDY_JID_ESCAPING);
		CPPUNIT_ASSERT(buddy->isValid());
		CPPUNIT_ASSERT_EQUAL(std::string("msn\\2fsomething@localhost/bot"), buddy->getJID().toString());
		delete buddy;
		// without BUDDY_JID_ESCAPING it shoudl fail
		buddy = new LocalBuddy(user->getRosterManager(), -1, "msn/something", "Buddy 1", grp);
		CPPUNIT_ASSERT(!buddy->isValid());
		delete buddy;
		buddy = new LocalBuddy(user->getRosterManager(), -1, "\xd7\x92\xd7\x9c\xd7\x99\xd7\x9d@nimbuzz.com", "Buddy 1", grp);
		CPPUNIT_ASSERT(!buddy->isValid());
		delete buddy;
	}
	void JIDToLegacyName() {
		CPPUNIT_ASSERT_EQUAL(std::string("hanzz@test"), Buddy::JIDToLegacyName("hanzz\\40test@localhost/bot"));
		CPPUNIT_ASSERT_EQUAL(std::string("hanzz@test"), Buddy::JIDToLegacyName("hanzz%test@localhost/bot"));
	}
	void buddyFlagsFromJID() {
		CPPUNIT_ASSERT_EQUAL(BUDDY_JID_ESCAPING, Buddy::buddyFlagsFromJID("hanzz\\40test@localhost/bot"));
		CPPUNIT_ASSERT_EQUAL(BUDDY_NO_FLAG, Buddy::buddyFlagsFromJID("hanzz%test@localhost/bot"));
	}
	void handleBuddyChanged() {
		User *user = userManager->getUser("user@localhost");
		CPPUNIT_ASSERT(user);
		std::vector<std::string> grp;
		grp.push_back("group1");
		LocalBuddy *buddy = new LocalBuddy(user->getRosterManager(), -1, "buddy1", "Buddy 1", grp, BUDDY_JID_ESCAPING);
		buddy->setStatus(Swift::StatusShow(Swift::StatusShow::Away), "status1");
		user->getRosterManager()->setBuddy(buddy);
		received.clear();
		buddy->handleBuddyChanged();
		CPPUNIT_ASSERT_EQUAL(1, (int) received.size());
		CPPUNIT_ASSERT(dynamic_cast<Swift::Presence *>(getStanza(received[0])));
		CPPUNIT_ASSERT_EQUAL(Swift::StatusShow::Away, dynamic_cast<Swift::Presence *>(getStanza(received[0]))->getShow());
		CPPUNIT_ASSERT_EQUAL(std::string("status1"), dynamic_cast<Swift::Presence *>(getStanza(received[0]))->getStatus());
	}
	void setAlias() {
		User *user = userManager->getUser("user@localhost");
		CPPUNIT_ASSERT(user);
		std::vector<std::string> grp;
		grp.push_back("group1");
		LocalBuddy *buddy = new LocalBuddy(user->getRosterManager(), -1, "buddy1", "Buddy 1", grp, BUDDY_JID_ESCAPING);
		buddy->setStatus(Swift::StatusShow(Swift::StatusShow::Away), "status1");
		user->getRosterManager()->setBuddy(buddy);
		received.clear();
		buddy->setAlias("Buddy 2");
		CPPUNIT_ASSERT_EQUAL(1, (int) received.size());
		Swift::RosterPayload::ref payload1 = getStanza(received[0])->getPayload<Swift::RosterPayload>();
		CPPUNIT_ASSERT(payload1);
		CPPUNIT_ASSERT_EQUAL(1, (int) payload1->getItems().size());
		Swift::RosterItemPayload item = payload1->getItems()[0];
		CPPUNIT_ASSERT_EQUAL(std::string("buddy1"), Buddy::JIDToLegacyName(item.getJID()));
		CPPUNIT_ASSERT_EQUAL(std::string("Buddy 2"), item.getName());
	}
};
CPPUNIT_TEST_SUITE_REGISTRATION (LocalBuddyTest);
 |