X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1f51673bb890f637a1979df92ff939935a1dd460..d9307d006e88025e28457290c9997f7c0f7c4fdc:/tests/uris/url.cpp diff --git a/tests/uris/url.cpp b/tests/uris/url.cpp index 8cf9d0961c..533e88377d 100644 --- a/tests/uris/url.cpp +++ b/tests/uris/url.cpp @@ -37,9 +37,11 @@ public: private: CPPUNIT_TEST_SUITE( URLTestCase ); CPPUNIT_TEST( GetInputStream ); + CPPUNIT_TEST( CopyAndAssignment ); CPPUNIT_TEST_SUITE_END(); void GetInputStream(); + void CopyAndAssignment(); DECLARE_NO_COPY_CLASS(URLTestCase) }; @@ -47,7 +49,7 @@ private: // register in the unnamed registry so that these tests are run by default CPPUNIT_TEST_SUITE_REGISTRATION( URLTestCase ); -// also include in it's own registry so that these tests can be run alone +// also include in its own registry so that these tests can be run alone CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( URLTestCase, "URLTestCase" ); @@ -68,7 +70,7 @@ void URLTestCase::GetInputStream() wxLogWarning("No network connectivity; skipping the URLTestCase::GetInputStream test unit."); return; } - + wxURL url("http://wxwidgets.org/logo9.jpg"); CPPUNIT_ASSERT_EQUAL(wxURL_NOERR, url.GetError()); @@ -77,8 +79,54 @@ void URLTestCase::GetInputStream() wxMemoryOutputStream ostream; CPPUNIT_ASSERT(in_stream->Read(ostream).GetLastError() == wxSTREAM_EOF); - + // wx logo image currently is 13219 bytes CPPUNIT_ASSERT(ostream.GetSize() == 13219); + + // 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; +}