]>
git.saurik.com Git - wxWidgets.git/blob - tests/streams/sstream.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: tests/streams/sstream.cpp
3 // Purpose: Test wxStringInputStream/wxStringOutputStream
4 // Author: Vadim Zeitlin
5 // Copyright: (c) 2004 Vadim Zeitlin
6 // Licence: wxWindows licence
7 ///////////////////////////////////////////////////////////////////////////////
9 // For compilers that support precompilation, includes "wx/wx.h".
17 // for all others, include the necessary headers
21 #include "wx/sstream.h"
25 ///////////////////////////////////////////////////////////////////////////////
28 // Try to fully test wxStringInputStream and wxStringOutputStream
31 public BaseStreamTestCase
<wxStringInputStream
, wxStringOutputStream
>
37 CPPUNIT_TEST_SUITE(strStream
);
38 // Base class stream tests the strStream supports.
39 CPPUNIT_TEST(Input_GetSize
);
40 CPPUNIT_TEST(Input_GetC
);
41 CPPUNIT_TEST(Input_Read
);
42 CPPUNIT_TEST(Input_Eof
);
43 CPPUNIT_TEST(Input_LastRead
);
44 CPPUNIT_TEST(Input_CanRead
);
45 CPPUNIT_TEST(Input_SeekI
);
46 CPPUNIT_TEST(Input_TellI
);
47 CPPUNIT_TEST(Input_Peek
);
48 CPPUNIT_TEST(Input_Ungetch
);
50 CPPUNIT_TEST(Output_PutC
);
51 CPPUNIT_TEST(Output_Write
);
52 CPPUNIT_TEST(Output_LastWrite
);
53 // seeking currently not supported by output string stream
54 //CPPUNIT_TEST(Output_SeekO);
55 //CPPUNIT_TEST(Output_TellO);
57 // Other test specific for String stream test case.
58 CPPUNIT_TEST(Output_Check
);
59 CPPUNIT_TEST_SUITE_END();
65 // Implement base class functions.
66 virtual wxStringInputStream
*DoCreateInStream();
67 virtual wxStringOutputStream
*DoCreateOutStream();
69 // output the given string to wxStringOutputStream and check that its
70 // contents is exactly the same string
71 void CheckString(const wxString
& text
);
76 strStream::strStream()
78 static const size_t LEN
= 256;
80 for ( size_t n
= 0; n
< LEN
; n
++ )
82 m_str
+= wxChar(wxT('A') + n
% (wxT('Z') - wxT('A') + 1));
86 strStream::~strStream()
90 wxStringInputStream
*strStream::DoCreateInStream()
92 wxStringInputStream
*pStrInStream
= new wxStringInputStream(m_str
);
93 CPPUNIT_ASSERT(pStrInStream
->IsOk());
97 wxStringOutputStream
*strStream::DoCreateOutStream()
99 wxStringOutputStream
*pStrOutStream
= new wxStringOutputStream();
100 CPPUNIT_ASSERT(pStrOutStream
->IsOk());
101 return pStrOutStream
;
104 void strStream::CheckString(const wxString
& text
)
106 wxStringOutputStream sos
;
108 const wxCharBuffer
buf(text
.To8BitData());
109 sos
.Write(buf
, buf
.length());
111 CPPUNIT_ASSERT_EQUAL( text
, sos
.GetString() );
114 void strStream::Output_Check()
116 CheckString("Hello world!");
117 CheckString(wxString("hi\0dden", 8));
120 // Register the stream sub suite, by using some stream helper macro.
121 STREAM_TEST_SUBSUITE_NAMED_REGISTRATION(strStream
)