]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/mbconv/mbconvtest.cpp
Minor corrections to make dist after reports
[wxWidgets.git] / tests / mbconv / mbconvtest.cpp
index e1db40d81d43992709ec98d6429ecce08821d3c1..b5d0185467718f2d240988262948671c34f68109 100644 (file)
@@ -78,6 +78,7 @@ private:
         CPPUNIT_TEST( CP1252Tests ); // depends on UTF8 Decoder functioning correctly
         CPPUNIT_TEST( LibcTests );
         CPPUNIT_TEST( IconvTests );
+        CPPUNIT_TEST( Latin1Tests );
         CPPUNIT_TEST( FontmapTests );
 #ifdef HAVE_WCHAR_H
         CPPUNIT_TEST( UTF8_41 );
@@ -113,6 +114,7 @@ private:
     void LibcTests();
     void FontmapTests();
     void IconvTests();
+    void Latin1Tests();
 
     // verifies that the specified multibyte sequence decodes to the specified wchar_t sequence
     void TestDecoder(
@@ -828,6 +830,24 @@ void MBConvTestCase::IconvTests()
 #endif
 }
 
+void MBConvTestCase::Latin1Tests()
+{
+    TestCoder(
+        (const char*)iso8859_1,
+        sizeof(iso8859_1),
+        (const char*)iso8859_1_utf8,
+        sizeof(iso8859_1_utf8),
+        wxConvISO8859_1,
+        1
+        );
+
+    static const char nulstr[] = "foo\0bar\0";
+    static const size_t mbLen = WXSIZEOF(nulstr) - 1;
+    size_t wcLen;
+    wxWCharBuffer wbuf(wxConvISO8859_1.cMB2WC(nulstr, mbLen, &wcLen));
+    CPPUNIT_ASSERT_EQUAL( mbLen, wcLen );
+}
+
 void MBConvTestCase::CP1252Tests()
 {
     wxCSConv convCP1252( wxFONTENCODING_CP1252 );
@@ -1018,7 +1038,11 @@ void MBConvTestCase::TestStreamDecoder(
     for ( size_t i = 0; i < wideChars; i++ )
     {
         wxChar wc = textInputStream.GetChar();
-        CPPUNIT_ASSERT( wc == wideBuffer[i] );
+        CPPUNIT_ASSERT_EQUAL_MESSAGE(
+            std::string(wxString::Format("At position %lu", (unsigned long)i)),
+            wideBuffer[i],
+            wc
+        );
     }
     CPPUNIT_ASSERT( 0 == textInputStream.GetChar() );
     CPPUNIT_ASSERT( memoryInputStream.Eof() );
@@ -1046,6 +1070,9 @@ void MBConvTestCase::TestStreamEncoder(
     {
         textOutputStream.PutChar( wideBuffer[i] );
     }
+
+    textOutputStream.Flush();
+
     CPPUNIT_ASSERT_EQUAL( (wxFileOffset)multiBytes, memoryOutputStream.TellO() );
     wxCharBuffer copy( memoryOutputStream.TellO() );
     memoryOutputStream.CopyTo( copy.data(), memoryOutputStream.TellO());