diff --git a/src/tests/basictest.cpp b/src/tests/basictest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9de4b33abf80d2f6fb191f59c31bd2a999e2bbbe --- /dev/null +++ b/src/tests/basictest.cpp @@ -0,0 +1,90 @@ +#include "basictest.h" +#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 +#include +#include +#include +#include +#include +#include +#include "Swiften/Server/ServerStanzaChannel.h" +#include "Swiften/Server/ServerFromClientSession.h" +#include "Swiften/Parser/PayloadParsers/FullPayloadParserFactoryCollection.h" + +using namespace Transport; + +void BasicTest::setMeUp (void) { + streamEnded = false; + std::istringstream ifs("service.server_mode = 1\n"); + cfg = new Config(); + cfg->load(ifs); + + factory = new TestingFactory(); + + loop = new Swift::DummyEventLoop(); + factories = new Swift::DummyNetworkFactories(loop); + + userRegistry = new UserRegistry(cfg, factories); + + component = new Component(loop, factories, cfg, factory, userRegistry); + component->start(); + + userManager = new UserManager(component, userRegistry); + + payloadSerializers = new Swift::FullPayloadSerializerCollection(); + payloadParserFactories = new Swift::FullPayloadParserFactoryCollection(); + parser = new Swift::XMPPParser(this, payloadParserFactories, factories->getXMLParserFactory()); + + serverFromClientSession = boost::shared_ptr(new Swift::ServerFromClientSession("id", factories->getConnectionFactory()->createConnection(), + payloadParserFactories, payloadSerializers, userRegistry, factories->getXMLParserFactory(), Swift::JID("user@localhost/resource"))); + serverFromClientSession->startSession(); + + serverFromClientSession->onDataWritten.connect(boost::bind(&BasicTest::handleDataReceived, this, _1)); + + dynamic_cast(component->getStanzaChannel())->addSession(serverFromClientSession); + parser->parse(""); + received.clear(); + loop->processEvents(); +} + +void BasicTest::tearMeDown (void) { + dynamic_cast(component->getStanzaChannel())->removeSession(serverFromClientSession); + delete component; + delete userRegistry; + delete factories; + delete factory; + delete loop; + delete cfg; + delete parser; + received.clear(); +} + +void BasicTest::handleDataReceived(const Swift::SafeByteArray &data) { +parser->parse(safeByteArrayToString(data)); +} + +void BasicTest::handleStreamStart(const Swift::ProtocolHeader&) { + +} + +void BasicTest::handleElement(boost::shared_ptr element) { +received.push_back(element); +} + +void BasicTest::handleStreamEnd() { + streamEnded = true; +} + +Swift::Stanza *BasicTest::getStanza(boost::shared_ptr element) { + Swift::Stanza *stanza = dynamic_cast(element.get()); + CPPUNIT_ASSERT(stanza); + return stanza; +} +