git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			123 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        tests/mbconv/convauto.cpp
 | |
| // Purpose:     wxConvAuto unit test
 | |
| // Author:      Vadim Zeitlin
 | |
| // Created:     2006-04-04
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) 2006 Vadim Zeitlin
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // headers
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| #include "testprec.h"
 | |
| 
 | |
| #ifdef __BORLANDC__
 | |
|     #pragma hdrstop
 | |
| #endif
 | |
| 
 | |
| #if wxUSE_WCHAR_T
 | |
| 
 | |
| #ifndef WX_PRECOMP
 | |
| #endif // WX_PRECOMP
 | |
| 
 | |
| #include "wx/convauto.h"
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // test class
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| class ConvAutoTestCase : public CppUnit::TestCase
 | |
| {
 | |
| public:
 | |
|     ConvAutoTestCase() { }
 | |
| 
 | |
| private:
 | |
|     CPPUNIT_TEST_SUITE( ConvAutoTestCase );
 | |
|         CPPUNIT_TEST( Empty );
 | |
|         CPPUNIT_TEST( Short );
 | |
|         CPPUNIT_TEST( None );
 | |
|         CPPUNIT_TEST( UTF32LE );
 | |
|         CPPUNIT_TEST( UTF32BE );
 | |
|         CPPUNIT_TEST( UTF16LE );
 | |
|         CPPUNIT_TEST( UTF16BE );
 | |
|         CPPUNIT_TEST( UTF8 );
 | |
|     CPPUNIT_TEST_SUITE_END();
 | |
| 
 | |
|     // real test function: check that converting the src multibyte string to
 | |
|     // wide char using wxConvAuto yields wch as the first result
 | |
|     void TestFirstChar(const char *src, wchar_t wch);
 | |
| 
 | |
|     void Empty();
 | |
|     void Short();
 | |
|     void None();
 | |
|     void UTF32LE();
 | |
|     void UTF32BE();
 | |
|     void UTF16LE();
 | |
|     void UTF16BE();
 | |
|     void UTF8();
 | |
| };
 | |
| 
 | |
| // register in the unnamed registry so that these tests are run by default
 | |
| CPPUNIT_TEST_SUITE_REGISTRATION(ConvAutoTestCase);
 | |
| 
 | |
| // also include in it's own registry so that these tests can be run alone
 | |
| CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(ConvAutoTestCase, "ConvAutoTestCase");
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // tests
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| void ConvAutoTestCase::TestFirstChar(const char *src, wchar_t wch)
 | |
| {
 | |
|     wxWCharBuffer wbuf = wxConvAuto().cMB2WC(src);
 | |
|     CPPUNIT_ASSERT( wbuf );
 | |
|     CPPUNIT_ASSERT_EQUAL( wch, *wbuf );
 | |
| }
 | |
| 
 | |
| void ConvAutoTestCase::Empty()
 | |
| {
 | |
|     TestFirstChar("", _T('\0'));
 | |
| }
 | |
| 
 | |
| void ConvAutoTestCase::Short()
 | |
| {
 | |
|     TestFirstChar("1", _T('1'));
 | |
| }
 | |
| 
 | |
| void ConvAutoTestCase::None()
 | |
| {
 | |
|     TestFirstChar("Hello world", _T('H'));
 | |
| }
 | |
| 
 | |
| void ConvAutoTestCase::UTF32LE()
 | |
| {
 | |
|     TestFirstChar("\xff\xfe\0\0A\0\0\0", _T('A'));
 | |
| }
 | |
| 
 | |
| void ConvAutoTestCase::UTF32BE()
 | |
| {
 | |
|     TestFirstChar("\0\0\xfe\xff\0\0\0B", _T('B'));
 | |
| }
 | |
| 
 | |
| void ConvAutoTestCase::UTF16LE()
 | |
| {
 | |
|     TestFirstChar("\xff\xfeZ\0", _T('Z'));
 | |
| }
 | |
| 
 | |
| void ConvAutoTestCase::UTF16BE()
 | |
| {
 | |
|     TestFirstChar("\xfe\xff\0Y", _T('Y'));
 | |
| }
 | |
| 
 | |
| void ConvAutoTestCase::UTF8()
 | |
| {
 | |
| #ifdef wxHAVE_U_ESCAPE
 | |
|     TestFirstChar("\xef\xbb\xbf\xd0\x9f", L'\u041f');
 | |
| #endif
 | |
| }
 | |
| 
 | |
| #endif // wxUSE_WCHAR_T
 | |
| 
 |