X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a9f3fb07a0fd25c4769e92a7b871f497ef523a07..830c06655b226cfe9fe55d57da8c948d1744107c:/tests/file/filetest.cpp diff --git a/tests/file/filetest.cpp b/tests/file/filetest.cpp index 446a59fa8d..4c2f9b4135 100644 --- a/tests/file/filetest.cpp +++ b/tests/file/filetest.cpp @@ -34,6 +34,7 @@ public: private: CPPUNIT_TEST_SUITE( FileTestCase ); + CPPUNIT_TEST( ReadAll ); #if wxUSE_UNICODE CPPUNIT_TEST( RoundTripUTF8 ); CPPUNIT_TEST( RoundTripUTF16 ); @@ -42,6 +43,7 @@ private: CPPUNIT_TEST( TempFile ); CPPUNIT_TEST_SUITE_END(); + void ReadAll(); #if wxUSE_UNICODE void RoundTripUTF8() { DoRoundTripTest(wxConvUTF8); } void RoundTripUTF16() { DoRoundTripTest(wxMBConvUTF16()); } @@ -65,13 +67,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 +114,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 ); } }