diff options
| author | Remko Tronçon <git@el-tramo.be> | 2009-07-30 19:11:19 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2009-07-30 19:11:19 (GMT) | 
| commit | be2db74cad9f1d0359741beecdef2aed63e0ad2b (patch) | |
| tree | ba9b71bfc1dec6896e573aa5218bc39c53ba0c16 | |
| parent | b145bde2b103b0e688eef6300d34668431c5ad04 (diff) | |
| download | swift-be2db74cad9f1d0359741beecdef2aed63e0ad2b.zip swift-be2db74cad9f1d0359741beecdef2aed63e0ad2b.tar.bz2 | |
Proide a description for LinkLocalServices.
| -rw-r--r-- | Swiften/LinkLocal/LinkLocalService.cpp | 23 | ||||
| -rw-r--r-- | Swiften/LinkLocal/LinkLocalService.h | 2 | ||||
| -rw-r--r-- | Swiften/LinkLocal/Makefile.inc | 1 | ||||
| -rw-r--r-- | Swiften/LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp | 2 | ||||
| -rw-r--r-- | Swiften/LinkLocal/UnitTest/LinkLocalServiceTest.cpp | 62 | ||||
| -rw-r--r-- | Swiften/LinkLocal/UnitTest/Makefile.inc | 1 | 
6 files changed, 89 insertions, 2 deletions
| diff --git a/Swiften/LinkLocal/LinkLocalService.cpp b/Swiften/LinkLocal/LinkLocalService.cpp new file mode 100644 index 0000000..f567a63 --- /dev/null +++ b/Swiften/LinkLocal/LinkLocalService.cpp @@ -0,0 +1,23 @@ +#include "Swiften/LinkLocal/LinkLocalService.h" + +namespace Swift { + +String LinkLocalService::getDescription() const { +	LinkLocalServiceInfo info = getInfo(); +	if (!info.getNick().isEmpty()) { +		return info.getNick(); +	} +	else if (!info.getFirstName().isEmpty()) { +		String result = info.getFirstName(); +		if (!info.getLastName().isEmpty()) { +			result += " " + info.getLastName(); +		} +		return result; +	} +	else if (!info.getLastName().isEmpty()) { +		return info.getLastName(); +	} +	return getName(); +} + +} diff --git a/Swiften/LinkLocal/LinkLocalService.h b/Swiften/LinkLocal/LinkLocalService.h index 37f2130..f7e9e3c 100644 --- a/Swiften/LinkLocal/LinkLocalService.h +++ b/Swiften/LinkLocal/LinkLocalService.h @@ -34,6 +34,8 @@ namespace Swift {  				return LinkLocalServiceInfo::createFromTXTRecord(info.info);  			} +			String getDescription() const; +  		private:  			DNSSDServiceID id;  			DNSSDResolveServiceQuery::Result info; diff --git a/Swiften/LinkLocal/Makefile.inc b/Swiften/LinkLocal/Makefile.inc index ac3d2a2..3738789 100644 --- a/Swiften/LinkLocal/Makefile.inc +++ b/Swiften/LinkLocal/Makefile.inc @@ -1,6 +1,7 @@  SWIFTEN_SOURCES += \  	Swiften/LinkLocal/LinkLocalServiceBrowser.cpp \  	Swiften/LinkLocal/DNSSDService.cpp \ +	Swiften/LinkLocal/LinkLocalService.cpp \  	Swiften/LinkLocal/LinkLocalRoster.cpp \  	Swiften/LinkLocal/LinkLocalServiceInfo.cpp \  	Swiften/LinkLocal/IncomingLinkLocalSession.cpp \ diff --git a/Swiften/LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp b/Swiften/LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp index 68f191a..b5d7ef5 100644 --- a/Swiften/LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp +++ b/Swiften/LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp @@ -14,8 +14,6 @@ class LinkLocalServiceInfoTest : public CppUnit::TestFixture {  		CPPUNIT_TEST_SUITE_END();  	public: -		LinkLocalServiceInfoTest() {} -  		void testGetTXTRecord() {  			LinkLocalServiceInfo info;  			info.setFirstName("Remko"); diff --git a/Swiften/LinkLocal/UnitTest/LinkLocalServiceTest.cpp b/Swiften/LinkLocal/UnitTest/LinkLocalServiceTest.cpp new file mode 100644 index 0000000..69ec718 --- /dev/null +++ b/Swiften/LinkLocal/UnitTest/LinkLocalServiceTest.cpp @@ -0,0 +1,62 @@ +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/extensions/TestFactoryRegistry.h> + +#include "Swiften/LinkLocal/LinkLocalService.h" + +using namespace Swift; + +class LinkLocalServiceTest : public CppUnit::TestFixture { +		CPPUNIT_TEST_SUITE(LinkLocalServiceTest); +		CPPUNIT_TEST(testGetDescription_WithNick); +		CPPUNIT_TEST(testGetDescription_WithFirstName); +		CPPUNIT_TEST(testGetDescription_WithLastName); +		CPPUNIT_TEST(testGetDescription_WithFirstAndLastName); +		CPPUNIT_TEST(testGetDescription_NoInfo); +		CPPUNIT_TEST_SUITE_END(); + +	public: +		void testGetDescription_WithNick() { +			LinkLocalService testling = createService("alice@wonderland", "Alice", "Alice In", "Wonderland"); + +			CPPUNIT_ASSERT_EQUAL(String("Alice"), testling.getDescription()); +		} + +		void testGetDescription_WithFirstName() { +			LinkLocalService testling = createService("alice@wonderland", "", "Alice In"); + +			CPPUNIT_ASSERT_EQUAL(String("Alice In"), testling.getDescription()); +		} + +		void testGetDescription_WithLastName() { +			LinkLocalService testling = createService("alice@wonderland", "", "", "Wonderland"); + +			CPPUNIT_ASSERT_EQUAL(String("Wonderland"), testling.getDescription()); +		} + +		void testGetDescription_WithFirstAndLastName() { +			LinkLocalService testling = createService("alice@wonderland", "", "Alice In", "Wonderland"); + +			CPPUNIT_ASSERT_EQUAL(String("Alice In Wonderland"), testling.getDescription()); +		} + +		void testGetDescription_NoInfo() { +			LinkLocalService testling = createService("alice@wonderland"); + +			CPPUNIT_ASSERT_EQUAL(String("alice@wonderland"), testling.getDescription()); +		} +	 +	private: +		LinkLocalService createService(const String& name, const String& nickName = String(), const String& firstName = String(), const String& lastName = String()) { +			DNSSDServiceID service(name, "local."); +			LinkLocalServiceInfo info; +			info.setFirstName(firstName); +			info.setLastName(lastName); +			info.setNick(nickName); +			return LinkLocalService(service,  +					DNSSDResolveServiceQuery::Result( +						name + "._presence._tcp.local", "rabbithole.local", 1234,  +						info.toTXTRecord())); +		} +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(LinkLocalServiceTest); diff --git a/Swiften/LinkLocal/UnitTest/Makefile.inc b/Swiften/LinkLocal/UnitTest/Makefile.inc index 9640fa7..e5f1bf0 100644 --- a/Swiften/LinkLocal/UnitTest/Makefile.inc +++ b/Swiften/LinkLocal/UnitTest/Makefile.inc @@ -1,3 +1,4 @@  UNITTEST_SOURCES += \ +	Swiften/LinkLocal/UnitTest/LinkLocalServiceTest.cpp \  	Swiften/LinkLocal/UnitTest/LinkLocalServiceBrowserTest.cpp \  	Swiften/LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp | 
 Swift
 Swift