diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-07-22 12:38:43 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-07-22 12:38:43 (GMT) |
commit | f2d8c967076e5d8ebd3ca718e14edef8acb5f87c (patch) | |
tree | 0bed80b7ff8081a6108e7c847a4489de272679c8 /test/src | |
parent | 7bd0256239f247ed01ee6c673e31283c794bb3d0 (diff) | |
download | uscxml-f2d8c967076e5d8ebd3ca718e14edef8acb5f87c.zip uscxml-f2d8c967076e5d8ebd3ca718e14edef8acb5f87c.tar.gz uscxml-f2d8c967076e5d8ebd3ca718e14edef8acb5f87c.tar.bz2 |
Removed iOS project again
Diffstat (limited to 'test/src')
-rw-r--r-- | test/src/test-arabica-parsing.cpp | 48 | ||||
-rw-r--r-- | test/src/test-datamodel.cpp | 80 | ||||
-rw-r--r-- | test/src/test-predicates.cpp | 3 |
3 files changed, 130 insertions, 1 deletions
diff --git a/test/src/test-arabica-parsing.cpp b/test/src/test-arabica-parsing.cpp new file mode 100644 index 0000000..2a09dd6 --- /dev/null +++ b/test/src/test-arabica-parsing.cpp @@ -0,0 +1,48 @@ +#include "uscxml/config.h" +#include "uscxml/Common.h" +#include <DOM/Document.hpp> +#include <XPath/XPath.hpp> +#include <DOM/SAX2DOM/SAX2DOM.hpp> +#include <DOM/io/Stream.hpp> +#include <SAX/helpers/CatchErrorHandler.hpp> +#include <DOM/Events/EventTarget.hpp> +#include <DOM/Events/EventListener.hpp> + +using namespace Arabica::DOM; + +int main(int argc, char** argv) { + + { + std::stringstream* ss = new std::stringstream(); + (*ss) << "<root>\n<![CDATA[\n< \" ' < > &\n]]>\n</root>"; + // we need an auto_ptr for arabica to assume ownership + std::auto_ptr<std::istream> ssPtr(ss); + Arabica::SAX::InputSource<std::string> inputSource(ssPtr); + + Arabica::SAX2DOM::Parser<std::string> domParser; + Arabica::SAX::CatchErrorHandler<std::string> errorHandler; + domParser.setErrorHandler(errorHandler); + + if(!domParser.parse(inputSource)) { + std::cout << errorHandler.errors(); + return -1; + } + std::cout << domParser.getDocument().getDocumentElement().getFirstChild().getNodeValue() << std::endl; + std::cout << domParser.getDocument() << std::endl; + } + { + Arabica::SAX::InputSource<std::string> inputSource; + inputSource.setSystemId("/Users/sradomski/Documents/TK/Code/uscxml/test/samples/uscxml/arabica/test-arabica-parsing.xml"); + + Arabica::SAX2DOM::Parser<std::string> domParser; + Arabica::SAX::CatchErrorHandler<std::string> errorHandler; + domParser.setErrorHandler(errorHandler); + + if(!domParser.parse(inputSource)) { + std::cout << errorHandler.errors(); + return -1; + } + std::cout << domParser.getDocument() << std::endl; + } + +}
\ No newline at end of file diff --git a/test/src/test-datamodel.cpp b/test/src/test-datamodel.cpp new file mode 100644 index 0000000..77f0851 --- /dev/null +++ b/test/src/test-datamodel.cpp @@ -0,0 +1,80 @@ +#include "uscxml/URL.h" +#include "uscxml/Message.h" +#include "uscxml/Interpreter.h" +#include "uscxml/server/HTTPServer.h" + +#include <SAX/helpers/InputSourceResolver.hpp> + +#include <assert.h> +#include <boost/algorithm/string.hpp> +#include <iostream> + +using namespace uscxml; +using namespace boost; + + +int main(int argc, char** argv) { +#ifdef _WIN32 + WSADATA wsaData; + WSAStartup(MAKEWORD(2, 2), &wsaData); +#endif + + DataModel dm(Factory::getInstance()->createDataModel("ecmascript", NULL)); + dm.evalAsString("var foo = 12"); + + { + std::string content = "$"; + int rplc = dm.replaceExpressions(content); + assert(rplc == 0); + std::cout << content << std::endl; + assert(boost::equals(content, "$")); + } + + { + std::string content = "$sadf ${foo}"; + int rplc = dm.replaceExpressions(content); + assert(rplc == 1); + std::cout << content << std::endl; + assert(boost::equals(content, "$sadf 12")); + } + + { + std::string content = "${"; + int rplc = dm.replaceExpressions(content); + assert(rplc == 0); + std::cout << content << std::endl; + assert(boost::equals(content, "${")); + } + + { + std::string content = "${foo}"; + int rplc = dm.replaceExpressions(content); + assert(rplc == 1); + std::cout << content << std::endl; + assert(boost::equals(content, "12")); + } + + { + std::string content = "${bar}"; + int rplc = dm.replaceExpressions(content); + assert(rplc == 0); + std::cout << content << std::endl; + assert(boost::equals(content, "${bar}")); + } + + { + std::string content = "There are ${bar} monkeys! Really ${foo} monkeys!"; + int rplc = dm.replaceExpressions(content); + assert(rplc == 1); + std::cout << content << std::endl; + assert(boost::equals(content, "There are ${bar} monkeys! Really 12 monkeys!")); + } + + { + std::string content = "There are ${foo} monkeys! Really ${foo} monkeys!"; + int rplc = dm.replaceExpressions(content); + assert(rplc == 2); + std::cout << content << std::endl; + assert(boost::equals(content, "There are 12 monkeys! Really 12 monkeys!")); + } +}
\ No newline at end of file diff --git a/test/src/test-predicates.cpp b/test/src/test-predicates.cpp index 954afb2..ff61f92 100644 --- a/test/src/test-predicates.cpp +++ b/test/src/test-predicates.cpp @@ -56,6 +56,7 @@ int main(int argc, char** argv) { assert(InterpreterImpl::nameMatch(transEvents, "foo.bar")); assert(!InterpreterImpl::nameMatch(transEvents, "errors.my.custom")); assert(!InterpreterImpl::nameMatch(transEvents, "errorhandler.mistake")); - assert(!InterpreterImpl::nameMatch(transEvents, "errOr.send")); + // is the event name case sensitive? + // assert(!InterpreterImpl::nameMatch(transEvents, "errOr.send")); assert(!InterpreterImpl::nameMatch(transEvents, "foobar")); }
\ No newline at end of file |