]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/strings/strings.cpp
Ref counting overview.
[wxWidgets.git] / tests / strings / strings.cpp
index 25b8a595748916deaf85d43e61798fed3e2debd3..32e77b8214dc1afe2f197972468c173fcc4f7c46 100644 (file)
@@ -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) );