X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bf24fcddc33cbf7d52a3047cdf1eaa6451483c28..4a9d531345426e99f0682a813081f4cf5822251a:/tests/file/filetest.cpp?ds=sidebyside diff --git a/tests/file/filetest.cpp b/tests/file/filetest.cpp index 33300577cb..4c2f9b4135 100644 --- a/tests/file/filetest.cpp +++ b/tests/file/filetest.cpp @@ -34,16 +34,24 @@ public: private: CPPUNIT_TEST_SUITE( FileTestCase ); + CPPUNIT_TEST( ReadAll ); +#if wxUSE_UNICODE CPPUNIT_TEST( RoundTripUTF8 ); CPPUNIT_TEST( RoundTripUTF16 ); CPPUNIT_TEST( RoundTripUTF32 ); +#endif // wxUSE_UNICODE + CPPUNIT_TEST( TempFile ); CPPUNIT_TEST_SUITE_END(); + void ReadAll(); +#if wxUSE_UNICODE void RoundTripUTF8() { DoRoundTripTest(wxConvUTF8); } void RoundTripUTF16() { DoRoundTripTest(wxMBConvUTF16()); } void RoundTripUTF32() { DoRoundTripTest(wxMBConvUTF32()); } +#endif // wxUSE_UNICODE void DoRoundTripTest(const wxMBConv& conv); + void TempFile(); wxDECLARE_NO_COPY_CLASS(FileTestCase); }; @@ -59,11 +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); @@ -80,16 +114,19 @@ void FileTestCase::DoRoundTripTest(const wxMBConv& conv) wxCharBuffer buf(len); CPPUNIT_ASSERT_EQUAL( len, fin.Read(buf.data(), len) ); - wxWCharBuffer wbuf(conv.cMB2WC(buf)); -#if wxUSE_UNICODE - CPPUNIT_ASSERT_EQUAL( data, wbuf ); -#else // !wxUSE_UNICODE - CPPUNIT_ASSERT - ( - memcmp(wbuf, L"Hello\0UTF", data.length()*sizeof(wchar_t)) == 0 - ); -#endif // wxUSE_UNICODE/!wxUSE_UNICODE + wxString dataReadBack(buf, conv, len); + CPPUNIT_ASSERT_EQUAL( data, dataReadBack ); } } +#endif // wxUSE_UNICODE + +void FileTestCase::TempFile() +{ + wxTempFile tmpFile; + CPPUNIT_ASSERT( tmpFile.Open(wxT("test2")) && tmpFile.Write(wxT("the answer is 42")) ); + CPPUNIT_ASSERT( tmpFile.Commit() ); + CPPUNIT_ASSERT( wxRemoveFile(wxT("test2")) ); +} + #endif // wxUSE_FILE