| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        tests/file/filetest.cpp
 
- // Purpose:     wxFile unit test
 
- // Author:      Vadim Zeitlin
 
- // Created:     2009-09-12
 
- // Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
 
- ///////////////////////////////////////////////////////////////////////////////
 
- // ----------------------------------------------------------------------------
 
- // headers
 
- // ----------------------------------------------------------------------------
 
- #include "testprec.h"
 
- #ifdef __BORLANDC__
 
-     #pragma hdrstop
 
- #endif
 
- #if wxUSE_FILE
 
- #include "wx/file.h"
 
- #include "testfile.h"
 
- // ----------------------------------------------------------------------------
 
- // test class
 
- // ----------------------------------------------------------------------------
 
- class FileTestCase : public CppUnit::TestCase
 
- {
 
- public:
 
-     FileTestCase() { }
 
- 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);
 
- };
 
- // ----------------------------------------------------------------------------
 
- // CppUnit macros
 
- // ----------------------------------------------------------------------------
 
- CPPUNIT_TEST_SUITE_REGISTRATION( FileTestCase );
 
- 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;
 
-     // Explicit length is needed because of the embedded NUL.
 
-     const wxString data("Hello\0UTF!", 10);
 
-     {
 
-         wxFile fout(tf.GetName(), wxFile::write);
 
-         CPPUNIT_ASSERT( fout.IsOpened() );
 
-         CPPUNIT_ASSERT( fout.Write(data, conv) );
 
-     }
 
-     {
 
-         wxFile fin(tf.GetName(), wxFile::read);
 
-         CPPUNIT_ASSERT( fin.IsOpened() );
 
-         const ssize_t len = fin.Length();
 
-         wxCharBuffer buf(len);
 
-         CPPUNIT_ASSERT_EQUAL( len, fin.Read(buf.data(), len) );
 
-         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
 
 
  |