summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2014-10-24 09:57:13 (GMT)
committerSwift Review <review@swift.im>2014-10-30 18:55:14 (GMT)
commit8096f80861667381b777af774cfd446d6fc8cda8 (patch)
tree46d050b1e678609c241d162b06cc511fba698888 /Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp
parent5cf50d46aed4d2dac333e5e3b3bc2f57f7a1b835 (diff)
downloadswift-8096f80861667381b777af774cfd446d6fc8cda8.zip
swift-8096f80861667381b777af774cfd446d6fc8cda8.tar.bz2
Brining XEP-0313 (MAM) implementation in line with version 3.0.
Added support for <fin/> element, including serializer/parsers and unit tests for them. Added more unit tests based on XEP examples for existing parsers. Removed unneccesarry includes from existing MAM implementation. Test-Information: Existing and new unit tests pass successfully. Change-Id: I7e6bf85e0961d59801b452e4559cc1db9e9e6ed8
Diffstat (limited to 'Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp')
-rw-r--r--Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp b/Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp
index ddcd7c4..e1c8e3e 100644
--- a/Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp
+++ b/Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp
@@ -17,6 +17,8 @@ class MAMQueryParserTest : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE(MAMQueryParserTest);
CPPUNIT_TEST(testParse);
+ CPPUNIT_TEST(testParse_XEP0313_Example3);
+ CPPUNIT_TEST(testParse_XEP0313_Example4);
CPPUNIT_TEST(testParseEmpty);
CPPUNIT_TEST_SUITE_END();
@@ -58,6 +60,49 @@ class MAMQueryParserTest : public CppUnit::TestFixture
CPPUNIT_ASSERT_EQUAL(*resultSet->getMaxItems(), 10);
}
+ void testParse_XEP0313_Example3() {
+ PayloadsParserTester parser;
+ CPPUNIT_ASSERT(parser.parse(
+ "<query xmlns='urn:xmpp:mam:0'>"
+ "<x xmlns='jabber:x:data'>"
+ "<field var='FORM_TYPE'>"
+ "<value>urn:xmpp:mam:0</value>"
+ "</field>"
+ "<field var='with'>"
+ "<value>juliet@capulet.lit</value>"
+ "</field>"
+ "</x>"
+ "</query>"));
+
+ boost::shared_ptr<MAMQuery> payload = parser.getPayload<MAMQuery>();
+ CPPUNIT_ASSERT(!!payload && !!payload->getForm() && !!payload->getForm()->getField("FORM_TYPE") && !!payload->getForm()->getField("with"));
+ CPPUNIT_ASSERT_EQUAL(std::string("urn:xmpp:mam:0"), payload->getForm()->getField("FORM_TYPE")->getTextSingleValue());
+ CPPUNIT_ASSERT_EQUAL(std::string("juliet@capulet.lit"), payload->getForm()->getField("with")->getTextSingleValue());
+ }
+
+ void testParse_XEP0313_Example4() {
+ PayloadsParserTester parser;
+ CPPUNIT_ASSERT(parser.parse(
+ "<query xmlns='urn:xmpp:mam:0'>"
+ "<x xmlns='jabber:x:data'>"
+ "<field var='FORM_TYPE'>"
+ "<value>urn:xmpp:mam:0</value>"
+ "</field>"
+ "<field var='start'>"
+ "<value>2010-06-07T00:00:00Z</value>"
+ "</field>"
+ "<field var='end'>"
+ "<value>2010-07-07T13:23:54Z</value>"
+ "</field>"
+ "</x>"
+ "</query>"));
+ boost::shared_ptr<MAMQuery> payload = parser.getPayload<MAMQuery>();
+ CPPUNIT_ASSERT(!!payload && !!payload->getForm() && !!payload->getForm()->getField("FORM_TYPE") && !!payload->getForm()->getField("start") && !!payload->getForm()->getField("start"));
+ CPPUNIT_ASSERT_EQUAL(std::string("urn:xmpp:mam:0"), payload->getForm()->getField("FORM_TYPE")->getTextSingleValue());
+ CPPUNIT_ASSERT_EQUAL(std::string("2010-06-07T00:00:00Z"), payload->getForm()->getField("start")->getTextSingleValue());
+ CPPUNIT_ASSERT_EQUAL(std::string("2010-07-07T13:23:54Z"), payload->getForm()->getField("end")->getTextSingleValue());
+ }
+
void testParseEmpty() {
PayloadsParserTester parser;
CPPUNIT_ASSERT(parser.parse(
@@ -71,6 +116,8 @@ class MAMQueryParserTest : public CppUnit::TestFixture
CPPUNIT_ASSERT(!payload->getForm());
CPPUNIT_ASSERT(!payload->getResultSet());
}
+
+
};
CPPUNIT_TEST_SUITE_REGISTRATION(MAMQueryParserTest);