| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: tests/uris/url.cpp
- // Purpose: wxURL unit test
- // Author: Francesco Montorsi
- // Created: 2009-5-31
- // Copyright: (c) 2009 Francesco Montorsi
- ///////////////////////////////////////////////////////////////////////////////
- // ----------------------------------------------------------------------------
- // headers
- // ----------------------------------------------------------------------------
- #include "testprec.h"
- #ifdef __BORLANDC__
- #pragma hdrstop
- #endif
- #ifndef WX_PRECOMP
- #include "wx/wx.h"
- #endif // WX_PRECOMP
- #include "wx/url.h"
- #include "wx/mstream.h"
- // ----------------------------------------------------------------------------
- // test class
- // ----------------------------------------------------------------------------
- class URLTestCase : public CppUnit::TestCase
- {
- public:
- URLTestCase();
- ~URLTestCase();
- private:
- CPPUNIT_TEST_SUITE( URLTestCase );
- CPPUNIT_TEST( GetInputStream );
- CPPUNIT_TEST( CopyAndAssignment );
- CPPUNIT_TEST_SUITE_END();
- void GetInputStream();
- void CopyAndAssignment();
- DECLARE_NO_COPY_CLASS(URLTestCase)
- };
- // register in the unnamed registry so that these tests are run by default
- CPPUNIT_TEST_SUITE_REGISTRATION( URLTestCase );
- // also include in its own registry so that these tests can be run alone
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( URLTestCase, "URLTestCase" );
- URLTestCase::URLTestCase()
- {
- wxSocketBase::Initialize();
- }
- URLTestCase::~URLTestCase()
- {
- wxSocketBase::Shutdown();
- }
- void URLTestCase::GetInputStream()
- {
- if (!IsNetworkAvailable()) // implemented in test.cpp
- {
- wxLogWarning("No network connectivity; skipping the URLTestCase::GetInputStream test unit.");
- return;
- }
- wxURL url("http://www.wxwidgets.org/assets/img/header-logo.png");
- CPPUNIT_ASSERT_EQUAL(wxURL_NOERR, url.GetError());
- wxInputStream *in_stream = url.GetInputStream();
- CPPUNIT_ASSERT(in_stream && in_stream->IsOk());
- wxMemoryOutputStream ostream;
- CPPUNIT_ASSERT(in_stream->Read(ostream).GetLastError() == wxSTREAM_EOF);
- CPPUNIT_ASSERT_EQUAL(13677, ostream.GetSize());
- // we have to delete the object created by GetInputStream()
- delete in_stream;
- }
- void URLTestCase::CopyAndAssignment()
- {
- wxURL url1("http://www.example.org/");
- wxURL url2;
- wxURI *puri = &url2; // downcast
- { // Copy constructor
- wxURL url3(url1);
- CPPUNIT_ASSERT(url1 == url3);
- }
- { // Constructor for string
- wxURL url3(url1.GetURL());
- CPPUNIT_ASSERT(url1 == url3);
- }
- { // 'Copy' constructor for uri
- wxURL url3(*puri);
- CPPUNIT_ASSERT(url2 == url3);
- }
- // assignment for uri
- *puri = url1;
- CPPUNIT_ASSERT(url1 == url2);
- // assignment to self through base pointer
- *puri = url2;
- // Assignment of string
- url1 = wxS("http://www.example2.org/index.html");
- *puri = wxS("http://www.example2.org/index.html");
- CPPUNIT_ASSERT(url1 == url2);
- // Assignment
- url1 = wxS("");
- url2 = url1;
- CPPUNIT_ASSERT(url1 == url2);
- // assignment to self
- url2 = url2;
- // check for destructor (with base pointer!)
- puri = new wxURL();
- delete puri;
- }
|