diff options
Diffstat (limited to 'SwifTools/UnitTest')
| -rw-r--r-- | SwifTools/UnitTest/LastLineTrackerTest.cpp | 2 | ||||
| -rw-r--r-- | SwifTools/UnitTest/LinkifyTest.cpp | 61 | ||||
| -rw-r--r-- | SwifTools/UnitTest/SConscript | 5 | ||||
| -rw-r--r-- | SwifTools/UnitTest/SpellParserTest.cpp | 51 | ||||
| -rw-r--r-- | SwifTools/UnitTest/TabCompleteTest.cpp | 2 | 
5 files changed, 114 insertions, 7 deletions
diff --git a/SwifTools/UnitTest/LastLineTrackerTest.cpp b/SwifTools/UnitTest/LastLineTrackerTest.cpp index a7046ed..97790e5 100644 --- a/SwifTools/UnitTest/LastLineTrackerTest.cpp +++ b/SwifTools/UnitTest/LastLineTrackerTest.cpp @@ -21,7 +21,7 @@ class LastLineTrackerTest : public CppUnit::TestFixture {  	CPPUNIT_TEST_SUITE_END();  	public:  	LastLineTrackerTest () { -	}; +	}  	void testFocusNormal() {  		LastLineTracker testling;  		testling.setHasFocus(true); diff --git a/SwifTools/UnitTest/LinkifyTest.cpp b/SwifTools/UnitTest/LinkifyTest.cpp index 5df1a96..c464b50 100644 --- a/SwifTools/UnitTest/LinkifyTest.cpp +++ b/SwifTools/UnitTest/LinkifyTest.cpp @@ -1,5 +1,5 @@  /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2013 Remko Tronçon   * Licensed under the GNU General Public License v3.   * See Documentation/Licenses/GPLv3.txt for more information.   */ @@ -32,6 +32,12 @@ class LinkifyTest : public CppUnit::TestFixture {  		CPPUNIT_TEST(testLinkify_NewLine);  		CPPUNIT_TEST(testLinkify_Tab);  		CPPUNIT_TEST(testLinkify_Action); + +		CPPUNIT_TEST(testLinkify_SplitNone); +		CPPUNIT_TEST(testLinkify_SplitAll); +		CPPUNIT_TEST(testLinkify_SplitFirst); +		CPPUNIT_TEST(testLinkify_SplitSecond); +		CPPUNIT_TEST(testLinkify_SplitMiddle);  		CPPUNIT_TEST_SUITE_END();  	public: @@ -181,12 +187,57 @@ class LinkifyTest : public CppUnit::TestFixture {  		}  		void testLinkify_Action() { -				std::string result = Linkify::linkify("*http://swift.im*"); +			std::string result = Linkify::linkify("*http://swift.im*"); + +			CPPUNIT_ASSERT_EQUAL( +					std::string("*<a href=\"http://swift.im\">http://swift.im</a>*"), +					result); +		} -				CPPUNIT_ASSERT_EQUAL( -						std::string("*<a href=\"http://swift.im\">http://swift.im</a>*"), -						result); +		void checkResult(const std::string& testling, size_t expectedIndex, std::string expectedSplit[]) { +			std::pair<std::vector<std::string>, size_t> result = Linkify::splitLink(testling); +			CPPUNIT_ASSERT_EQUAL(expectedIndex, result.second); +			for (size_t i = 0; i < result.first.size(); i++) { +				CPPUNIT_ASSERT_EQUAL(expectedSplit[i], result.first[i]);  			} +		} + +		void testLinkify_SplitNone() { +			std::string testling = "http this ain't"; +			size_t expectedIndex = 1; +			std::string expectedSplit[] = {"http this ain't"}; +			checkResult(testling, expectedIndex, expectedSplit); +		} + +		void testLinkify_SplitAll() { +			std::string testling = "http://swift.im"; +			size_t expectedIndex = 0; +			std::string expectedSplit[] = {"http://swift.im"}; +			checkResult(testling, expectedIndex, expectedSplit); +		} + +		void testLinkify_SplitFirst() { +			std::string testling = "http://swift.im is a link"; +			size_t expectedIndex = 0; +			std::string expectedSplit[] = {"http://swift.im", " is a link"}; +			checkResult(testling, expectedIndex, expectedSplit); +		} + +		void testLinkify_SplitSecond() { +			std::string testling = "this is a link: http://swift.im"; +			size_t expectedIndex = 1; +			std::string expectedSplit[] = {"this is a link: ", "http://swift.im"}; +			checkResult(testling, expectedIndex, expectedSplit); +		} + +		void testLinkify_SplitMiddle() { +			std::string testling = "Shove a link like http://swift.im in the middle"; +			size_t expectedIndex = 1; +			std::string expectedSplit[] = {"Shove a link like ","http://swift.im", " in the middle"}; +			checkResult(testling, expectedIndex, expectedSplit); +		} + +  };  CPPUNIT_TEST_SUITE_REGISTRATION(LinkifyTest); diff --git a/SwifTools/UnitTest/SConscript b/SwifTools/UnitTest/SConscript index e469deb..dbd1ce5 100644 --- a/SwifTools/UnitTest/SConscript +++ b/SwifTools/UnitTest/SConscript @@ -5,3 +5,8 @@ env.Append(UNITTEST_SOURCES = [  		File("TabCompleteTest.cpp"),  		File("LastLineTrackerTest.cpp"),  	]) + +if env["HAVE_HUNSPELL"] : +	env.Append(UNITTEST_SOURCES = [ +		File("SpellParserTest.cpp"), +	]) diff --git a/SwifTools/UnitTest/SpellParserTest.cpp b/SwifTools/UnitTest/SpellParserTest.cpp new file mode 100644 index 0000000..09e686c --- /dev/null +++ b/SwifTools/UnitTest/SpellParserTest.cpp @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2012 Vlad Voicu + * Licensed under the Simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/extensions/TestFactoryRegistry.h> + +#include <boost/algorithm/string.hpp> + +#include <SwifTools/SpellParser.h> + +using namespace Swift; + +class SpellParserTest : public CppUnit::TestFixture { +	CPPUNIT_TEST_SUITE(SpellParserTest); +	CPPUNIT_TEST(testSimpleCheckFragment); +	CPPUNIT_TEST(testWWWCheckFragment); +	CPPUNIT_TEST_SUITE_END(); +	public: +		SpellParserTest() { +			parser_ = new SpellParser(); +		}; +		void tearDown() { +			position_.clear(); +		} +		void testSimpleCheckFragment() { +			parser_->check("fragment test", position_); +			int size = position_.size(); +			CPPUNIT_ASSERT_EQUAL(2, size); +			CPPUNIT_ASSERT_EQUAL(0, boost::get<0>(position_.front())); +			CPPUNIT_ASSERT_EQUAL(8, boost::get<1>(position_.front())); +			CPPUNIT_ASSERT_EQUAL(9, boost::get<0>(position_.back())); +			CPPUNIT_ASSERT_EQUAL(13, boost::get<1>(position_.back())); +		} +		void testWWWCheckFragment() { +			parser_->check("www.link.com fragment test", position_); +			int size = position_.size(); +			CPPUNIT_ASSERT_EQUAL(2, size); +			CPPUNIT_ASSERT_EQUAL(13, boost::get<0>(position_.front())); +			CPPUNIT_ASSERT_EQUAL(21, boost::get<1>(position_.front())); +			CPPUNIT_ASSERT_EQUAL(22, boost::get<0>(position_.back())); +			CPPUNIT_ASSERT_EQUAL(26, boost::get<1>(position_.back())); +		} +	private: +		SpellParser *parser_; +		PositionPairList position_; +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(SpellParserTest); diff --git a/SwifTools/UnitTest/TabCompleteTest.cpp b/SwifTools/UnitTest/TabCompleteTest.cpp index 0466484..cdb0296 100644 --- a/SwifTools/UnitTest/TabCompleteTest.cpp +++ b/SwifTools/UnitTest/TabCompleteTest.cpp @@ -24,7 +24,7 @@ class TabCompleteTest : public CppUnit::TestFixture {  	CPPUNIT_TEST_SUITE_END();  public: -	TabCompleteTest() {}; +	TabCompleteTest() {}  	void setUp() {  		completer_ = TabComplete();  | 
 Swift