From 3ca52c5c19d3e750f6ed8b5f7c06b78183eaabfb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Sun, 3 Jan 2010 10:57:25 +0100
Subject: Always send <label/> element.


diff --git a/Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.cpp b/Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.cpp
index f155f22..dcce4dc 100644
--- a/Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.cpp
@@ -22,11 +22,11 @@ String SecurityLabelSerializer::serializePayload(boost::shared_ptr<SecurityLabel
 		displayMarking->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(label->getDisplayMarking())));
 		element.addNode(displayMarking);
 	}
-	if (!label->getLabel().isEmpty()) {
-		boost::shared_ptr<XMLElement> labelElement(new XMLElement("label"));
-		labelElement->addNode(boost::shared_ptr<XMLRawTextNode>(new XMLRawTextNode(label->getLabel())));
-		element.addNode(labelElement);
-	}
+
+	boost::shared_ptr<XMLElement> labelElement(new XMLElement("label"));
+	labelElement->addNode(boost::shared_ptr<XMLRawTextNode>(new XMLRawTextNode(label->getLabel())));
+	element.addNode(labelElement);
+	
 	foreach(const String& equivalentLabel, label->getEquivalentLabels()) {
 		boost::shared_ptr<XMLElement> equivalentLabelElement(new XMLElement("equivalentlabel"));
 		equivalentLabelElement->addNode(boost::shared_ptr<XMLRawTextNode>(new XMLRawTextNode(equivalentLabel)));
diff --git a/Swiften/Serializer/PayloadSerializers/UnitTest/SecurityLabelSerializerTest.cpp b/Swiften/Serializer/PayloadSerializers/UnitTest/SecurityLabelSerializerTest.cpp
index c95ae10..e75695f 100644
--- a/Swiften/Serializer/PayloadSerializers/UnitTest/SecurityLabelSerializerTest.cpp
+++ b/Swiften/Serializer/PayloadSerializers/UnitTest/SecurityLabelSerializerTest.cpp
@@ -5,15 +5,13 @@
 
 using namespace Swift;
 
-class SecurityLabelSerializerTest : public CppUnit::TestFixture
-{
+class SecurityLabelSerializerTest : public CppUnit::TestFixture {
 		CPPUNIT_TEST_SUITE(SecurityLabelSerializerTest);
 		CPPUNIT_TEST(testSerialize);
+		CPPUNIT_TEST(testSerialize_EmptyLabel);
 		CPPUNIT_TEST_SUITE_END();
 
 	public:
-		SecurityLabelSerializerTest() {}
-
 		void testSerialize() {
 			SecurityLabelSerializer testling;
 			boost::shared_ptr<SecurityLabel> securityLabel(new SecurityLabel());
@@ -38,6 +36,19 @@ class SecurityLabelSerializerTest : public CppUnit::TestFixture
 					"</equivalentlabel>"
 				"</securitylabel>"), testling.serialize(securityLabel));
 		}
+
+		void testSerialize_EmptyLabel() {
+			SecurityLabelSerializer testling;
+			boost::shared_ptr<SecurityLabel> securityLabel(new SecurityLabel());
+			securityLabel->setDisplayMarking("SECRET");
+			securityLabel->setLabel("");
+
+			CPPUNIT_ASSERT_EQUAL(String(
+				"<securitylabel xmlns=\"urn:xmpp:sec-label:0\">"
+					"<displaymarking>SECRET</displaymarking>"
+					"<label></label>"
+				"</securitylabel>"), testling.serialize(securityLabel));
+		}
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION(SecurityLabelSerializerTest);
-- 
cgit v0.10.2-6-g49f6