+
+ #define TEST_ENDS_WITH(suffix, correct_rest, result) \
+ CPPUNIT_ASSERT_EQUAL(result, s.EndsWith(suffix, &rest)); \
+ if ( result ) \
+ CPPUNIT_ASSERT_EQUAL(wxString(correct_rest), rest)
+
+ TEST_ENDS_WITH( _T(""), _T("Hello, world!"), true );
+ TEST_ENDS_WITH( _T("!"), _T("Hello, world"), true );
+ TEST_ENDS_WITH( _T(", world!"), _T("Hello"), true );
+ TEST_ENDS_WITH( _T("ello, world!"), _T("H"), true );
+ TEST_ENDS_WITH( _T("Hello, world!"), _T(""), true );
+ TEST_ENDS_WITH( _T("very long string"), _T(""), false );
+ TEST_ENDS_WITH( _T("?"), _T(""), false );
+ TEST_ENDS_WITH( _T("Hello, world"), _T(""), false );
+ TEST_ENDS_WITH( _T("Gello, world!"), _T(""), false );
+
+ #undef TEST_ENDS_WITH