X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f3e46c20426786ab24f708fec2c4fad1db22c97..276c32e15b275548cb756dd2c9b9f3b1673ba22e:/tests/streams/textstreamtest.cpp?ds=sidebyside diff --git a/tests/streams/textstreamtest.cpp b/tests/streams/textstreamtest.cpp index 0d9384e6b1..aa089980fd 100644 --- a/tests/streams/textstreamtest.cpp +++ b/tests/streams/textstreamtest.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: tests/uris/uris.cpp +// Name: tests/streams/textstreamtest.cpp // Purpose: wxTextXXXStream unit test // Author: Ryan Norton, Vince Harron // Created: 2004-08-14 @@ -44,6 +44,7 @@ public: private: CPPUNIT_TEST_SUITE( TextStreamTestCase ); CPPUNIT_TEST( Endline ); + CPPUNIT_TEST( MiscTests ); #if wxUSE_LONGLONG CPPUNIT_TEST( TestLongLong ); @@ -60,6 +61,7 @@ private: CPPUNIT_TEST_SUITE_END(); void Endline(); + void MiscTests(); #if wxUSE_LONGLONG void TestLongLong(); @@ -72,7 +74,7 @@ private: void TestEmbeddedZerosUTF16BEInput(); void TestEmbeddedZerosUTF32LEInput(); void TestEmbeddedZerosUTF32BEInput(); - void TestInput(wxFontEncoding encoding, + void TestInput(const wxMBConv& conv, const void* encodedText, size_t encodedSize ); #endif // wxUSE_UNICODE @@ -84,14 +86,14 @@ private: // register in the unnamed registry so that these tests are run by default CPPUNIT_TEST_SUITE_REGISTRATION( TextStreamTestCase ); -// also include in it's own registry so that these tests can be run alone +// also include in its own registry so that these tests can be run alone CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TextStreamTestCase, "TextStreamTestCase" ); TextStreamTestCase::TextStreamTestCase() { } -#if defined(__WXMSW__) || defined(__WXPM__) +#if defined(__WINDOWS__) || defined(__WXPM__) # define NEWLINE "\r\n" # define NEWLINELEN 2 #elif defined(__WXMAC__) && !defined(__DARWIN__) @@ -104,15 +106,15 @@ TextStreamTestCase::TextStreamTestCase() void TextStreamTestCase::Endline() { - wxFileOutputStream* pOutFile = new wxFileOutputStream(_T("test.txt")); + wxFileOutputStream* pOutFile = new wxFileOutputStream(wxT("test.txt")); wxTextOutputStream* pOutText = new wxTextOutputStream(*pOutFile); - *pOutText << _T("Test text") << endl - << _T("More Testing Text (There should be newline before this)"); + *pOutText << wxT("Test text") << endl + << wxT("More Testing Text (There should be newline before this)"); delete pOutText; delete pOutFile; - wxFileInputStream* pInFile = new wxFileInputStream(_T("test.txt")); + wxFileInputStream* pInFile = new wxFileInputStream(wxT("test.txt")); char szIn[9 + NEWLINELEN]; @@ -123,13 +125,31 @@ void TextStreamTestCase::Endline() delete pInFile; } +void TextStreamTestCase::MiscTests() +{ + wxString filename = wxT("testdata.fc"); + wxFileInputStream fsIn(filename); + if ( !fsIn.IsOk() ) + { + return; + } + + wxTextInputStream tis(fsIn); + CPPUNIT_ASSERT_EQUAL("# this is the test data file for wxFileConfig tests", tis.ReadLine()); + CPPUNIT_ASSERT_EQUAL("value1=one", tis.ReadLine()); + CPPUNIT_ASSERT_EQUAL("# a comment here", tis.ReadLine()); + CPPUNIT_ASSERT_EQUAL("value2=two", tis.ReadLine()); + CPPUNIT_ASSERT_EQUAL("value\\ with\\ spaces\\ inside\\ it=nothing special", tis.ReadLine()); + CPPUNIT_ASSERT_EQUAL("path=$PATH", tis.ReadLine()); +} + #if wxUSE_LONGLONG template static void DoTestRoundTrip(const T *values, size_t numValues) { { - wxFileOutputStream fileOut(_T("test.txt")); + wxFileOutputStream fileOut(wxT("test.txt")); wxTextOutputStream textOut(fileOut); for ( size_t n = 0; n < numValues; n++ ) @@ -139,7 +159,7 @@ static void DoTestRoundTrip(const T *values, size_t numValues) } { - wxFileInputStream fileIn(_T("test.txt")); + wxFileInputStream fileIn(wxT("test.txt")); wxTextInputStream textIn(fileIn); T value; @@ -185,7 +205,7 @@ void TextStreamTestCase::TestULongLong() #if wxUSE_UNICODE -const static wchar_t txtWchar[4] = +static const wchar_t txtWchar[4] = { 0x0041, // LATIN CAPITAL LETTER A 0x0100, // A WITH BREVE, LATIN SMALL LETTER @@ -193,28 +213,28 @@ const static wchar_t txtWchar[4] = 0x0100, // A WITH BREVE, LATIN SMALL LETTER }; -const static unsigned char txtUtf8[6] = +static const unsigned char txtUtf8[6] = { 0x41, 0xc4, 0x80, 0x41, 0xc4, 0x80, }; -const static unsigned char txtUtf16le[8] = +static const unsigned char txtUtf16le[8] = { 0x41, 0x00, 0x00, 0x01, 0x41, 0x00, 0x00, 0x01, }; -const static unsigned char txtUtf16be[8] = +static const unsigned char txtUtf16be[8] = { 0x00, 0x41, 0x01, 0x00, 0x00, 0x41, 0x01, 0x00, }; -const static unsigned char txtUtf32le[16] = +static const unsigned char txtUtf32le[16] = { 0x41, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, }; -const static unsigned char txtUtf32be[16] = +static const unsigned char txtUtf32be[16] = { 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x01, 0x00, @@ -222,34 +242,38 @@ const static unsigned char txtUtf32be[16] = void TextStreamTestCase::TestUTF8Input() { - TestInput(wxFONTENCODING_UTF8, txtUtf8, sizeof(txtUtf8)); + TestInput(wxConvUTF8, txtUtf8, sizeof(txtUtf8)); + TestInput(wxCSConv(wxFONTENCODING_UTF8), txtUtf8, sizeof(txtUtf8)); } void TextStreamTestCase::TestEmbeddedZerosUTF16LEInput() { - TestInput(wxFONTENCODING_UTF16LE, txtUtf16le, sizeof(txtUtf16le)); + TestInput(wxMBConvUTF16LE(), txtUtf16le, sizeof(txtUtf16le)); + TestInput(wxCSConv(wxFONTENCODING_UTF16LE), txtUtf16le, sizeof(txtUtf16le)); } void TextStreamTestCase::TestEmbeddedZerosUTF16BEInput() { - TestInput(wxFONTENCODING_UTF16BE, txtUtf16be, sizeof(txtUtf16be)); + TestInput(wxMBConvUTF16BE(), txtUtf16be, sizeof(txtUtf16be)); + TestInput(wxCSConv(wxFONTENCODING_UTF16BE), txtUtf16be, sizeof(txtUtf16be)); } void TextStreamTestCase::TestEmbeddedZerosUTF32LEInput() { - TestInput(wxFONTENCODING_UTF32LE, txtUtf32le, sizeof(txtUtf32le)); + TestInput(wxMBConvUTF32LE(), txtUtf32le, sizeof(txtUtf32le)); + TestInput(wxCSConv(wxFONTENCODING_UTF32LE), txtUtf32le, sizeof(txtUtf32le)); } void TextStreamTestCase::TestEmbeddedZerosUTF32BEInput() { - TestInput(wxFONTENCODING_UTF32BE, txtUtf32be, sizeof(txtUtf32be)); + TestInput(wxMBConvUTF32BE(), txtUtf32be, sizeof(txtUtf32be)); + TestInput(wxCSConv(wxFONTENCODING_UTF32BE), txtUtf32be, sizeof(txtUtf32be)); } -void TextStreamTestCase::TestInput(wxFontEncoding encoding, +void TextStreamTestCase::TestInput(const wxMBConv& conv, const void *encodedText, size_t encodedSize) { - wxCSConv conv(encoding); wxMemoryInputStream byteIn(encodedText, encodedSize); wxTextInputStream textIn(byteIn, wxT("\n"), conv); @@ -261,7 +285,7 @@ void TextStreamTestCase::TestInput(wxFontEncoding encoding, CPPUNIT_ASSERT_EQUAL( WXSIZEOF(txtWchar), temp.length() ); - CPPUNIT_ASSERT_EQUAL( 0, memcmp(txtWchar, temp.c_str(), sizeof(txtWchar)) ); + CPPUNIT_ASSERT_EQUAL( 0, memcmp(txtWchar, temp.wc_str(), sizeof(txtWchar)) ); } #endif // wxUSE_UNICODE