diff options
7 files changed, 72 insertions, 3 deletions
| diff --git a/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp b/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp index f9a0789..0f66b35 100644 --- a/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp +++ b/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp @@ -16,6 +16,7 @@  #include "Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.h"  #include "Swiften/Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.h"  #include "Swiften/Serializer/PayloadSerializers/VCardSerializer.h" +#include "Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.h"  namespace Swift { @@ -35,6 +36,7 @@ FullPayloadSerializerCollection::FullPayloadSerializerCollection() {  	serializers_.push_back(new SecurityLabelSerializer());  	serializers_.push_back(new SecurityLabelsCatalogSerializer());  	serializers_.push_back(new VCardSerializer()); +	serializers_.push_back(new VCardUpdateSerializer());  	foreach(PayloadSerializer* serializer, serializers_) {  		addSerializer(serializer);  	} diff --git a/Swiften/Serializer/PayloadSerializers/Makefile.inc b/Swiften/Serializer/PayloadSerializers/Makefile.inc index 893da6c..9bfbeee 100644 --- a/Swiften/Serializer/PayloadSerializers/Makefile.inc +++ b/Swiften/Serializer/PayloadSerializers/Makefile.inc @@ -9,6 +9,7 @@ SWIFTEN_SOURCES += \  	Swiften/Serializer/PayloadSerializers/ResourceBindSerializer.cpp \  	Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.cpp \  	Swiften/Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.cpp \ -	Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp +	Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp \ +	Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.cpp  include Swiften/Serializer/PayloadSerializers/UnitTest/Makefile.inc diff --git a/Swiften/Serializer/PayloadSerializers/UnitTest/Makefile.inc b/Swiften/Serializer/PayloadSerializers/UnitTest/Makefile.inc index fce7ab9..73887a1 100644 --- a/Swiften/Serializer/PayloadSerializers/UnitTest/Makefile.inc +++ b/Swiften/Serializer/PayloadSerializers/UnitTest/Makefile.inc @@ -9,4 +9,5 @@ UNITTEST_SOURCES += \  	Swiften/Serializer/PayloadSerializers/UnitTest/StatusShowSerializerTest.cpp \  	Swiften/Serializer/PayloadSerializers/UnitTest/SoftwareVersionSerializerTest.cpp \  	Swiften/Serializer/PayloadSerializers/UnitTest/SecurityLabelSerializerTest.cpp \ -	Swiften/Serializer/PayloadSerializers/UnitTest/SecurityLabelsCatalogSerializerTest.cpp +	Swiften/Serializer/PayloadSerializers/UnitTest/SecurityLabelsCatalogSerializerTest.cpp \ +	Swiften/Serializer/PayloadSerializers/UnitTest/VCardUpdateSerializerTest.cpp diff --git a/Swiften/Serializer/PayloadSerializers/UnitTest/VCardUpdateSerializerTest.cpp b/Swiften/Serializer/PayloadSerializers/UnitTest/VCardUpdateSerializerTest.cpp new file mode 100644 index 0000000..fc7e442 --- /dev/null +++ b/Swiften/Serializer/PayloadSerializers/UnitTest/VCardUpdateSerializerTest.cpp @@ -0,0 +1,31 @@ +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/extensions/TestFactoryRegistry.h> + +#include "Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.h" + +using namespace Swift; + +class VCardUpdateSerializerTest : public CppUnit::TestFixture +{ +		CPPUNIT_TEST_SUITE(VCardUpdateSerializerTest); +		CPPUNIT_TEST(testSerialize); +		CPPUNIT_TEST_SUITE_END(); + +	public: +		VCardUpdateSerializerTest() {} + +		void testSerialize() { +			VCardUpdateSerializer testling; +			boost::shared_ptr<VCardUpdate> update(new VCardUpdate()); +			update->setPhotoHash("sha1-hash-of-image"); + +			String expectedResult =  +        "<x xmlns=\"vcard-temp:x:update\">" +          "<photo>sha1-hash-of-image</photo>" +        "</x>"; + +			CPPUNIT_ASSERT_EQUAL(expectedResult, testling.serialize(update)); +		} +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(VCardUpdateSerializerTest); diff --git a/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp b/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp index ce4e399..4e1a762 100644 --- a/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp +++ b/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp @@ -9,7 +9,7 @@ namespace Swift {  VCardSerializer::VCardSerializer() : GenericPayloadSerializer<VCard>() {  } -String VCardSerializer::serializePayload(boost::shared_ptr<VCard> discoInfo)  const { +String VCardSerializer::serializePayload(boost::shared_ptr<VCard>)  const {  	XMLElement queryElement("vCard", "vcard-temp");  	// TODO  	return queryElement.serialize(); diff --git a/Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.cpp b/Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.cpp new file mode 100644 index 0000000..540b48d --- /dev/null +++ b/Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.cpp @@ -0,0 +1,21 @@ +#include "Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.h" + +#include <boost/shared_ptr.hpp> + +#include "Swiften/Serializer/XML/XMLElement.h" +#include "Swiften/Serializer/XML/XMLTextNode.h" + +namespace Swift { + +VCardUpdateSerializer::VCardUpdateSerializer() : GenericPayloadSerializer<VCardUpdate>() { +} + +String VCardUpdateSerializer::serializePayload(boost::shared_ptr<VCardUpdate> vcardUpdate)	const { +	XMLElement updateElement("x", "vcard-temp:x:update"); +	boost::shared_ptr<XMLElement> photoElement(new XMLElement("photo")); +	photoElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcardUpdate->getPhotoHash()))); +	updateElement.addNode(photoElement); +	return updateElement.serialize(); +} + +} diff --git a/Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.h b/Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.h new file mode 100644 index 0000000..e1373a9 --- /dev/null +++ b/Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.h @@ -0,0 +1,13 @@ +#pragma once + +#include "Swiften/Serializer/GenericPayloadSerializer.h" +#include "Swiften/Elements/VCardUpdate.h" + +namespace Swift { +	class VCardUpdateSerializer : public GenericPayloadSerializer<VCardUpdate> { +		public: +			VCardUpdateSerializer(); + +			virtual String serializePayload(boost::shared_ptr<VCardUpdate>)  const; +	}; +} | 
 Swift
 Swift