Unit tests update

This commit is contained in:
Markus Gans 2018-03-05 22:26:44 +01:00
parent dfbe632d26
commit 7f5dc3bfe2
2 changed files with 66 additions and 7 deletions

View File

@ -1281,13 +1281,8 @@ FString& FString::setString (const wchar_t s[])
FString& FString::setString (const char s[])
{
const wchar_t* wc_string = c_to_wc_str(s);
if ( wc_string )
{
_assign (wc_string);
delete[] wc_string;
}
return *this;
}
@ -2538,6 +2533,12 @@ inline void FString::initLength (uInt len)
//----------------------------------------------------------------------
inline void FString::_assign (const wchar_t s[])
{
if ( ! s )
{
clear();
return;
}
if ( s == string )
return;

View File

@ -154,8 +154,13 @@ void FStringTest::NoArgumentTest()
cstr = 0;
CPPUNIT_ASSERT ( empty == cstr );
CPPUNIT_ASSERT ( FString(std::string()).isEmpty() );
CPPUNIT_ASSERT ( FString(char(0)).isEmpty() );
wcstr = 0;
CPPUNIT_ASSERT ( empty == wcstr );
CPPUNIT_ASSERT ( FString(std::wstring()).isEmpty() );
CPPUNIT_ASSERT ( FString(wchar_t(0)).isEmpty() );
CPPUNIT_ASSERT ( ! empty.includes('A') );
CPPUNIT_ASSERT ( ! empty.includes(L'A') );
@ -313,6 +318,40 @@ void FStringTest::assignmentTest()
s1 = s8;
CPPUNIT_ASSERT ( s1 == L"%" );
CPPUNIT_ASSERT ( s1.getLength() == 1 );
s1.setString("A character string");
CPPUNIT_ASSERT ( s1 == "A character string" );
s1.setString(L"A wide character string");
CPPUNIT_ASSERT ( s1 == L"A wide character string" );
s1.setString("");
CPPUNIT_ASSERT ( s1 == "" );
s1.setString(L"");
CPPUNIT_ASSERT ( s1 == L"" );
s1.setString("");
CPPUNIT_ASSERT ( s1.isEmpty() );
s1.setString(L"");
CPPUNIT_ASSERT ( s1.isEmpty() );
s1.setString("");
CPPUNIT_ASSERT ( ! s1.isNull() );
s1.setString(L"");
CPPUNIT_ASSERT ( ! s1.isNull() );
wchar_t* wc = 0;
s1.setString(wc);
CPPUNIT_ASSERT ( s1.isEmpty() );
CPPUNIT_ASSERT ( s1.isNull() );
wchar_t* c = 0;
s1.setString(c);
CPPUNIT_ASSERT ( s1.isEmpty() );
CPPUNIT_ASSERT ( s1.isNull() );
}
//----------------------------------------------------------------------
@ -835,6 +874,12 @@ void FStringTest::formatTest()
str2.sprintf (L"It costs only %d cent", 50);
CPPUNIT_ASSERT ( str2 == "It costs only 50 cent" );
str2.sprintf ( L"Add a looooooooooooooooooooooooooooooooooooooo"
"ooooooooooonnnnnnnnnnnnnnnnnnnnnnng %S"
, L"string" );
CPPUNIT_ASSERT ( str2 == "Add a looooooooooooooooooooooooooooooooooooooo"
"ooooooooooonnnnnnnnnnnnnnnnnnnnnnng string" );
std::setlocale (LC_NUMERIC, "C");
FString fnum1, fnum2;
@ -1007,6 +1052,12 @@ void FStringTest::trimTest()
CPPUNIT_ASSERT ( trim_str2.ltrim().getLength() == 0 );
const FString trim_str3;
CPPUNIT_ASSERT ( trim_str3.ltrim().isEmpty() );
CPPUNIT_ASSERT ( trim_str3.ltrim().isEmpty() );
CPPUNIT_ASSERT ( trim_str3.ltrim().getLength() == 0 );
CPPUNIT_ASSERT ( trim_str3.rtrim().isEmpty() );
CPPUNIT_ASSERT ( trim_str3.rtrim().isEmpty() );
CPPUNIT_ASSERT ( trim_str3.rtrim().getLength() == 0 );
CPPUNIT_ASSERT ( trim_str3.trim().isEmpty() );
CPPUNIT_ASSERT ( trim_str3.trim().isNull() );
CPPUNIT_ASSERT ( trim_str3.trim().getLength() == 0 );
@ -1071,6 +1122,13 @@ void FStringTest::subStringTest()
string_list.push_back("Look behind you");
string_list.push_back(" a three-headed monkey!");
CPPUNIT_ASSERT ( string_parts == string_list );
string_parts = str1.split(',');
CPPUNIT_ASSERT ( string_parts == string_list );
string_parts = FString().split(':');
CPPUNIT_ASSERT ( string_parts.empty() );
CPPUNIT_ASSERT ( string_parts.size() == 0 );
}
// Put the test suite in the registry