+///////////////////////////////////////////////////////////////////////////////
+// Name: tests/uris/uris.cpp
+// Purpose: wxTextXXXStream unit test
+// Author: Ryan Norton
+// Created: 2004-08-14
+// RCS-ID: $Id$
+// Copyright: (c) 2004 Ryan Norton
+///////////////////////////////////////////////////////////////////////////////
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/wx.h"
+#endif // WX_PRECOMP
+
+#include "wx/txtstrm.h"
+#include "wx/wfstream.h"
+
+#include "wx/cppunit.h"
+
+// ----------------------------------------------------------------------------
+// test class
+// ----------------------------------------------------------------------------
+
+class TextStreamTestCase : public CppUnit::TestCase
+{
+public:
+ TextStreamTestCase();
+
+private:
+ CPPUNIT_TEST_SUITE( TextStreamTestCase );
+ CPPUNIT_TEST( Endline );
+ CPPUNIT_TEST_SUITE_END();
+
+ void Endline();
+
+
+ DECLARE_NO_COPY_CLASS(TextStreamTestCase)
+};
+
+// register in the unnamed registry so that these tests are run by default
+CPPUNIT_TEST_SUITE_REGISTRATION( TextStreamTestCase );
+
+// also include in it's own registry so that these tests can be run alone
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TextStreamTestCase, "TextStreamTestCase" );
+
+TextStreamTestCase::TextStreamTestCase()
+{
+}
+
+#if defined(__WXMSW__) || defined(__WXPM__)
+# define NEWLINE "\r\n"
+# define NEWLINELEN 2
+#elif defined(__WXMAC__) && !defined(__DARWIN__)
+# define NEWLINE "\r"
+# define NEWLINELEN 1
+#else
+# define NEWLINE "\n"
+# define NEWLINELEN 1
+#endif
+
+void TextStreamTestCase::Endline()
+{
+ wxFileOutputStream* pOutFile = new wxFileOutputStream(_T("test.txt"));
+ wxTextOutputStream* pOutText = new wxTextOutputStream(*pOutFile);
+ *pOutText << _T("Test text") << endl
+ << _T("More Testing Text (There should be newline before this)");
+
+ delete pOutText;
+ delete pOutFile;
+
+ wxFileInputStream* pInFile = new wxFileInputStream(_T("test.txt"));
+
+ char szIn[9 + NEWLINELEN];
+
+ pInFile->Read(szIn, 9 + NEWLINELEN);
+
+ CPPUNIT_ASSERT( memcmp(&szIn[9], NEWLINE, NEWLINELEN) == 0 );
+
+ delete pInFile;
+}