X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dd65d8c83003ebbf9ab3275957fefa8cd7c87cc3..8c249a59944ffc03e15369ba58fc7d73b3506668:/tests/uris/uris.cpp?ds=sidebyside diff --git a/tests/uris/uris.cpp b/tests/uris/uris.cpp index 69a9128d9c..959c3e2928 100644 --- a/tests/uris/uris.cpp +++ b/tests/uris/uris.cpp @@ -11,7 +11,7 @@ // headers // ---------------------------------------------------------------------------- -#include "wx/wxprec.h" +#include "testprec.h" #ifdef __BORLANDC__ #pragma hdrstop @@ -22,8 +22,10 @@ #endif // WX_PRECOMP #include "wx/uri.h" +#include "wx/url.h" -#include "wx/cppunit.h" +// Test wxURL & wxURI compat? +#define TEST_URL ( 1 && wxUSE_URL ) // ---------------------------------------------------------------------------- // test class @@ -46,6 +48,12 @@ private: CPPUNIT_TEST( BackwardsResolving ); CPPUNIT_TEST( Assignment ); CPPUNIT_TEST( Comparison ); +#if TEST_URL + CPPUNIT_TEST( URLCompat ); +#if wxUSE_PROTOCOL_HTTP + CPPUNIT_TEST( URLProxy ); +#endif +#endif CPPUNIT_TEST_SUITE_END(); void IPv4(); @@ -59,6 +67,11 @@ private: void Assignment(); void Comparison(); +#if TEST_URL + void URLCompat(); + void URLProxy(); +#endif + DECLARE_NO_COPY_CLASS(URITestCase) }; @@ -92,7 +105,7 @@ void URITestCase::IPv4() wxURI* uri; - URI_TEST("http://user:password@192.168.1.100:5050/path", + URI_TEST("http://user:password@192.168.1.100:5050/path", uri->GetHostType() == wxURI_IPV4ADDRESS); URI_TEST("http://user:password@192.255.1.100:5050/path", @@ -117,17 +130,17 @@ void URITestCase::IPv6() // / [ *5( h16 ":" ) h16 ] "::" h16 // / [ *6( h16 ":" ) h16 ] "::" // ls32 = ( h16 ":" h16 ) / IPv4address - - URI_TEST("http://user:password@[aa:aa:aa:aa:aa:aa:192.168.1.100]:5050/path", + + URI_TEST("http://user:password@[aa:aa:aa:aa:aa:aa:192.168.1.100]:5050/path", uri->GetHostType() == wxURI_IPV6ADDRESS); - URI_TEST("http://user:password@[aa:aa:aa:aa:aa:aa:aa:aa]:5050/path", + URI_TEST("http://user:password@[aa:aa:aa:aa:aa:aa:aa:aa]:5050/path", uri->GetHostType() == wxURI_IPV6ADDRESS); - URI_TEST("http://user:password@[aa:aa:aa:aa::192.168.1.100]:5050/path", + URI_TEST("http://user:password@[aa:aa:aa:aa::192.168.1.100]:5050/path", uri->GetHostType() == wxURI_IPV6ADDRESS); - URI_TEST("http://user:password@[aa:aa:aa:aa::aa:aa]:5050/path", + URI_TEST("http://user:password@[aa:aa:aa:aa::aa:aa]:5050/path", uri->GetHostType() == wxURI_IPV6ADDRESS); } @@ -136,27 +149,27 @@ void URITestCase::Paths() wxURI* uri; //path tests - URI_TEST("http://user:password@192.256.1.100:5050/../path", + URI_TEST("http://user:password@192.256.1.100:5050/../path", uri->GetPath() == wxT("/path")); - URI_TEST("http://user:password@192.256.1.100:5050/path/../", + URI_TEST("http://user:password@192.256.1.100:5050/path/../", uri->GetPath() == wxT("/")); - URI_TEST("http://user:password@192.256.1.100:5050/path/.", + URI_TEST("http://user:password@192.256.1.100:5050/path/.", uri->GetPath() == wxT("/path/")); - URI_TEST("http://user:password@192.256.1.100:5050/path/./", + URI_TEST("http://user:password@192.256.1.100:5050/path/./", uri->GetPath() == wxT("/path/")); - - URI_TEST("path/john/../../../joe", - uri->Get() == wxT("../joe")); + + URI_TEST("path/john/../../../joe", + uri->BuildURI() == wxT("../joe")); } #undef URI_TEST #define URI_TEST_RESOLVE(string, eq, strict) \ uri = new wxURI(wxT(string));\ uri->Resolve(masteruri, strict);\ - CPPUNIT_ASSERT(uri->Get() == wxT(eq));\ + CPPUNIT_ASSERT(uri->BuildURI() == wxT(eq));\ delete uri; #define URI_TEST(string, eq) \ @@ -169,31 +182,31 @@ void URITestCase::NormalResolving() { wxURI masteruri(wxT("http://a/b/c/d;p?q")); wxURI* uri; - + URI_TEST("g:h" ,"g:h") - URI_TEST("g" ,"http://a/b/c/g") - URI_TEST("./g" ,"http://a/b/c/g") - URI_TEST("g/" ,"http://a/b/c/g/") - URI_TEST("/g" ,"http://a/g") - URI_TEST("//g" ,"http://g") - URI_TEST("?y" ,"http://a/b/c/d;p?y") + URI_TEST("g" ,"http://a/b/c/g") + URI_TEST("./g" ,"http://a/b/c/g") + URI_TEST("g/" ,"http://a/b/c/g/") + URI_TEST("/g" ,"http://a/g") + URI_TEST("//g" ,"http://g") + URI_TEST("?y" ,"http://a/b/c/d;p?y") URI_TEST("g?y" ,"http://a/b/c/g?y") - URI_TEST("#s" ,"http://a/b/c/d;p?q#s") - URI_TEST("g#s" ,"http://a/b/c/g#s") - URI_TEST("g?y#s","http://a/b/c/g?y#s") - URI_TEST(";x" ,"http://a/b/c/;x") - URI_TEST("g;x" ,"http://a/b/c/g;x") - URI_TEST("g;x?y#s","http://a/b/c/g;x?y#s") - - URI_TEST("" ,"http://a/b/c/d;p?q") - URI_TEST("." ,"http://a/b/c/") - URI_TEST("./" ,"http://a/b/c/") - URI_TEST(".." ,"http://a/b/") - URI_TEST("../" ,"http://a/b/") - URI_TEST("../g" ,"http://a/b/g") - URI_TEST("../..","http://a/") - URI_TEST("../../" , "http://a/") - URI_TEST("../../g" , "http://a/g") + URI_TEST("#s" ,"http://a/b/c/d;p?q#s") + URI_TEST("g#s" ,"http://a/b/c/g#s") + URI_TEST("g?y#s","http://a/b/c/g?y#s") + URI_TEST(";x" ,"http://a/b/c/;x") + URI_TEST("g;x" ,"http://a/b/c/g;x") + URI_TEST("g;x?y#s","http://a/b/c/g;x?y#s") + + URI_TEST("" ,"http://a/b/c/d;p?q") + URI_TEST("." ,"http://a/b/c/") + URI_TEST("./" ,"http://a/b/c/") + URI_TEST(".." ,"http://a/b/") + URI_TEST("../" ,"http://a/b/") + URI_TEST("../g" ,"http://a/b/g") + URI_TEST("../..","http://a/") + URI_TEST("../../" , "http://a/") + URI_TEST("../../g" , "http://a/g") } void URITestCase::ComplexResolving() @@ -202,12 +215,12 @@ void URITestCase::ComplexResolving() wxURI* uri; //odd path examples - URI_TEST("/./g" ,"http://a/g") - URI_TEST("/../g" ,"http://a/g") - URI_TEST("g." ,"http://a/b/c/g.") - URI_TEST(".g" ,"http://a/b/c/.g") - URI_TEST("g.." ,"http://a/b/c/g..") - URI_TEST("..g" ,"http://a/b/c/..g") + URI_TEST("/./g" ,"http://a/g") + URI_TEST("/../g" ,"http://a/g") + URI_TEST("g." ,"http://a/b/c/g.") + URI_TEST(".g" ,"http://a/b/c/.g") + URI_TEST("g.." ,"http://a/b/c/g..") + URI_TEST("..g" ,"http://a/b/c/..g") } //Should Fail //"../../../g" = "http://a/g" @@ -219,12 +232,12 @@ void URITestCase::ReallyComplexResolving() wxURI* uri; //even more odder path examples - URI_TEST("./../g" ,"http://a/b/g") - URI_TEST("./g/." ,"http://a/b/c/g/") - URI_TEST("g/./h" ,"http://a/b/c/g/h") - URI_TEST("g/../h" ,"http://a/b/c/h") - URI_TEST("g;x=1/./y" , "http://a/b/c/g;x=1/y") - URI_TEST("g;x=1/../y" , "http://a/b/c/y") + URI_TEST("./../g" ,"http://a/b/g") + URI_TEST("./g/." ,"http://a/b/c/g/") + URI_TEST("g/./h" ,"http://a/b/c/g/h") + URI_TEST("g/../h" ,"http://a/b/c/h") + URI_TEST("g;x=1/./y" , "http://a/b/c/g;x=1/y") + URI_TEST("g;x=1/../y" , "http://a/b/c/y") } void URITestCase::QueryFragmentResolving() @@ -232,11 +245,11 @@ void URITestCase::QueryFragmentResolving() wxURI masteruri(wxT("http://a/b/c/d;p?q")); wxURI* uri; - //query/fragment ambigiousness - URI_TEST("g?y/./x","http://a/b/c/g?y/./x") - URI_TEST("g?y/../x" , "http://a/b/c/g?y/../x") - URI_TEST("g#s/./x","http://a/b/c/g#s/./x") - URI_TEST("g#s/../x" , "http://a/b/c/g#s/../x") + //query/fragment ambigiousness + URI_TEST("g?y/./x","http://a/b/c/g?y/./x") + URI_TEST("g?y/../x" , "http://a/b/c/g?y/../x") + URI_TEST("g#s/./x","http://a/b/c/g#s/./x") + URI_TEST("g#s/../x" , "http://a/b/c/g#s/../x") } void URITestCase::BackwardsResolving() @@ -244,10 +257,10 @@ void URITestCase::BackwardsResolving() wxURI masteruri(wxT("http://a/b/c/d;p?q")); wxURI* uri; - //"NEW" - URI_TEST("http:g" , "http:g") //strict - //bw compat - URI_TEST_RESOLVE("http:g", "http://a/b/c/g", false); + //"NEW" + URI_TEST("http:g" , "http:g") //strict + //bw compat + URI_TEST_RESOLVE("http:g", "http://a/b/c/g", false); } void URITestCase::Assignment() @@ -257,10 +270,62 @@ void URITestCase::Assignment() uri2 = uri1; - CPPUNIT_ASSERT(uri1.Get() == uri2.Get()); + CPPUNIT_ASSERT(uri1.BuildURI() == uri2.BuildURI()); } void URITestCase::Comparison() { CPPUNIT_ASSERT(wxURI(wxT("http://mysite.com")) == wxURI(wxT("http://mysite.com"))); } + +#if TEST_URL + +#include "wx/url.h" + +void URITestCase::URLCompat() +{ + wxURL url(wxT("http://user:password@wxwidgets.org")); + + CPPUNIT_ASSERT(url.GetError() == wxURL_NOERR); + + wxInputStream* pInput = url.GetInputStream(); + + CPPUNIT_ASSERT( pInput != NULL ); + + CPPUNIT_ASSERT( url == wxURL(wxT("http://user:password@wxwidgets.org")) ); + + wxURI uri(wxT("http://user:password@wxwidgets.org")); + + CPPUNIT_ASSERT( url == uri ); + + wxURL urlcopy(uri); + + CPPUNIT_ASSERT( urlcopy == url ); + CPPUNIT_ASSERT( urlcopy == uri ); + + wxURI uricopy(url); + + CPPUNIT_ASSERT( uricopy == url ); + CPPUNIT_ASSERT( uricopy == urlcopy ); + CPPUNIT_ASSERT( uricopy == uri ); +#if WXWIN_COMPATIBILITY_2_4 + CPPUNIT_ASSERT( wxURL::ConvertFromURI(wxT("%20%41%20")) == wxT(" A ") ); +#endif + CPPUNIT_ASSERT( wxURI::Unescape(wxT("%20%41%20")) == wxT(" A ") ); + + wxURI test(wxT("file:\"myf\"ile.txt")); + + CPPUNIT_ASSERT( test.BuildURI() == wxT("file:%22myf%22ile.txt") ); + CPPUNIT_ASSERT( test.GetScheme() == wxT("file") ); + CPPUNIT_ASSERT( test.GetPath() == wxT("%22myf%22ile.txt") ); +} + +#if wxUSE_PROTOCOL_HTTP +void URITestCase::URLProxy() +{ + wxURL url(wxT("http://www.asite.com/index.html")); + url.SetProxy(wxT("pserv:3122")); +} +#endif // wxUSE_PROTOCOL_HTTP +#endif +