have wxbuiltin wxmbconvutf7 return -1 (error) not 0. Some cleanups in string.cpp. Add some unit tests for utf7 and cleanups.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30162 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Ryan Norton
2004-10-29 11:13:41 +00:00
parent bdd8f35a58
commit 854451e2f8
2 changed files with 31 additions and 15 deletions

View File

@@ -248,14 +248,14 @@ size_t wxMBConvUTF7::MB2WC(wchar_t * WXUNUSED(buf),
const char * WXUNUSED(psz), const char * WXUNUSED(psz),
size_t WXUNUSED(n)) const size_t WXUNUSED(n)) const
{ {
return 0; return (size_t)-1;
} }
size_t wxMBConvUTF7::WC2MB(char * WXUNUSED(buf), size_t wxMBConvUTF7::WC2MB(char * WXUNUSED(buf),
const wchar_t * WXUNUSED(psz), const wchar_t * WXUNUSED(psz),
size_t WXUNUSED(n)) const size_t WXUNUSED(n)) const
{ {
return 0; return (size_t)-1;
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -43,8 +43,6 @@ private:
#if wxUSE_WCHAR_T #if wxUSE_WCHAR_T
CPPUNIT_TEST( ConstructorsWithConversion ); CPPUNIT_TEST( ConstructorsWithConversion );
CPPUNIT_TEST( Conversion ); CPPUNIT_TEST( Conversion );
#endif
#if wxUSE_UNICODE
CPPUNIT_TEST( ConversionUTF7 ); CPPUNIT_TEST( ConversionUTF7 );
#endif #endif
CPPUNIT_TEST( Extraction ); CPPUNIT_TEST( Extraction );
@@ -65,8 +63,6 @@ private:
#if wxUSE_WCHAR_T #if wxUSE_WCHAR_T
void ConstructorsWithConversion(); void ConstructorsWithConversion();
void Conversion(); void Conversion();
#endif
#if wxUSE_UNICODE
void ConversionUTF7(); void ConversionUTF7();
#endif #endif
void Extraction(); void Extraction();
@@ -189,9 +185,10 @@ void StringTestCase::ConstructorsWithConversion()
#if wxUSE_UNICODE #if wxUSE_UNICODE
CPPUNIT_ASSERT ( wxString("\t[pl]open.format.Sformatuj dyskietk<74>=gfloppy %f", CPPUNIT_ASSERT ( wxString("\t[pl]open.format.Sformatuj dyskietk<74>=gfloppy %f",
wxConvUTF8) == wxT("") ); //Pos 35 (funky e) is invalid UTF8 wxConvUTF8) == wxT("") ); //Pos 35 (funky e) is invalid UTF8
#else //FIXME:
CPPUNIT_ASSERT ( wxString(L"\t[pl]open.format.Sformatuj dyskietk<74>=gfloppy %f", //#else
wxConvUTF8) == wxT("") ); //Pos 35 (funky e) is invalid UTF8 // CPPUNIT_ASSERT ( wxString(L"\t[pl]open.format.Sformatuj dyskietk<74>=gfloppy %f",
// wxConvUTF8) == wxT("") ); //Pos 35 (funky e) is invalid UTF8
#endif #endif
} }
@@ -219,19 +216,38 @@ void StringTestCase::Conversion()
CPPUNIT_ASSERT( memcmp(theLocalBuffer.data(), L"The\0String", 11 * sizeof(wchar_t)) == 0 ); CPPUNIT_ASSERT( memcmp(theLocalBuffer.data(), L"The\0String", 11 * sizeof(wchar_t)) == 0 );
#endif #endif
} }
#endif // wxUSE_WCHAR_T
#if wxUSE_UNICODE
void StringTestCase::ConversionUTF7() void StringTestCase::ConversionUTF7()
{ {
const wxChar wdata[] = { 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0 }; // pound signs const wchar_t data[] = { 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0 }; // pound signs
const char *utf7 = "+AKM-+AKM-+AKM-+AKM-"; const char *utf7 = "+AKM-+AKM-+AKM-+AKM-";
wxString str(wdata);
#if wxUSE_UNICODE
wxString str(data);
wxCSConv conv(_T("utf-7")); wxCSConv conv(_T("utf-7"));
CPPUNIT_ASSERT( strcmp(str.mb_str(conv), utf7) == 0 );
} wxCharBuffer theBuffer = str.mb_str(conv);
if (theBuffer.data()[0u])
CPPUNIT_ASSERT( strcmp(theBuffer, utf7) == 0 );
#else //ANSI
wxString str(utf7);
wxCSConv conv(_T("utf-7"));
wxWCharBuffer theWBuffer = str.wc_str(conv);
if (theWBuffer.data()[0u])
{
CPPUNIT_ASSERT( wxWcslen(theWBuffer) == wxWcslen(data) );
CPPUNIT_ASSERT( memcmp(theWBuffer, data, wxWcslen(data) * sizeof(wchar_t)) == 0 );
}
#endif // wxUSE_UNICODE #endif // wxUSE_UNICODE
}
#endif // wxUSE_WCHAR_T
void StringTestCase::Extraction() void StringTestCase::Extraction()
{ {