diff options
Diffstat (limited to 'Swiften/Parser')
-rw-r--r-- | Swiften/Parser/PayloadParsers/MAMQueryParser.cpp | 3 | ||||
-rw-r--r-- | Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/Swiften/Parser/PayloadParsers/MAMQueryParser.cpp b/Swiften/Parser/PayloadParsers/MAMQueryParser.cpp index 6b3dc65..b0b279d 100644 --- a/Swiften/Parser/PayloadParsers/MAMQueryParser.cpp +++ b/Swiften/Parser/PayloadParsers/MAMQueryParser.cpp @@ -19,12 +19,15 @@ MAMQueryParser::MAMQueryParser() : level_(TopLevel) { void MAMQueryParser::handleStartElement(const std::string& element, const std::string& ns, const AttributeMap& attributes) { if (level_ == TopLevel) { boost::optional<std::string> attributeValue; if ((attributeValue = attributes.getAttributeValue("queryid"))) { getPayloadInternal()->setQueryID(*attributeValue); } + if ((attributeValue = attributes.getAttributeValue("node"))) { + getPayloadInternal()->setNode(*attributeValue); + } } else if (level_ == PayloadLevel) { if (element == "x" && ns == "jabber:x:data") { formParser_ = boost::make_shared<FormParser>(); } else if (element == "set" && ns == "http://jabber.org/protocol/rsm") { resultSetParser_ = boost::make_shared<ResultSetParser>(); } diff --git a/Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp b/Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp index e1c8e3e..541f2af 100644 --- a/Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp +++ b/Swiften/Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp @@ -23,13 +23,13 @@ class MAMQueryParserTest : public CppUnit::TestFixture CPPUNIT_TEST_SUITE_END(); public: void testParse() { PayloadsParserTester parser; CPPUNIT_ASSERT(parser.parse( - "<query queryid=\"id0\" xmlns=\"urn:xmpp:mam:0\">" + "<query queryid=\"id0\" xmlns=\"urn:xmpp:mam:0\" node=\"node1\">" "<x type=\"form\" xmlns=\"jabber:x:data\">" "<field type=\"text-single\" var=\"FORM_TYPE\">" "<value>urn:xmpp:mam:0</value>" "</field>" "<field type=\"text-single\" var=\"start\">" "<value>2010-08-07T00:00:00Z</value>" @@ -42,12 +42,13 @@ class MAMQueryParserTest : public CppUnit::TestFixture boost::shared_ptr<MAMQuery> payload = parser.getPayload<MAMQuery>(); CPPUNIT_ASSERT(!!payload); CPPUNIT_ASSERT(payload->getQueryID()); CPPUNIT_ASSERT_EQUAL(std::string("id0"), *payload->getQueryID()); + CPPUNIT_ASSERT_EQUAL(std::string("node1"), *payload->getNode()); CPPUNIT_ASSERT(payload->getForm()); boost::shared_ptr<FormField> fieldType = payload->getForm()->getField("FORM_TYPE"); CPPUNIT_ASSERT(fieldType); CPPUNIT_ASSERT_EQUAL(std::string("urn:xmpp:mam:0"), fieldType->getTextSingleValue()); boost::shared_ptr<FormField> fieldStart = payload->getForm()->getField("start"); |