X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3affcd078b1dc6d92cd06f18b5cc4c41a33161ea..40131743c6b71881ec36f206f88fa2932c36925b:/tests/strings/strings.cpp diff --git a/tests/strings/strings.cpp b/tests/strings/strings.cpp index 25b8a59574..32e77b8214 100644 --- a/tests/strings/strings.cpp +++ b/tests/strings/strings.cpp @@ -37,12 +37,14 @@ private: CPPUNIT_TEST( Format ); CPPUNIT_TEST( Constructors ); CPPUNIT_TEST( Extraction ); + CPPUNIT_TEST( Trim ); CPPUNIT_TEST( Find ); CPPUNIT_TEST( Replace ); CPPUNIT_TEST( Match ); CPPUNIT_TEST( CaseChanges ); CPPUNIT_TEST( Compare ); CPPUNIT_TEST( CompareNoCase ); + CPPUNIT_TEST( Contains ); CPPUNIT_TEST( ToLong ); CPPUNIT_TEST( ToULong ); CPPUNIT_TEST( ToDouble ); @@ -53,12 +55,14 @@ private: void Format(); void Constructors(); void Extraction(); + void Trim(); void Find(); void Replace(); void Match(); void CaseChanges(); void Compare(); void CompareNoCase(); + void Contains(); void ToLong(); void ToULong(); void ToDouble(); @@ -198,6 +202,24 @@ void StringTestCase::Extraction() #undef TEST_ENDS_WITH } +void StringTestCase::Trim() +{ + #define TEST_TRIM( str , dir , result ) \ + CPPUNIT_ASSERT( wxString(str).Trim(dir) == result ) + + TEST_TRIM( _T(" Test "), true, _T(" Test") ); + TEST_TRIM( _T(" "), true, _T("") ); + TEST_TRIM( _T(" "), true, _T("") ); + TEST_TRIM( _T(""), true, _T("") ); + + TEST_TRIM( _T(" Test "), false, _T("Test ") ); + TEST_TRIM( _T(" "), false, _T("") ); + TEST_TRIM( _T(" "), false, _T("") ); + TEST_TRIM( _T(""), false, _T("") ); + + #undef TEST_TRIM +} + void StringTestCase::Find() { #define TEST_FIND( str , start , result ) \ @@ -390,9 +412,35 @@ void StringTestCase::CompareNoCase() CPPUNIT_CNCNEQ_ASSERT( s1, neq3 ); } +void StringTestCase::Contains() +{ + static const struct ContainsData + { + const wxChar *hay; + const wxChar *needle; + bool contains; + } containsData[] = + { + { _T(""), _T(""), true }, + { _T(""), _T("foo"), false }, + { _T("foo"), _T(""), true }, + { _T("foo"), _T("f"), true }, + { _T("foo"), _T("o"), true }, + { _T("foo"), _T("oo"), true }, + { _T("foo"), _T("ooo"), false }, + { _T("foo"), _T("oooo"), false }, + { _T("foo"), _T("fooo"), false }, + }; + + for ( size_t n = 0; n < WXSIZEOF(containsData); n++ ) + { + const ContainsData& cd = containsData[n]; + CPPUNIT_ASSERT_EQUAL( cd.contains, wxString(cd.hay).Contains(cd.needle) ); + } +} + void StringTestCase::ToLong() { - long l; static const struct ToLongData { const wxChar *str; @@ -408,8 +456,8 @@ void StringTestCase::ToLong() { _T("--1"), 0, false }, }; - size_t n; - for ( n = 0; n < WXSIZEOF(longData); n++ ) + long l; + for ( size_t n = 0; n < WXSIZEOF(longData); n++ ) { const ToLongData& ld = longData[n]; CPPUNIT_ASSERT_EQUAL( ld.ok, wxString(ld.str).ToLong(&l) );