Files
        @ 18ef257affdc
    
        
              Branch filter: 
        
    Location: libtransport.git/src/tests/networkpluginserver.cpp - annotation
        
            
            18ef257affdc
            3.6 KiB
            text/x-c++hdr
        
        
    
    Merge branch 'master' of https://github.com/hanzz/libtransport
    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  | df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 dc1cc4170e4a df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 df3276119498 dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a dc1cc4170e4a df3276119498 df3276119498 df3276119498  | #include "transport/userregistry.h"
#include "transport/userregistration.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 "transport/settingsadhoccommand.h"
#include "transport/adhocmanager.h"
#include "transport/protocol.pb.h"
#include "transport/networkpluginserver.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 NetworkPluginServerTest : public CPPUNIT_NS :: TestFixture, public BasicTest {
	CPPUNIT_TEST_SUITE(NetworkPluginServerTest);
	CPPUNIT_TEST(handleBuddyChangedPayload);
	CPPUNIT_TEST(handleBuddyChangedPayloadNoEscaping);
	CPPUNIT_TEST(handleBuddyChangedPayloadUserContactInRoster);
	CPPUNIT_TEST_SUITE_END();
	public:
		NetworkPluginServer *serv;
		void setUp (void) {
			setMeUp();
			serv = new NetworkPluginServer(component, cfg, userManager, NULL, NULL);
			connectUser();
			received.clear();
		}
		void tearDown (void) {
			received.clear();
			disconnectUser();
			delete serv;
			tearMeDown();
		}
		void handleBuddyChangedPayload() {
			User *user = userManager->getUser("user@localhost");
			pbnetwork::Buddy buddy;
			buddy.set_username("user@localhost");
			buddy.set_buddyname("buddy1@test");
			std::string message;
			buddy.SerializeToString(&message);
			serv->handleBuddyChangedPayload(message);
			CPPUNIT_ASSERT_EQUAL(1, (int) received.size());
			Swift::RosterPayload::ref payload1 = getStanza(received[0])->getPayload<Swift::RosterPayload>();
			CPPUNIT_ASSERT_EQUAL(1, (int) payload1->getItems().size());
			Swift::RosterItemPayload item = payload1->getItems()[0];
			CPPUNIT_ASSERT_EQUAL(std::string("buddy1\\40test@localhost"), item.getJID().toString());
		}
		void handleBuddyChangedPayloadNoEscaping() {
			std::istringstream ifs("service.server_mode = 1\nservice.jid_escaping=0\nservice.jid=localhost\nservice.more_resources=1\n");
			cfg->load(ifs);
			User *user = userManager->getUser("user@localhost");
			pbnetwork::Buddy buddy;
			buddy.set_username("user@localhost");
			buddy.set_buddyname("buddy1@test");
			std::string message;
			buddy.SerializeToString(&message);
			serv->handleBuddyChangedPayload(message);
			CPPUNIT_ASSERT_EQUAL(1, (int) received.size());
			Swift::RosterPayload::ref payload1 = getStanza(received[0])->getPayload<Swift::RosterPayload>();
			CPPUNIT_ASSERT_EQUAL(1, (int) payload1->getItems().size());
			Swift::RosterItemPayload item = payload1->getItems()[0];
			CPPUNIT_ASSERT_EQUAL(std::string("buddy1%test@localhost"), item.getJID().toString());
			std::istringstream ifs2("service.server_mode = 1\nservice.jid_escaping=1\nservice.jid=localhost\nservice.more_resources=1\n");
			cfg->load(ifs2);
		}
		void handleBuddyChangedPayloadUserContactInRoster() {
			User *user = userManager->getUser("user@localhost");
			pbnetwork::Buddy buddy;
			buddy.set_username("user@localhost");
			buddy.set_buddyname("user");
			std::string message;
			buddy.SerializeToString(&message);
			serv->handleBuddyChangedPayload(message);
			CPPUNIT_ASSERT_EQUAL(0, (int) received.size());
		}
};
CPPUNIT_TEST_SUITE_REGISTRATION (NetworkPluginServerTest);
 |