]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/file/filetest.cpp
Further refine of #15226: wxRichTextCtrl: Implement setting properties with undo...
[wxWidgets.git] / tests / file / filetest.cpp
index 446a59fa8da560e2130b304a2197034140cda958..8a3618dd8333b6bde33dede70449fc638f9e3c90 100644 (file)
@@ -3,7 +3,6 @@
 // Purpose:     wxFile unit test
 // Author:      Vadim Zeitlin
 // Created:     2009-09-12
-// RCS-ID:      $Id$
 // Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -34,6 +33,7 @@ public:
 
 private:
     CPPUNIT_TEST_SUITE( FileTestCase );
+        CPPUNIT_TEST( ReadAll );
 #if wxUSE_UNICODE
         CPPUNIT_TEST( RoundTripUTF8 );
         CPPUNIT_TEST( RoundTripUTF16 );
@@ -42,6 +42,7 @@ private:
         CPPUNIT_TEST( TempFile );
     CPPUNIT_TEST_SUITE_END();
 
+    void ReadAll();
 #if wxUSE_UNICODE
     void RoundTripUTF8() { DoRoundTripTest(wxConvUTF8); }
     void RoundTripUTF16() { DoRoundTripTest(wxMBConvUTF16()); }
@@ -65,13 +66,37 @@ CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( FileTestCase, "FileTestCase" );
 // tests implementation
 // ----------------------------------------------------------------------------
 
+void FileTestCase::ReadAll()
+{
+    TestFile tf;
+
+    const char* text = "Ream\nde";
+
+    {
+        wxFile fout(tf.GetName(), wxFile::write);
+        CPPUNIT_ASSERT( fout.IsOpened() );
+        fout.Write(text, strlen(text));
+        CPPUNIT_ASSERT( fout.Close() );
+    }
+
+    {
+        wxFile fin(tf.GetName(), wxFile::read);
+        CPPUNIT_ASSERT( fin.IsOpened() );
+
+        wxString s;
+        CPPUNIT_ASSERT( fin.ReadAll(&s) );
+        CPPUNIT_ASSERT_EQUAL( text, s );
+    }
+}
+
 #if wxUSE_UNICODE
 
 void FileTestCase::DoRoundTripTest(const wxMBConv& conv)
 {
     TestFile tf;
 
-    const wxString data = "Hello\0UTF";
+    // Explicit length is needed because of the embedded NUL.
+    const wxString data("Hello\0UTF!", 10);
 
     {
         wxFile fout(tf.GetName(), wxFile::write);
@@ -88,8 +113,8 @@ void FileTestCase::DoRoundTripTest(const wxMBConv& conv)
         wxCharBuffer buf(len);
         CPPUNIT_ASSERT_EQUAL( len, fin.Read(buf.data(), len) );
 
-        wxWCharBuffer wbuf(conv.cMB2WC(buf));
-        CPPUNIT_ASSERT_EQUAL( data, wbuf );
+        wxString dataReadBack(buf, conv, len);
+        CPPUNIT_ASSERT_EQUAL( data, dataReadBack );
     }
 }