diff options
Diffstat (limited to 'Swiften/Serializer/PayloadSerializers')
| -rw-r--r-- | Swiften/Serializer/PayloadSerializers/RosterSerializer.cpp | 3 | ||||
| -rw-r--r-- | Swiften/Serializer/PayloadSerializers/UnitTest/RosterSerializerTest.cpp | 27 | 
2 files changed, 26 insertions, 4 deletions
| diff --git a/Swiften/Serializer/PayloadSerializers/RosterSerializer.cpp b/Swiften/Serializer/PayloadSerializers/RosterSerializer.cpp index 40faf73..886676a 100644 --- a/Swiften/Serializer/PayloadSerializers/RosterSerializer.cpp +++ b/Swiften/Serializer/PayloadSerializers/RosterSerializer.cpp @@ -20,6 +20,9 @@ RosterSerializer::RosterSerializer() : GenericPayloadSerializer<RosterPayload>()  std::string RosterSerializer::serializePayload(boost::shared_ptr<RosterPayload> roster)  const {  	XMLElement queryElement("query", "jabber:iq:roster"); +	if (roster->getVersion()) { +		queryElement.setAttribute("ver", *roster->getVersion()); +	}  	foreach(const RosterItemPayload& item, roster->getItems()) {  		boost::shared_ptr<XMLElement> itemElement(new XMLElement("item"));  		itemElement->setAttribute("jid", item.getJID()); diff --git a/Swiften/Serializer/PayloadSerializers/UnitTest/RosterSerializerTest.cpp b/Swiften/Serializer/PayloadSerializers/UnitTest/RosterSerializerTest.cpp index b8ceac3..61316df 100644 --- a/Swiften/Serializer/PayloadSerializers/UnitTest/RosterSerializerTest.cpp +++ b/Swiften/Serializer/PayloadSerializers/UnitTest/RosterSerializerTest.cpp @@ -11,16 +11,15 @@  using namespace Swift; -class RosterSerializerTest : public CppUnit::TestFixture -{ +class RosterSerializerTest : public CppUnit::TestFixture {  		CPPUNIT_TEST_SUITE(RosterSerializerTest);  		CPPUNIT_TEST(testSerialize);  		CPPUNIT_TEST(testSerialize_ItemWithUnknownContent); +		CPPUNIT_TEST(testSerialize_WithVersion); +		CPPUNIT_TEST(testSerialize_WithEmptyVersion);  		CPPUNIT_TEST_SUITE_END();  	public: -		RosterSerializerTest() {} -  		void testSerialize() {  			RosterSerializer testling;  			boost::shared_ptr<RosterPayload> roster(new RosterPayload()); @@ -77,6 +76,26 @@ class RosterSerializerTest : public CppUnit::TestFixture  			CPPUNIT_ASSERT_EQUAL(expectedResult, testling.serialize(roster));  		} + +		void testSerialize_WithVersion() { +			RosterSerializer testling; +			boost::shared_ptr<RosterPayload> roster(new RosterPayload()); +			roster->setVersion("ver20"); + +			std::string expectedResult = "<query ver=\"ver20\" xmlns=\"jabber:iq:roster\"/>"; + +			CPPUNIT_ASSERT_EQUAL(expectedResult, testling.serialize(roster)); +		} + +		void testSerialize_WithEmptyVersion() { +			RosterSerializer testling; +			boost::shared_ptr<RosterPayload> roster(new RosterPayload()); +			roster->setVersion(""); + +			std::string expectedResult = "<query ver=\"\" xmlns=\"jabber:iq:roster\"/>"; + +			CPPUNIT_ASSERT_EQUAL(expectedResult, testling.serialize(roster)); +		}  };  CPPUNIT_TEST_SUITE_REGISTRATION(RosterSerializerTest); | 
 Swift
 Swift