diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-08-15 10:08:41 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-08-15 10:08:41 (GMT) |
commit | 9149b28c87c7a037dfd244aa5d4c1409b6593dca (patch) | |
tree | 939c00d28864910a0ca8a67e70fadae9b6f05cc7 /test/src | |
parent | 322e868668a1e5b9595a21737aabe8d0d8b8d275 (diff) | |
download | uscxml-9149b28c87c7a037dfd244aa5d4c1409b6593dca.zip uscxml-9149b28c87c7a037dfd244aa5d4c1409b6593dca.tar.gz uscxml-9149b28c87c7a037dfd244aa5d4c1409b6593dca.tar.bz2 |
More JVoiceXML integration
Diffstat (limited to 'test/src')
-rw-r--r-- | test/src/test-arabica-namespaces.cpp | 20 | ||||
-rw-r--r-- | test/src/test-mmi.cpp | 289 | ||||
-rw-r--r-- | test/src/test-vxml-mmi-http.cpp | 12 |
3 files changed, 300 insertions, 21 deletions
diff --git a/test/src/test-arabica-namespaces.cpp b/test/src/test-arabica-namespaces.cpp index bc3e62f..32feacd 100644 --- a/test/src/test-arabica-namespaces.cpp +++ b/test/src/test-arabica-namespaces.cpp @@ -95,8 +95,8 @@ static void validateRootFoo(std::pair<Document<std::string>, NameSpaceInfo>& par Node<std::string> root = document.getDocumentElement(); _xpath.setNamespaceContext(*nsInfo.getNSContext()); - assert(TAGNAME(root) == nsInfo.xmlNSPrefix + "root"); - assert(LOCALNAME(root) == "root"); + assert(TAGNAME_CAST(root) == nsInfo.xmlNSPrefix + "root"); + assert(LOCALNAME_CAST(root) == "root"); NodeSet<std::string> foosFiltered = InterpreterImpl::filterChildElements(nsInfo.xmlNSPrefix + "foo", root); assert(foosFiltered.size() == 3); NodeSet<std::string> foosXPath = _xpath.evaluate("//" + nsInfo.xpathPrefix + "foo", root).asNodeSet(); @@ -104,8 +104,8 @@ static void validateRootFoo(std::pair<Document<std::string>, NameSpaceInfo>& par for (int i = 0; i < 3; i++) { assert(foosFiltered[i] == foosXPath[i]); - assert(TAGNAME(foosFiltered[i]) == nsInfo.xmlNSPrefix + "foo"); - assert(LOCALNAME(foosFiltered[i]) == "foo"); + assert(TAGNAME_CAST(foosFiltered[i]) == nsInfo.xmlNSPrefix + "foo"); + assert(LOCALNAME_CAST(foosFiltered[i]) == "foo"); } } @@ -126,8 +126,8 @@ static void validateRootFooBar(std::pair<Document<std::string>, NameSpaceInfo>& for (int i = 0; i < 3; i++) { assert(barsFiltered[i] == barsXPath[i]); - assert(TAGNAME(barsFiltered[i]) == nsInfo.xmlNSPrefix + "bar"); - assert(LOCALNAME(barsFiltered[i]) == "bar"); + assert(TAGNAME_CAST(barsFiltered[i]) == nsInfo.xmlNSPrefix + "bar"); + assert(LOCALNAME_CAST(barsFiltered[i]) == "bar"); } } @@ -141,8 +141,8 @@ static void validateRootFooBarBaz(std::pair<Document<std::string>, NameSpaceInfo Node<std::string> root = document.getDocumentElement(); _xpath.setNamespaceContext(*nsInfo.getNSContext()); - assert(TAGNAME(root) == nsInfo.xmlNSPrefix + "root"); - assert(LOCALNAME(root) == "root"); + assert(TAGNAME_CAST(root) == nsInfo.xmlNSPrefix + "root"); + assert(LOCALNAME_CAST(root) == "root"); NodeSet<std::string> bazsFiltered = InterpreterImpl::filterChildElements(nsInfo.xmlNSPrefix + "baz", root); assert(bazsFiltered.size() == 3); @@ -151,8 +151,8 @@ static void validateRootFooBarBaz(std::pair<Document<std::string>, NameSpaceInfo for (int i = 0; i < 3; i++) { assert(bazsFiltered[i] == bazsXPath[i]); - assert(TAGNAME(bazsFiltered[i]) == nsInfo.xmlNSPrefix + "baz"); - assert(LOCALNAME(bazsFiltered[i]) == "baz"); + assert(TAGNAME_CAST(bazsFiltered[i]) == nsInfo.xmlNSPrefix + "baz"); + assert(LOCALNAME_CAST(bazsFiltered[i]) == "baz"); } } diff --git a/test/src/test-mmi.cpp b/test/src/test-mmi.cpp index 0b9f5f9..eeb71ee 100644 --- a/test/src/test-mmi.cpp +++ b/test/src/test-mmi.cpp @@ -1,7 +1,7 @@ #include <iostream> #include <string> -#include "uscxml/plugins/ioprocessor/modality/MMIMessages.h" +#include "uscxml/messages/MMIMessages.h" #include <SAX/helpers/InputSourceResolver.hpp> #include <DOM/SAX2DOM/SAX2DOM.hpp> @@ -30,19 +30,30 @@ int main(int argc, char** argv) { // --- NewContextRequest std::stringstream ss; ss << "<mmi:mmi xmlns:mmi=\"http://www.w3.org/2008/04/mmi-arch\" version=\"1.0\"><mmi:NewContextRequest mmi:Source=\"someURI\" mmi:Target=\"someOtherURI\" mmi:RequestID=\"request-1\"></mmi:NewContextRequest></mmi:mmi>"; + NewContextRequest msg = NewContextRequest::fromXML(xmlToDoc(ss.str())); assert(boost::iequals(msg.tagName, "NewContextRequest")); assert(boost::iequals(msg.source, "someURI")); assert(boost::iequals(msg.target, "someOtherURI")); assert(boost::iequals(msg.requestId, "request-1")); assert(boost::iequals(msg.data, "")); - + NewContextRequest msg2 = NewContextRequest::fromXML(msg.toXML()); assert(boost::iequals(msg2.tagName, "NewContextRequest")); assert(boost::iequals(msg2.source, "someURI")); assert(boost::iequals(msg2.target, "someOtherURI")); assert(boost::iequals(msg2.requestId, "request-1")); assert(boost::iequals(msg2.data, "")); + + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.request.newcontext"); + assert(ev.origin == msg.source); } { @@ -69,10 +80,20 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.context, "URI-1")); assert(boost::iequals(msg2.data, "")); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.response.newcontext"); + assert(ev.origin == msg.source); + } { - // --- PrepareRequest + // --- PrepareRequest ContentURL std::stringstream ss; ss << "<mmi:mmi xmlns:mmi=\"http://www.w3.org/2008/04/mmi-arch\" version=\"1.0\"> <mmi:PrepareRequest mmi:Source=\"someURI\" mmi:Target=\"someOtherURI\" mmi:Context=\"URI-1\" mmi:RequestID=\"request-1\"> <mmi:ContentURL mmi:href=\"someContentURI\" mmi:max-age=\"\" mmi:fetchtimeout=\"1s\"/> </mmi:PrepareRequest></mmi:mmi>"; PrepareRequest msg = PrepareRequest::fromXML(xmlToDoc(ss.str())); @@ -99,10 +120,20 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.contentURL.maxAge, "")); assert(boost::iequals(msg2.contentURL.fetchTimeout, "1s")); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.request.prepare"); + assert(ev.origin == msg.source); + } { - // --- PrepareRequest + // --- PrepareRequest Content std::stringstream ss; ss << "<mmi:mmi xmlns:mmi=\"http://www.w3.org/2008/04/mmi-arch\" version=\"1.0\" xmlns:vxml=\"http://www.w3.org/2001/vxml\"> <mmi:PrepareRequest mmi:Source=\"someURI\" mmi:Target=\"someOtherURI\" mmi:Context=\"URI-1\" mmi:RequestID=\"request-1\" > <mmi:content> <vxml:vxml version=\"2.0\"> <vxml:form> <vxml:block>Hello World!</vxml:block> </vxml:form> </vxml:vxml> </mmi:content> </mmi:PrepareRequest></mmi:mmi>"; PrepareRequest msg = PrepareRequest::fromXML(xmlToDoc(ss.str())); @@ -111,8 +142,8 @@ int main(int argc, char** argv) { assert(boost::iequals(msg.target, "someOtherURI")); assert(boost::iequals(msg.requestId, "request-1")); assert(boost::iequals(msg.context, "URI-1")); - assert(msg.content.size() > 0); - + assert(msg.contentDOM); + PrepareRequest msg2 = PrepareRequest::fromXML(msg.toXML()); assert(boost::iequals(msg2.tagName, "PrepareRequest")); assert(boost::iequals(msg2.source, "someURI")); @@ -121,6 +152,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.context, "URI-1")); assert(msg2.content.size() > 0); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.request.prepare"); + assert(ev.origin == msg.source); + } { @@ -143,6 +184,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.context, "someURI")); assert(msg2.status == StatusResponse::SUCCESS); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.response.prepare"); + assert(ev.origin == msg.source); + } { @@ -167,6 +218,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.statusInfo, " NotAuthorized ")); assert(msg2.status == StatusResponse::FAILURE); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.response.prepare"); + assert(ev.origin == msg.source); + } { @@ -187,9 +248,52 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.requestId, "request-1")); assert(boost::iequals(msg2.context, "URI-1")); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.request.start"); + assert(ev.origin == msg.source); + } { + // --- StartRequest + std::stringstream ss; + ss << "<mmi:mmi xmlns:mmi=\"http://www.w3.org/2008/04/mmi-arch\" version=\"1.0\"> <mmi:StartRequest mmi:Source=\"someURI\" mmi:Target=\"someOtherURI\" mmi:Context=\"URI-1\" mmi:RequestID=\"request-1\"> <mmi:ContentURL mmi:href=\"someContentURI\" mmi:max-age=\"\" mmi:fetchtimeout=\"1s\"/> <mmi:Data> { \"foo\": 12 } </mmi:Data> </mmi:StartRequest></mmi:mmi>"; + StartRequest msg = StartRequest::fromXML(xmlToDoc(ss.str())); + assert(boost::iequals(msg.tagName, "StartRequest")); + assert(boost::iequals(msg.source, "someURI")); + assert(boost::iequals(msg.target, "someOtherURI")); + assert(boost::iequals(msg.requestId, "request-1")); + assert(boost::iequals(msg.context, "URI-1")); + + StartRequest msg2 = StartRequest::fromXML(msg.toXML()); + assert(boost::iequals(msg2.tagName, "StartRequest")); + assert(boost::iequals(msg2.source, "someURI")); + assert(boost::iequals(msg2.target, "someOtherURI")); + assert(boost::iequals(msg2.requestId, "request-1")); + assert(boost::iequals(msg2.context, "URI-1")); + + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.request.start"); + assert(ev.data.compound["foo"] == 12); + assert(ev.origin == msg.source); + + } + + + + { // --- StartResponse std::stringstream ss; ss << "<mmi:mmi xmlns:mmi=\"http://www.w3.org/2008/04/mmi-arch\" version=\"1.0\"> <mmi:StartResponse mmi:Source=\"someURI\" mmi:Target=\"someOtherURI\" mmi:Context=\"someURI\" mmi:RequestID=\"request-1\" mmi:Status=\"failure\"> <mmi:statusInfo> NotAuthorized </mmi:statusInfo> </mmi:StartResponse></mmi:mmi>"; @@ -211,6 +315,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.statusInfo, " NotAuthorized ")); assert(msg2.status == StatusResponse::FAILURE); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.response.start"); + assert(ev.origin == msg.source); + } { @@ -235,6 +349,16 @@ int main(int argc, char** argv) { assert(msg2.data.size() > 0); assert(msg2.status == StatusResponse::SUCCESS); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.notification.done"); + assert(ev.origin == msg.source); + } { @@ -259,6 +383,16 @@ int main(int argc, char** argv) { assert(msg2.data.size() > 0); assert(msg2.status == StatusResponse::SUCCESS); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.notification.done"); + assert(ev.origin == msg.source); + } { @@ -279,6 +413,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.requestId, "request-1")); assert(boost::iequals(msg2.context, "someURI")); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.request.cancel"); + assert(ev.origin == msg.source); + } { @@ -301,6 +445,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.context, "someURI")); assert(msg2.status == StatusResponse::SUCCESS); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.response.cancel"); + assert(ev.origin == msg.source); + } { @@ -321,6 +475,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.requestId, "request-1")); assert(boost::iequals(msg2.context, "someURI")); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.request.pause"); + assert(ev.origin == msg.source); + } { @@ -343,6 +507,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.context, "someURI")); assert(msg2.status == StatusResponse::SUCCESS); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.response.pause"); + assert(ev.origin == msg.source); + } { @@ -363,6 +537,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.requestId, "request-1")); assert(boost::iequals(msg2.context, "someURI")); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.request.resume"); + assert(ev.origin == msg.source); + } { @@ -385,6 +569,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.context, "someURI")); assert(msg2.status == StatusResponse::SUCCESS); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.response.resume"); + assert(ev.origin == msg.source); + } { @@ -407,6 +601,49 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.context, "someURI")); assert(boost::iequals(msg2.name, "appEvent")); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "appEvent"); + assert(ev.origin == msg.source); + + } + + { + // --- ExtensionNotification + std::stringstream ss; + ss << "<mmi:mmi xmlns:mmi=\"http://www.w3.org/2008/04/mmi-arch\" version=\"1.0\"> <mmi:ExtensionNotification mmi:Name=\"appEvent\" mmi:Source=\"someURI\" mmi:Target=\"someOtherURI\" mmi:Context=\"someURI\" mmi:RequestID=\"request-1\"> <mmi:Data> { \"foo\": 12 } </mmi:Data> </mmi:ExtensionNotification></mmi:mmi>"; + ExtensionNotification msg = ExtensionNotification::fromXML(xmlToDoc(ss.str())); + assert(boost::iequals(msg.tagName, "ExtensionNotification")); + assert(boost::iequals(msg.source, "someURI")); + assert(boost::iequals(msg.target, "someOtherURI")); + assert(boost::iequals(msg.requestId, "request-1")); + assert(boost::iequals(msg.context, "someURI")); + assert(boost::iequals(msg.name, "appEvent")); + + ExtensionNotification msg2 = ExtensionNotification::fromXML(msg.toXML()); + assert(boost::iequals(msg2.tagName, "ExtensionNotification")); + assert(boost::iequals(msg2.source, "someURI")); + assert(boost::iequals(msg2.target, "someOtherURI")); + assert(boost::iequals(msg2.requestId, "request-1")); + assert(boost::iequals(msg2.context, "someURI")); + assert(boost::iequals(msg2.name, "appEvent")); + + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "appEvent"); + assert(ev.data.compound["foo"] == 12); + assert(ev.origin == msg.source); + } { @@ -427,6 +664,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.requestId, "request-2")); assert(boost::iequals(msg2.context, "someURI")); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.request.clearcontext"); + assert(ev.origin == msg.source); + } { @@ -449,6 +696,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.context, "someURI")); assert(msg2.status == StatusResponse::SUCCESS); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.response.clearcontext"); + assert(ev.origin == msg.source); + } { @@ -471,6 +728,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.context, "aToken")); assert(msg2.automaticUpdate); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.request.status"); + assert(ev.origin == msg.source); + } { @@ -493,6 +760,16 @@ int main(int argc, char** argv) { assert(boost::iequals(msg2.context, "aToken")); assert(msg2.status == StatusResponse::ALIVE); + std::stringstream xml1SS; + std::stringstream xml2SS; + xml1SS << msg.toXML(); + xml2SS << msg2.toXML(); + assert(xml1SS.str() == xml2SS.str()); + + Event ev = msg; + assert(ev.name == "mmi.response.status"); + assert(ev.origin == msg.source); + } }
\ No newline at end of file diff --git a/test/src/test-vxml-mmi-http.cpp b/test/src/test-vxml-mmi-http.cpp index 0e4f5a9..2b2cd25 100644 --- a/test/src/test-vxml-mmi-http.cpp +++ b/test/src/test-vxml-mmi-http.cpp @@ -22,7 +22,7 @@ #include "XGetopt.h" #endif -#define ISSUE_REQUEST(name) {\ +#define ISSUE_REQUEST(name, block) {\ Arabica::DOM::Document<std::string> name##XML = name.toXML(true);\ name##XML.getDocumentElement().setPrefix("mmi");\ std::stringstream name##XMLSS;\ @@ -31,7 +31,8 @@ std::cout << "SEND:" << std::endl << name##XMLSS.str() << std::flush;\ name##URL.setOutContent(name##XMLSS.str());\ name##URL.addOutHeader("Content-type", "application/xml");\ - name##URL.download(false);\ + name##URL.download(block);\ + std::cout << "OK" << std::endl << std::flush;\ } using namespace uscxml; @@ -144,9 +145,10 @@ int main(int argc, char** argv) { newCtxReq.source = source; newCtxReq.target = target; newCtxReq.requestId = uscxml::UUID::getUUID(); - + Requests[newCtxReq.requestId] = &newCtxReq; - ISSUE_REQUEST(newCtxReq); + + ISSUE_REQUEST(newCtxReq, false); while(Replies.find(newCtxReq.requestId) == Replies.end()) Cond.wait(Mutex); @@ -160,7 +162,7 @@ int main(int argc, char** argv) { //"https://raw.githubusercontent.com/Roland-Taizun-Azhar/TaskAssistance-Project/master/WebContent/hello.vxml"; Requests[startReq.requestId] = &startReq; - ISSUE_REQUEST(startReq); + ISSUE_REQUEST(startReq, false); while(Replies.find(startReq.requestId) == Replies.end()) Cond.wait(Mutex); |