diff options
Diffstat (limited to 'Swiften/Parser')
| -rw-r--r-- | Swiften/Parser/PayloadParsers/ResultSetParser.cpp | 2 | ||||
| -rw-r--r-- | Swiften/Parser/PayloadParsers/UnitTest/ResultSetParserTest.cpp | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/ResultSetParser.cpp b/Swiften/Parser/PayloadParsers/ResultSetParser.cpp index 95960d7..4c8283b 100644 --- a/Swiften/Parser/PayloadParsers/ResultSetParser.cpp +++ b/Swiften/Parser/PayloadParsers/ResultSetParser.cpp @@ -41,18 +41,20 @@ void ResultSetParser::handleEndElement(const std::string& element, const std::st } else if (element == "count") { try { getPayloadInternal()->setCount(boost::lexical_cast<int>(currentText_)); } catch(boost::bad_lexical_cast&) { } } else if (element == "first") { getPayloadInternal()->setFirstID(currentText_); } else if (element == "last") { getPayloadInternal()->setLastID(currentText_); + } else if (element == "before") { + getPayloadInternal()->setBefore(currentText_); } else if (element == "after") { getPayloadInternal()->setAfter(currentText_); } } } void ResultSetParser::handleCharacterData(const std::string& data) { currentText_ += data; } diff --git a/Swiften/Parser/PayloadParsers/UnitTest/ResultSetParserTest.cpp b/Swiften/Parser/PayloadParsers/UnitTest/ResultSetParserTest.cpp index 68df71b..e345323 100644 --- a/Swiften/Parser/PayloadParsers/UnitTest/ResultSetParserTest.cpp +++ b/Swiften/Parser/PayloadParsers/UnitTest/ResultSetParserTest.cpp @@ -22,33 +22,36 @@ class ResultSetParserTest : public CppUnit::TestFixture public: void testParse() { PayloadsParserTester parser; CPPUNIT_ASSERT(parser.parse( "<set xmlns=\"http://jabber.org/protocol/rsm\">" "<max>100</max>" "<count>800</count>" "<first index=\"123\">stpeter@jabber.org</first>" "<last>peterpan@neverland.lit</last>" + "<before>decaf-badba-dbad1</before>" "<after>09af3-cc343-b409f</after>" "</set>")); boost::shared_ptr<ResultSet> payload = parser.getPayload<ResultSet>(); CPPUNIT_ASSERT(!!payload); CPPUNIT_ASSERT(payload->getMaxItems()); CPPUNIT_ASSERT_EQUAL(100, *payload->getMaxItems()); CPPUNIT_ASSERT(payload->getCount()); CPPUNIT_ASSERT_EQUAL(800, *payload->getCount()); CPPUNIT_ASSERT(payload->getFirstID()); CPPUNIT_ASSERT_EQUAL(std::string("stpeter@jabber.org"), *payload->getFirstID()); CPPUNIT_ASSERT(payload->getFirstIDIndex()); CPPUNIT_ASSERT_EQUAL(123, *payload->getFirstIDIndex()); CPPUNIT_ASSERT(payload->getLastID()); CPPUNIT_ASSERT_EQUAL(std::string("peterpan@neverland.lit"), *payload->getLastID()); + CPPUNIT_ASSERT(payload->getBefore()); + CPPUNIT_ASSERT_EQUAL(std::string("decaf-badba-dbad1"), *payload->getBefore()); CPPUNIT_ASSERT(payload->getAfter()); CPPUNIT_ASSERT_EQUAL(std::string("09af3-cc343-b409f"), *payload->getAfter()); } void testParseFirstNoIndex() { PayloadsParserTester parser; CPPUNIT_ASSERT(parser.parse( "<set xmlns=\"http://jabber.org/protocol/rsm\">" "<first>stpeter@jabber.org</first>" |
Swift