From 83d55c4e8ffdc5e0efb41a2b4f0cd76cc1e5d8d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Fri, 17 Sep 2010 11:59:40 +0200 Subject: Added XMPP parser tester. diff --git a/Swiften/Examples/EchoBot/SConscript b/Swiften/Examples/EchoBot/SConscript index 711d8ea..fb7749d 100644 --- a/Swiften/Examples/EchoBot/SConscript +++ b/Swiften/Examples/EchoBot/SConscript @@ -10,4 +10,5 @@ myenv.MergeFlags(myenv["OPENSSL_FLAGS"]) myenv.MergeFlags(myenv.get("LIBXML_FLAGS", "")) myenv.MergeFlags(myenv.get("EXPAT_FLAGS", "")) myenv.MergeFlags(myenv["PLATFORM_FLAGS"]) -tester = myenv.Program("EchoBot", ["EchoBot.cpp"]) + +myenv.Program("EchoBot", ["EchoBot.cpp"]) diff --git a/Swiften/Examples/ParserTester/.gitignore b/Swiften/Examples/ParserTester/.gitignore new file mode 100644 index 0000000..cbc6f36 --- /dev/null +++ b/Swiften/Examples/ParserTester/.gitignore @@ -0,0 +1 @@ +ParserTester diff --git a/Swiften/Examples/ParserTester/ParserTester.cpp b/Swiften/Examples/ParserTester/ParserTester.cpp new file mode 100644 index 0000000..3cc87e1 --- /dev/null +++ b/Swiften/Examples/ParserTester/ParserTester.cpp @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include +#include +#include + +#include "Swiften/Parser/UnitTest/ParserTester.h" +#include "Swiften/Parser/XMPPParser.h" +#include "Swiften/Parser/XMPPParserClient.h" +#include "Swiften/Parser/PayloadParsers/FullPayloadParserFactoryCollection.h" + +using namespace Swift; + +class MyXMPPParserClient : public XMPPParserClient { + public: + virtual void handleStreamStart(const ProtocolHeader&) { + std::cout << "-> Stream start" << std::endl; + } + virtual void handleElement(boost::shared_ptr element) { + std::cout << "-> Element " << typeid(*element.get()).name() << std::endl; + } + virtual void handleStreamEnd() { + std::cout << "-> Stream end" << std::endl; + } +}; + +int main(int argc, char* argv[]) { + if (argc != 2) { + std::cerr << "Usage: " << argv[0] << " file" << std::endl; + return 0; + } + FullPayloadParserFactoryCollection factories; + MyXMPPParserClient parserClient; + XMPPParser parser(&parserClient, &factories); + ParserTester tester(&parser); + + std::string line; + std::ifstream myfile (argv[1]); + if (myfile.is_open()) { + while (!myfile.eof()) { + getline (myfile,line); + std::cout << "Parsing: " << line << std::endl; + tester.parse(line); + } + myfile.close(); + } + else { + std::cerr << "Unable to open file " << argv[1] << std::endl; + } + return 0; +} diff --git a/Swiften/Examples/ParserTester/SConscript b/Swiften/Examples/ParserTester/SConscript new file mode 100644 index 0000000..e3df0ba --- /dev/null +++ b/Swiften/Examples/ParserTester/SConscript @@ -0,0 +1,11 @@ +Import("env") + +myenv = env.Clone() +myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) +myenv.MergeFlags(myenv["LIBIDN_FLAGS"]) +myenv.MergeFlags(myenv["BOOST_FLAGS"]) +myenv.MergeFlags(myenv.get("LIBXML_FLAGS", "")) +myenv.MergeFlags(myenv.get("EXPAT_FLAGS", "")) +myenv.MergeFlags(myenv["PLATFORM_FLAGS"]) + +myenv.Program("ParserTester", ["ParserTester.cpp"]) diff --git a/Swiften/Examples/SConscript b/Swiften/Examples/SConscript index 1c95e85..64d1859 100644 --- a/Swiften/Examples/SConscript +++ b/Swiften/Examples/SConscript @@ -7,4 +7,5 @@ SConscript(dirs = [ "ConnectivityTest", "LinkLocalTool", "EchoBot", + "ParserTester", ]) -- cgit v0.10.2-6-g49f6