1///////////////////////////////////////////////////////////////////////////////
2// Name:        tests/fontmap/fontmap.cpp
3// Purpose:     wxFontMapper unit test
4// Author:      Vadim Zeitlin
5// Created:     14.02.04
6// RCS-ID:      $Id: fontmaptest.cpp 38490 2006-03-31 21:14:40Z VZ $
7// Copyright:   (c) 2003 TT-Solutions
8// Licence:     wxWindows licence
9///////////////////////////////////////////////////////////////////////////////
10
11// ----------------------------------------------------------------------------
12// headers
13// ----------------------------------------------------------------------------
14
15#include "testprec.h"
16
17#ifdef __BORLANDC__
18    #pragma hdrstop
19#endif
20
21#ifndef WX_PRECOMP
22    #include "wx/wx.h"
23#endif // WX_PRECOMP
24
25#if wxUSE_FONTMAP
26
27#include "wx/fontmap.h"
28
29// ----------------------------------------------------------------------------
30// test class
31// ----------------------------------------------------------------------------
32
33class FontMapperTestCase : public CppUnit::TestCase
34{
35public:
36    FontMapperTestCase() { }
37
38private:
39    CPPUNIT_TEST_SUITE( FontMapperTestCase );
40        CPPUNIT_TEST( NamesAndDesc );
41    CPPUNIT_TEST_SUITE_END();
42
43    void NamesAndDesc();
44
45    DECLARE_NO_COPY_CLASS(FontMapperTestCase)
46};
47
48// register in the unnamed registry so that these tests are run by default
49CPPUNIT_TEST_SUITE_REGISTRATION( FontMapperTestCase );
50
51// also include in it's own registry so that these tests can be run alone
52CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( FontMapperTestCase, "FontMapperTestCase" );
53
54
55void FontMapperTestCase::NamesAndDesc()
56{
57    static const wxChar *charsets[] =
58    {
59        // some valid charsets
60        _T("us-ascii"    ),
61        _T("iso8859-1"   ),
62        _T("iso-8859-12" ),
63        _T("koi8-r"      ),
64        _T("utf-7"       ),
65        _T("cp1250"      ),
66        _T("windows-1252"),
67
68        // and now some bogus ones
69        _T(""            ),
70        _T("cp1249"      ),
71        _T("iso--8859-1" ),
72        _T("iso-8859-19" ),
73    };
74
75    static const wxChar *names[] =
76    {
77        // some valid charsets
78        _T("default"     ),
79        _T("iso-8859-1"  ),
80        _T("iso-8859-12" ),
81        _T("koi8-r"      ),
82        _T("utf-7"       ),
83        _T("windows-1250"),
84        _T("windows-1252"),
85
86        // and now some bogus ones
87        _T("default"     ),
88        _T("unknown--1"  ),
89        _T("unknown--1"  ),
90        _T("unknown--1"  ),
91    };
92
93    static const wxChar *descriptions[] =
94    {
95        // some valid charsets
96        _T("Default encoding"                  ),
97        _T("Western European (ISO-8859-1)"     ),
98        _T("Indian (ISO-8859-12)"              ),
99        _T("KOI8-R"                            ),
100        _T("Unicode 7 bit (UTF-7)"             ),
101        _T("Windows Central European (CP 1250)"),
102        _T("Windows Western European (CP 1252)"),
103
104        // and now some bogus ones
105        _T("Default encoding"                  ),
106        _T("Unknown encoding (-1)"             ),
107        _T("Unknown encoding (-1)"             ),
108        _T("Unknown encoding (-1)"             ),
109    };
110
111    for ( size_t n = 0; n < WXSIZEOF(charsets); n++ )
112    {
113        wxFontEncoding enc = wxFontMapperBase::Get()->CharsetToEncoding(charsets[n]);
114        CPPUNIT_ASSERT( wxFontMapperBase::Get()->GetEncodingName(enc).CmpNoCase(names[n]) == 0 );
115        CPPUNIT_ASSERT( wxFontMapperBase::Get()->GetEncodingDescription(enc) == descriptions[n] );
116    }
117}
118
119#endif // wxUSE_FONTMAP
120