X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/32d49041eb56f67c825a36fdf7388a0845913cb6..659d0ee81da0eb00220c598055c7ac2188a3d391:/tests/streams/sstream.cpp?ds=sidebyside diff --git a/tests/streams/sstream.cpp b/tests/streams/sstream.cpp index bc42c32e95..a6d7890183 100644 --- a/tests/streams/sstream.cpp +++ b/tests/streams/sstream.cpp @@ -8,7 +8,8 @@ /////////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" +// and "wx/cppunit.h" +#include "testprec.h" #ifdef __BORLANDC__ #pragma hdrstop @@ -18,14 +19,10 @@ #ifndef WX_PRECOMP #endif -#include "wx/cppunit.h" #include "wx/sstream.h" #include "bstream.h" -using namespace std; -using namespace CppUnit; - /////////////////////////////////////////////////////////////////////////////// // The test case // @@ -45,6 +42,7 @@ public: CPPUNIT_TEST(Input_Read); CPPUNIT_TEST(Input_Eof); CPPUNIT_TEST(Input_LastRead); + CPPUNIT_TEST(Input_CanRead); CPPUNIT_TEST(Input_SeekI); CPPUNIT_TEST(Input_TellI); CPPUNIT_TEST(Input_Peek); @@ -58,16 +56,21 @@ public: //CPPUNIT_TEST(Output_TellO); // Other test specific for String stream test case. + CPPUNIT_TEST(Output_Check); CPPUNIT_TEST_SUITE_END(); protected: - // Add own test here. + void Output_Check(); private: // Implement base class functions. - virtual wxStringInputStream *DoCreateInStream(); + virtual wxStringInputStream *DoCreateInStream(); virtual wxStringOutputStream *DoCreateOutStream(); + // output the given string to wxStringOutputStream and check that its + // contents is exactly the same string + void CheckString(const wxString& text); + wxString m_str; }; @@ -77,7 +80,7 @@ strStream::strStream() m_str.reserve(LEN); for ( size_t n = 0; n < LEN; n++ ) { - m_str += _T('A') + n % (_T('Z') - _T('A') + 1); + m_str += wxChar(_T('A') + n % (_T('Z') - _T('A') + 1)); } } @@ -85,20 +88,41 @@ strStream::~strStream() { } -wxStringInputStream *strStream::DoCreateInStream() -{ +wxStringInputStream *strStream::DoCreateInStream() +{ wxStringInputStream *pStrInStream = new wxStringInputStream(m_str); CPPUNIT_ASSERT(pStrInStream->IsOk()); return pStrInStream; } wxStringOutputStream *strStream::DoCreateOutStream() -{ +{ wxStringOutputStream *pStrOutStream = new wxStringOutputStream(); CPPUNIT_ASSERT(pStrOutStream->IsOk()); return pStrOutStream; } +void strStream::CheckString(const wxString& text) +{ + wxStringOutputStream sos; + + size_t len = text.length(); +#if wxUSE_UNICODE + const wxCharBuffer textMB(wxConvLibc.cWC2MB(text.wc_str(), len + 1, &len)); +#else + const char *textMB = text.c_str(); +#endif + + sos.Write(textMB, len); + + CPPUNIT_ASSERT_EQUAL( text, sos.GetString() ); +} + +void strStream::Output_Check() +{ + CheckString("Hello world!"); + CheckString(wxString("hi\0dden", 8)); +} // Register the stream sub suite, by using some stream helper macro. STREAM_TEST_SUBSUITE_NAMED_REGISTRATION(strStream)