diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-09-03 16:35:10 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-09-03 16:35:10 (GMT) |
commit | 630728ba5d1c263e62d65c3f3cac1520340b7172 (patch) | |
tree | 2e10cbc8000c8840f6adf5f18103c0b0e836ddbd /QA/Swiften/ClientTest/ClientTest.cpp | |
parent | 776c7f67e845e9193993cec42fa60b2e418e9c75 (diff) | |
download | swift-contrib-630728ba5d1c263e62d65c3f3cac1520340b7172.zip swift-contrib-630728ba5d1c263e62d65c3f3cac1520340b7172.tar.bz2 |
Move Swiften QA test into QA module.
Diffstat (limited to 'QA/Swiften/ClientTest/ClientTest.cpp')
-rw-r--r-- | QA/Swiften/ClientTest/ClientTest.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/QA/Swiften/ClientTest/ClientTest.cpp b/QA/Swiften/ClientTest/ClientTest.cpp new file mode 100644 index 0000000..b628a8d --- /dev/null +++ b/QA/Swiften/ClientTest/ClientTest.cpp @@ -0,0 +1,56 @@ +#include <boost/bind.hpp> +#include <boost/thread.hpp> + +#include "Swiften/Client/Client.h" +#include "Swiften/Network/Timer.h" +#include "Swiften/EventLoop/MainEventLoop.h" +#include "Swiften/EventLoop/SimpleEventLoop.h" +#include "Swiften/Queries/Requests/GetRosterRequest.h" +#include "Swiften/Client/ClientXMLTracer.h" + +using namespace Swift; + +SimpleEventLoop eventLoop; + +Client* client = 0; +bool rosterReceived = false; + +void handleRosterReceived(boost::shared_ptr<Payload>) { + rosterReceived = true; + eventLoop.stop(); +} + +void handleConnected() { + boost::shared_ptr<GetRosterRequest> rosterRequest(new GetRosterRequest(client)); + rosterRequest->onResponse.connect(boost::bind(&handleRosterReceived, _1)); + rosterRequest->send(); +} + +int main(int, char**) { + char* jid = getenv("SWIFT_CLIENTTEST_JID"); + if (!jid) { + std::cerr << "Please set the SWIFT_CLIENTTEST_JID environment variable" << std::endl; + return -1; + } + char* pass = getenv("SWIFT_CLIENTTEST_PASS"); + if (!pass) { + std::cerr << "Please set the SWIFT_CLIENTTEST_PASS environment variable" << std::endl; + return -1; + } + + client = new Swift::Client(JID(jid), String(pass)); + ClientXMLTracer* tracer = new ClientXMLTracer(client); + client->onConnected.connect(&handleConnected); + client->connect(); + + { + boost::shared_ptr<Timer> timer(new Timer(10000)); + timer->onTick.connect(boost::bind(&SimpleEventLoop::stop, &eventLoop)); + timer->start(); + + eventLoop.run(); + } + delete tracer; + delete client; + return !rosterReceived; +} |