diff options
| author | Tobias Markmann <tm@ayena.de> | 2014-10-24 09:57:13 (GMT) | 
|---|---|---|
| committer | Swift Review <review@swift.im> | 2014-10-30 18:55:14 (GMT) | 
| commit | 8096f80861667381b777af774cfd446d6fc8cda8 (patch) | |
| tree | 46d050b1e678609c241d162b06cc511fba698888 /Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp | |
| parent | 5cf50d46aed4d2dac333e5e3b3bc2f57f7a1b835 (diff) | |
| download | swift-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.cpp | 47 | 
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);  | 
 Swift