// headers
// ----------------------------------------------------------------------------
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/wx.h"
+#endif // WX_PRECOMP
+
#include "wx/strconv.h"
#include "wx/string.h"
+#if wxUSE_FONTMAP
+ #include "wx/fontmap.h"
+#endif // wxUSE_FONTMAP
+
#include "wx/cppunit.h"
// ----------------------------------------------------------------------------
private:
CPPUNIT_TEST_SUITE( MBConvTestCase );
CPPUNIT_TEST( WC2CP1250 );
+ CPPUNIT_TEST( Charsets );
CPPUNIT_TEST_SUITE_END();
void WC2CP1250();
+ void Charsets();
- NO_COPY_CLASS(MBConvTestCase);
+ DECLARE_NO_COPY_CLASS(MBConvTestCase)
};
+// register in the unnamed registry so that these tests are run by default
+CPPUNIT_TEST_SUITE_REGISTRATION( MBConvTestCase );
+
+// also include in it's own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( MBConvTestCase, "MBConvTestCase" );
void MBConvTestCase::WC2CP1250()
} data[] =
{
{ L"hello", "hello" }, // test that it works in simplest case
- { L"½ of ½ is ¼", "" }, // this should fail as cp1250 doesn't have 1/2
+ { L"½ of ½ is ¼", NULL }, // this should fail as cp1250 doesn't have 1/2
};
wxCSConv cs1250(wxFONTENCODING_CP1250);
for ( size_t n = 0; n < WXSIZEOF(data); n++ )
{
const Data& d = data[n];
- CPPUNIT_ASSERT( wxString(d.wc, cs1250) == d.cp1250 );
+ if (d.cp1250)
+ {
+ CPPUNIT_ASSERT( strcmp(cs1250.cWC2MB(d.wc), d.cp1250) == 0 );
+ }
+ else
+ {
+ CPPUNIT_ASSERT( (const char*)cs1250.cWC2MB(d.wc) == NULL );
+ }
}
}
-// ----------------------------------------------------------------------------
-// program entry point
-// ----------------------------------------------------------------------------
-
-int main()
+void MBConvTestCase::Charsets()
{
- CppUnit::TextUi::TestRunner runner;
- runner.addTest(MBConvTestCase::suite());
+#if wxUSE_FONTMAP
- return runner.run("") ? 0 : 1;
-}
+ static const wxChar *charsets[] =
+ {
+ // some vali charsets
+ _T("us-ascii" ),
+ _T("iso8859-1" ),
+ _T("iso-8859-12" ),
+ _T("koi8-r" ),
+ _T("utf-7" ),
+ _T("cp1250" ),
+ _T("windows-1252"),
+
+ // and now some bogus ones
+ _T("" ),
+ _T("cp1249" ),
+ _T("iso--8859-1" ),
+ _T("iso-8859-19" ),
+ };
+ static const wxChar *names[] =
+ {
+ // some vali charsets
+ _T("default" ),
+ _T("iso-8859-1" ),
+ _T("iso-8859-12" ),
+ _T("koi8-r" ),
+ _T("utf-7" ),
+ _T("windows-1250"),
+ _T("windows-1252"),
+
+ // and now some bogus ones
+ _T("default" ),
+ _T("unknown--1" ),
+ _T("unknown--1" ),
+ _T("unknown--1" ),
+ };
+
+ static const wxChar *descriptions[] =
+ {
+ // some vali charsets
+ _T("Default encoding" ),
+ _T("Western European (ISO-8859-1)" ),
+ _T("Indian (ISO-8859-12)" ),
+ _T("KOI8-R" ),
+ _T("Unicode 7 bit (UTF-7)" ),
+ _T("Windows Central European (CP 1250)"),
+ _T("Windows Western European (CP 1252)"),
+
+ // and now some bogus ones
+ _T("Default encoding" ),
+ _T("Unknown encoding (-1)" ),
+ _T("Unknown encoding (-1)" ),
+ _T("Unknown encoding (-1)" ),
+ };
+
+ for ( size_t n = 0; n < WXSIZEOF(charsets); n++ )
+ {
+ wxFontEncoding enc = wxFontMapper::Get()->CharsetToEncoding(charsets[n]);
+ CPPUNIT_ASSERT( wxFontMapper::Get()->GetEncodingName(enc) == names[n] );
+ CPPUNIT_ASSERT( wxFontMapper::Get()->GetEncodingDescription(enc) == descriptions[n] );
+ }
+
+#endif // wxUSE_FONTMAP
+}