]> git.saurik.com Git - wxWidgets.git/blob - tests/mbconv/main.cpp
Prepare headers for C->C++ migration
[wxWidgets.git] / tests / mbconv / main.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: tests/mbconv/main.cpp
3 // Purpose: wxMBConv unit test
4 // Author: Vadim Zeitlin
5 // Created: 14.02.04
6 // RCS-ID: $Id$
7 // Copyright: (c) 2003 TT-Solutions
8 ///////////////////////////////////////////////////////////////////////////////
9
10 // ----------------------------------------------------------------------------
11 // headers
12 // ----------------------------------------------------------------------------
13
14 #include "wx/wxprec.h"
15
16 #ifdef __BORLANDC__
17 #pragma hdrstop
18 #endif
19
20 #ifndef WX_PRECOMP
21 #include "wx/wx.h"
22 #endif // WX_PRECOMP
23
24 #include "wx/strconv.h"
25 #include "wx/string.h"
26
27 #include "wx/cppunit.h"
28
29 // ----------------------------------------------------------------------------
30 // test class
31 // ----------------------------------------------------------------------------
32
33 class MBConvTestCase : public CppUnit::TestCase
34 {
35 public:
36 MBConvTestCase() { }
37
38 private:
39 CPPUNIT_TEST_SUITE( MBConvTestCase );
40 CPPUNIT_TEST( WC2CP1250 );
41 CPPUNIT_TEST_SUITE_END();
42
43 void WC2CP1250();
44
45 DECLARE_NO_COPY_CLASS(MBConvTestCase)
46 };
47
48 // register in the unnamed registry so that these tests are run by default
49 CPPUNIT_TEST_SUITE_REGISTRATION( MBConvTestCase );
50
51 // also include in it's own registry so that these tests can be run alone
52 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( MBConvTestCase, "MBConvTestCase" );
53
54 void MBConvTestCase::WC2CP1250()
55 {
56 static const struct Data
57 {
58 const wchar_t *wc;
59 const char *cp1250;
60 } data[] =
61 {
62 { L"hello", "hello" }, // test that it works in simplest case
63 { L"\xBD of \xBD is \xBC", NULL }, // this should fail as cp1250 doesn't have 1/2
64 };
65
66 wxCSConv cs1250(wxFONTENCODING_CP1250);
67 for ( size_t n = 0; n < WXSIZEOF(data); n++ )
68 {
69 const Data& d = data[n];
70 if (d.cp1250)
71 {
72 CPPUNIT_ASSERT( strcmp(cs1250.cWC2MB(d.wc), d.cp1250) == 0 );
73 }
74 else
75 {
76 CPPUNIT_ASSERT( (const char*)cs1250.cWC2MB(d.wc) == NULL );
77 }
78 }
79 }