+
+void MBConvTestCase::Charsets()
+{
+#if wxUSE_FONTMAP
+
+    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
+}