From: Vadim Zeitlin Date: Fri, 6 Jan 2006 21:33:39 +0000 (+0000) Subject: added GetString() test X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/06ef151178ba3196fa237165b35a0686a461ff76 added GetString() test git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/tests/strings/tokenizer.cpp b/tests/strings/tokenizer.cpp index 788177b9eb..f694339c2b 100644 --- a/tests/strings/tokenizer.cpp +++ b/tests/strings/tokenizer.cpp @@ -36,12 +36,14 @@ private: CPPUNIT_TEST_SUITE( TokenizerTestCase ); CPPUNIT_TEST( GetCount ); CPPUNIT_TEST( GetPosition ); + CPPUNIT_TEST( GetString ); CPPUNIT_TEST( LastDelimiter ); CPPUNIT_TEST( StrtokCompat ); CPPUNIT_TEST_SUITE_END(); void GetCount(); void GetPosition(); + void GetString(); void LastDelimiter(); void StrtokCompat(); @@ -186,6 +188,43 @@ void TokenizerTestCase::GetPosition() DoTestGetPosition(_T("foo_bar_"), _T("_"), 4, 8, 0); } +// helper for GetString(): the parameters are the same as for DoTestGetPosition +// but it checks GetString() return value instead of GetPosition() +static void +DoTestGetString(const wxChar *s, const wxChar *delims, int pos, ...) +{ + wxStringTokenizer tkz(s, delims); + + CPPUNIT_ASSERT_EQUAL( wxString(s), tkz.GetString() ); + + va_list ap; + va_start(ap, pos); + + for ( ;; ) + { + if ( !pos ) + { + CPPUNIT_ASSERT_EQUAL( wxString(), tkz.GetString() ); + break; + } + + tkz.GetNextToken(); + + CPPUNIT_ASSERT_EQUAL( wxString(s + pos), tkz.GetString() ); + + pos = va_arg(ap, int); + } + + va_end(ap); +} + +void TokenizerTestCase::GetString() +{ + DoTestGetString(_T("foo"), _T("_"), 3, 0); + DoTestGetString(_T("foo_bar"), _T("_"), 4, 7, 0); + DoTestGetString(_T("foo_bar_"), _T("_"), 4, 8, 0); +} + void TokenizerTestCase::LastDelimiter() { wxStringTokenizer tkz(_T("a+-b=c"), _T("+-="));