diff options
Diffstat (limited to 'Swift/Controllers/UnitTest')
| -rw-r--r-- | Swift/Controllers/UnitTest/ChatMessageSummarizerTest.cpp | 122 | ||||
| -rw-r--r-- | Swift/Controllers/UnitTest/MockChatWindow.h | 5 | ||||
| -rw-r--r-- | Swift/Controllers/UnitTest/MockMainWindow.h | 1 | ||||
| -rw-r--r-- | Swift/Controllers/UnitTest/PresenceNotifierTest.cpp | 44 | 
4 files changed, 148 insertions, 24 deletions
| diff --git a/Swift/Controllers/UnitTest/ChatMessageSummarizerTest.cpp b/Swift/Controllers/UnitTest/ChatMessageSummarizerTest.cpp new file mode 100644 index 0000000..ee0ee9f --- /dev/null +++ b/Swift/Controllers/UnitTest/ChatMessageSummarizerTest.cpp @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2011 Kevin Smith + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/extensions/TestFactoryRegistry.h> + +#include "Swift/Controllers/ChatMessageSummarizer.h" + +using namespace Swift; +using namespace std; + +class ChatMessageSummarizerTest : public CppUnit::TestFixture { +	CPPUNIT_TEST_SUITE(ChatMessageSummarizerTest); +	CPPUNIT_TEST(testEmpty); +	CPPUNIT_TEST(testCurrentNone); +	CPPUNIT_TEST(testCurrentCount); +	CPPUNIT_TEST(testCurrentCountOthersNone); +	CPPUNIT_TEST(testCurrentCountOtherCount); +	CPPUNIT_TEST(testCurrentNoneOtherCount); +	CPPUNIT_TEST(testCurrentCountOthersCount); +	CPPUNIT_TEST(testCurrentNoneOthersCount); +	CPPUNIT_TEST(testCurrentCountSomeOthersCount); +	CPPUNIT_TEST_SUITE_END(); + +public: +	ChatMessageSummarizerTest() {}; + +	void setUp() { + +	} + +	void testEmpty() { +		string current(""); +		vector<UnreadPair> unreads; +		ChatMessageSummarizer summary; +		CPPUNIT_ASSERT_EQUAL(current, summary.getSummary(current, unreads)); +	} + +	void testCurrentNone() { +		string current("Bob"); +		vector<UnreadPair> unreads; +		unreads.push_back(UnreadPair("Bob", 0)); +		ChatMessageSummarizer summary; +		CPPUNIT_ASSERT_EQUAL(current, summary.getSummary(current, unreads)); +	} + +	void testCurrentCount() { +		string current("Bob"); +		vector<UnreadPair> unreads; +		unreads.push_back(UnreadPair("Bob", 3)); +		ChatMessageSummarizer summary; +		CPPUNIT_ASSERT_EQUAL(string("Bob (3)"), summary.getSummary(current, unreads)); +	} + +	void testCurrentCountOthersNone() { +		string current("Bob"); +		vector<UnreadPair> unreads; +		unreads.push_back(UnreadPair("Bert", 0)); +		unreads.push_back(UnreadPair("Bob", 3)); +		unreads.push_back(UnreadPair("Betty", 0)); +		ChatMessageSummarizer summary; +		CPPUNIT_ASSERT_EQUAL(string("Bob (3)"), summary.getSummary(current, unreads)); +	} + +	void testCurrentCountOtherCount() { +		string current("Bob"); +		vector<UnreadPair> unreads; +		unreads.push_back(UnreadPair("Bert", 0)); +		unreads.push_back(UnreadPair("Bob", 3)); +		unreads.push_back(UnreadPair("Betty", 7)); +		ChatMessageSummarizer summary; +		CPPUNIT_ASSERT_EQUAL(string("Bob (3), Betty (7)"), summary.getSummary(current, unreads)); +	} + +	void testCurrentNoneOtherCount() { +		string current("Bob"); +		vector<UnreadPair> unreads; +		unreads.push_back(UnreadPair("Bert", 0)); +		unreads.push_back(UnreadPair("Bob", 0)); +		unreads.push_back(UnreadPair("Betty", 7)); +		ChatMessageSummarizer summary; +		CPPUNIT_ASSERT_EQUAL(string("Bob, Betty (7)"), summary.getSummary(current, unreads)); +	} + +	void testCurrentNoneOthersCount() { +		string current("Bob"); +		vector<UnreadPair> unreads; +		unreads.push_back(UnreadPair("Bert", 2)); +		unreads.push_back(UnreadPair("Bob", 0)); +		unreads.push_back(UnreadPair("Betty", 7)); +		ChatMessageSummarizer summary; +		CPPUNIT_ASSERT_EQUAL(string("Bob and 2 others (9)"), summary.getSummary(current, unreads)); +	} + +	void testCurrentCountOthersCount() { +		string current("Bob"); +		vector<UnreadPair> unreads; +		unreads.push_back(UnreadPair("Bert", 2)); +		unreads.push_back(UnreadPair("Bob", 11)); +		unreads.push_back(UnreadPair("Betty", 7)); +		ChatMessageSummarizer summary; +		CPPUNIT_ASSERT_EQUAL(string("Bob (11) and 2 others (9)"), summary.getSummary(current, unreads)); +	} + +	void testCurrentCountSomeOthersCount() { +		string current("Bob"); +		vector<UnreadPair> unreads; +		unreads.push_back(UnreadPair("Bert", 2)); +		unreads.push_back(UnreadPair("Beverly", 0)); +		unreads.push_back(UnreadPair("Bob", 11)); +		unreads.push_back(UnreadPair("Beatrice", 0)); +		unreads.push_back(UnreadPair("Betty", 7)); +		ChatMessageSummarizer summary; +		CPPUNIT_ASSERT_EQUAL(string("Bob (11) and 2 others (9)"), summary.getSummary(current, unreads)); +	} + +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(ChatMessageSummarizerTest); diff --git a/Swift/Controllers/UnitTest/MockChatWindow.h b/Swift/Controllers/UnitTest/MockChatWindow.h index 53a90a7..a5765fd 100644 --- a/Swift/Controllers/UnitTest/MockChatWindow.h +++ b/Swift/Controllers/UnitTest/MockChatWindow.h @@ -11,7 +11,7 @@  namespace Swift {  	class MockChatWindow : public ChatWindow {  		public: -			MockChatWindow() {}; +			MockChatWindow() : labelsEnabled_(false) {};  			virtual ~MockChatWindow();  			virtual std::string addMessage(const std::string& message, const std::string& /*senderName*/, bool /*senderIsSelf*/, boost::shared_ptr<SecurityLabel> /*label*/, const std::string& /*avatarPath*/, const boost::posix_time::ptime&) {lastMessageBody_ = message; return "";}; @@ -34,12 +34,13 @@ namespace Swift {  			virtual void setRosterModel(Roster* /*roster*/) {};  			virtual void setTabComplete(TabComplete*) {};  			virtual void replaceLastMessage(const std::string&) {}; +			virtual void replaceMessage(const std::string&, const std::string&, const boost::posix_time::ptime&) {};  			void setAckState(const std::string& /*id*/, AckState /*state*/) {};  			virtual void flash() {};  			boost::signal<void ()> onClosed;  			boost::signal<void ()> onAllMessagesRead; -			boost::signal<void (const std::string&)> onSendMessageRequest; +			boost::signal<void (const std::string&, bool isCorrection)> onSendMessageRequest;  			std::string name_;  			std::string lastMessageBody_; diff --git a/Swift/Controllers/UnitTest/MockMainWindow.h b/Swift/Controllers/UnitTest/MockMainWindow.h index afa5c2a..f773062 100644 --- a/Swift/Controllers/UnitTest/MockMainWindow.h +++ b/Swift/Controllers/UnitTest/MockMainWindow.h @@ -20,6 +20,7 @@ namespace Swift {  			virtual void setMyAvatarPath(const std::string& /*path*/) {};  			virtual void setMyStatusText(const std::string& /*status*/) {};  			virtual void setMyStatusType(StatusShow::Type /*type*/) {}; +			virtual void setAvailableAdHocCommands(const std::vector<DiscoItems::Item>& /*commands*/) {};  			virtual void setConnecting() {};  			Roster* roster; diff --git a/Swift/Controllers/UnitTest/PresenceNotifierTest.cpp b/Swift/Controllers/UnitTest/PresenceNotifierTest.cpp index 42cfc5f..3e9be13 100644 --- a/Swift/Controllers/UnitTest/PresenceNotifierTest.cpp +++ b/Swift/Controllers/UnitTest/PresenceNotifierTest.cpp @@ -70,7 +70,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceiveFirstPresenceCreatesAvailableNotification() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			sendPresence(user1, StatusShow::Online); @@ -79,7 +79,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceiveSecondPresenceCreatesStatusChangeNotification() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			sendPresence(user1, StatusShow::Away);  			notifier->notifications.clear(); @@ -90,7 +90,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceiveUnavailablePresenceAfterAvailablePresenceCreatesUnavailableNotification() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			sendPresence(user1, StatusShow::Away);  			notifier->notifications.clear(); @@ -101,7 +101,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceiveUnavailablePresenceWithoutAvailableDoesNotCreateNotification() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			sendUnavailablePresence(user1); @@ -109,7 +109,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceiveAvailablePresenceAfterUnavailableCreatesAvailableNotification() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			sendPresence(user1, StatusShow::Away);  			sendUnavailablePresence(user1);  			notifier->notifications.clear(); @@ -121,7 +121,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceiveAvailablePresenceAfterReconnectCreatesAvailableNotification() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			sendPresence(user1, StatusShow::Away);  			stanzaChannel->setAvailable(false);  			stanzaChannel->setAvailable(true); @@ -134,7 +134,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceiveAvailablePresenceFromMUCDoesNotCreateNotification() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			mucRegistry->addMUC(JID("teaparty@wonderland.lit"));  			sendPresence(JID("teaparty@wonderland.lit/Alice"), StatusShow::Away); @@ -143,8 +143,8 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testNotificationPicture() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); -			avatarManager->avatars[user1] = ByteArray("abcdef"); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier(); +			avatarManager->avatars[user1] = createByteArray("abcdef");  			sendPresence(user1, StatusShow::Online); @@ -153,7 +153,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testNotificationActivationEmitsSignal() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			sendPresence(user1, StatusShow::Online);  			CPPUNIT_ASSERT(notifier->notifications[0].callback); @@ -164,7 +164,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testNotificationSubjectContainsNameForJIDInRoster() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			roster->addContact(user1.toBare(), "User 1", std::vector<std::string>(), RosterItemPayload::Both);  			sendPresence(user1, StatusShow::Online); @@ -175,7 +175,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testNotificationSubjectContainsJIDForJIDNotInRoster() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			sendPresence(user1, StatusShow::Online); @@ -185,7 +185,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testNotificationSubjectContainsStatus() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			sendPresence(user1, StatusShow::Away); @@ -195,7 +195,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testNotificationMessageContainsStatusMessage() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			sendPresence(user1, StatusShow::Away); @@ -204,7 +204,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceiveFirstPresenceWithQuietPeriodDoesNotNotify() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			testling->setInitialQuietPeriodMS(10);  			sendPresence(user1, StatusShow::Online); @@ -213,7 +213,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceivePresenceDuringQuietPeriodDoesNotNotify() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			testling->setInitialQuietPeriodMS(10);  			sendPresence(user1, StatusShow::Online); @@ -224,7 +224,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceivePresenceDuringQuietPeriodResetsTimer() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			testling->setInitialQuietPeriodMS(10);  			sendPresence(user1, StatusShow::Online); @@ -237,7 +237,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceivePresenceAfterQuietPeriodNotifies() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			testling->setInitialQuietPeriodMS(10);  			sendPresence(user1, StatusShow::Online); @@ -248,7 +248,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceiveFirstPresenceWithQuietPeriodDoesNotCountAsQuietPeriod() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			testling->setInitialQuietPeriodMS(10);  			timerFactory->setTime(11); @@ -258,7 +258,7 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  		}  		void testReceiveFirstPresenceAfterReconnectWithQuietPeriodDoesNotNotify() { -			std::auto_ptr<PresenceNotifier> testling = createNotifier(); +			boost::shared_ptr<PresenceNotifier> testling = createNotifier();  			testling->setInitialQuietPeriodMS(10);  			sendPresence(user1, StatusShow::Online);  			timerFactory->setTime(15); @@ -275,8 +275,8 @@ class PresenceNotifierTest : public CppUnit::TestFixture {  	private: -		std::auto_ptr<PresenceNotifier> createNotifier() { -			std::auto_ptr<PresenceNotifier> result(new PresenceNotifier(stanzaChannel, notifier, mucRegistry, avatarManager, nickResolver, presenceOracle, timerFactory)); +		boost::shared_ptr<PresenceNotifier> createNotifier() { +			boost::shared_ptr<PresenceNotifier> result(new PresenceNotifier(stanzaChannel, notifier, mucRegistry, avatarManager, nickResolver, presenceOracle, timerFactory));  			result->onNotificationActivated.connect(boost::bind(&PresenceNotifierTest::handleNotificationActivated, this, _1));  			result->setInitialQuietPeriodMS(0);  			return result; | 
 Swift
 Swift