diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2151b4c67402c4f85385684bbf392335d7efc99b..0688a10f154b8c674c8d3ec5f8dc011f0b1676be 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,4 +1,5 @@ ADD_SUBDIRECTORY(login) ADD_SUBDIRECTORY(login_bad_name) +ADD_SUBDIRECTORY(login_bad_name2) add_custom_target(tests python runtests.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/tests/login_bad_name2/.nolibircclient-qt b/tests/login_bad_name2/.nolibircclient-qt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/login_bad_name2/CMakeLists.txt b/tests/login_bad_name2/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..c437092259788619ede62f5c20b6bf6d941c43a3 --- /dev/null +++ b/tests/login_bad_name2/CMakeLists.txt @@ -0,0 +1,6 @@ +FILE(GLOB SRC *.cpp) + +ADD_EXECUTABLE(login_bad_name2_test ${SRC}) + +TARGET_LINK_LIBRARIES(login_bad_name2_test transport ${SWIFTEN_LIBRARIES} -lgconf-2 -lgobject-2.0 -lglib-2.0) + diff --git a/tests/login_bad_name2/main.cpp b/tests/login_bad_name2/main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ad210a65290265b832fd948b096332157a62f0f1 --- /dev/null +++ b/tests/login_bad_name2/main.cpp @@ -0,0 +1,45 @@ +#include +#include + +#include +#include + +using namespace Swift; +using namespace boost; + +Client* client; + +static void handleDisconnected(const boost::optional &error) { + exit(error->getType() != ClientError::AuthenticationFailedError); +} + +static void handleConnected() { + exit(1); +} + +static void handleMessageReceived(Message::ref message) { + // Echo back the incoming message + message->setTo(message->getFrom()); + message->setFrom(JID()); + client->sendMessage(message); +} + +int main(int, char **argv) { + SimpleEventLoop eventLoop; + BoostNetworkFactories networkFactories(&eventLoop); + + JID jid(std::string("something") + JID(argv[1]).getNode(), JID(argv[1]).getDomain()); + client = new Client(jid, argv[2], &networkFactories); + client->setAlwaysTrustCertificates(); + client->onConnected.connect(&handleConnected); + client->onDisconnected.connect(bind(&handleDisconnected, _1)); + client->onMessageReceived.connect(bind(&handleMessageReceived, _1)); + ClientOptions opt; + opt.allowPLAINOverNonTLS = true; + client->connect(opt); + + eventLoop.run(); + + delete client; + return 0; +} diff --git a/tests/runtests.py b/tests/runtests.py index 4a908ff10ac6a8d9798b894cf2acec31abe7bed5..391a149733cbf0dfe30ccc046ad79062068076aa 100644 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -39,6 +39,9 @@ def one_test_run(): if not os.path.exists(binary): continue + if os.path.exists(d + "/.no" + backend): + continue + p = run_spectrum(backend, d) if backend.find("purple") >= 0: @@ -62,7 +65,6 @@ def one_test_run(): os.system("killall spectrum 2> /dev/null") -while True: - one_test_run() +one_test_run()