X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/227989f3e96d846023d36a797931875c57fbae6d..4e3762c9e23a318702f361d572a12df2e6e8e1c9:/tests/file/filetest.cpp diff --git a/tests/file/filetest.cpp b/tests/file/filetest.cpp index dc3c286691..4ee972b8b7 100644 --- a/tests/file/filetest.cpp +++ b/tests/file/filetest.cpp @@ -34,16 +34,22 @@ public: private: CPPUNIT_TEST_SUITE( FileTestCase ); +#if wxUSE_UNICODE CPPUNIT_TEST( RoundTripUTF8 ); CPPUNIT_TEST( RoundTripUTF16 ); CPPUNIT_TEST( RoundTripUTF32 ); +#endif // wxUSE_UNICODE + CPPUNIT_TEST( TempFile ); CPPUNIT_TEST_SUITE_END(); +#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 +65,14 @@ CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( FileTestCase, "FileTestCase" ); // tests implementation // ---------------------------------------------------------------------------- +#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); @@ -76,20 +85,23 @@ void FileTestCase::DoRoundTripTest(const wxMBConv& conv) wxFile fin(tf.GetName(), wxFile::read); CPPUNIT_ASSERT( fin.IsOpened() ); - const wxFileOffset len = fin.Length(); + const ssize_t len = fin.Length(); 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