X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c3a65218fb603686b0fa363f1f287a680d90a383..e1efca652844273c3e8d32c7e5f442b87e455ca7:/tests/uris/uris.cpp diff --git a/tests/uris/uris.cpp b/tests/uris/uris.cpp index f3d22a2098..ff892a2be7 100644 --- a/tests/uris/uris.cpp +++ b/tests/uris/uris.cpp @@ -27,11 +27,6 @@ // Test wxURL & wxURI compat? #define TEST_URL wxUSE_URL -// Define this as 1 to test network connections, this is disabled by default as -// some machines running automatic builds don't allow outgoing connections and -// so the tests fail -#define TEST_NETWORK 0 - // ---------------------------------------------------------------------------- // test class // ---------------------------------------------------------------------------- @@ -45,7 +40,9 @@ private: CPPUNIT_TEST_SUITE( URITestCase ); CPPUNIT_TEST( IPv4 ); CPPUNIT_TEST( IPv6 ); + CPPUNIT_TEST( Server ); CPPUNIT_TEST( Paths ); + CPPUNIT_TEST( UserAndPass ); CPPUNIT_TEST( NormalResolving ); CPPUNIT_TEST( ComplexResolving ); CPPUNIT_TEST( ReallyComplexResolving ); @@ -65,7 +62,9 @@ private: void IPv4(); void IPv6(); + void Server(); void Paths(); + void UserAndPass(); void NormalResolving(); void ComplexResolving(); void ReallyComplexResolving(); @@ -89,7 +88,7 @@ private: // register in the unnamed registry so that these tests are run by default CPPUNIT_TEST_SUITE_REGISTRATION( URITestCase ); -// 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( URITestCase, "URITestCase" ); URITestCase::URITestCase() @@ -103,9 +102,15 @@ URITestCase::URITestCase() #define URI_ASSERT_HOSTTYPE_EQUAL(uri, expected) \ URI_ASSERT_PART_EQUAL((uri), (expected), GetHostType()) +#define URI_ASSERT_SERVER_EQUAL(uri, expected) \ + URI_ASSERT_PART_EQUAL((uri), (expected), GetServer()) + #define URI_ASSERT_PATH_EQUAL(uri, expected) \ URI_ASSERT_PART_EQUAL((uri), (expected), GetPath()) +#define URI_ASSERT_USER_EQUAL(uri, expected) \ + URI_ASSERT_PART_EQUAL((uri), (expected), GetUser()) + void URITestCase::IPv4() { URI_ASSERT_HOSTTYPE_EQUAL("http://user:password@192.168.1.100:5050/path", @@ -157,6 +162,18 @@ void URITestCase::IPv6() ); } +void URITestCase::Server() +{ + URI_ASSERT_SERVER_EQUAL("http://foo/", "foo"); + URI_ASSERT_SERVER_EQUAL("http://foo-bar/", "foo-bar"); + URI_ASSERT_SERVER_EQUAL("http://foo/bar/", "foo"); + URI_ASSERT_SERVER_EQUAL("http://192.168.1.0/", "192.168.1.0"); + URI_ASSERT_SERVER_EQUAL("http://192.168.1.17/", "192.168.1.17"); + URI_ASSERT_SERVER_EQUAL("http://192.168.1.255/", "192.168.1.255"); + URI_ASSERT_SERVER_EQUAL("http://192.168.1.1/index.html", "192.168.1.1"); + URI_ASSERT_SERVER_EQUAL("http://[aa:aa:aa:aa::aa:aa]/foo", "aa:aa:aa:aa::aa:aa"); +} + void URITestCase::Paths() { URI_ASSERT_PATH_EQUAL("http://user:password@192.256.1.100:5050/../path", @@ -175,6 +192,13 @@ void URITestCase::Paths() "../joe", BuildURI()); } +void URITestCase::UserAndPass() +{ + URI_ASSERT_USER_EQUAL("http://user:pass@host/path/", "user"); + URI_ASSERT_USER_EQUAL("http://user@host/path/", "user"); + URI_ASSERT_USER_EQUAL("http://host/path/", ""); +} + #define URI_TEST_RESOLVE_IMPL(string, eq, strict) \ { \ wxURI uri(string); \ @@ -303,6 +327,7 @@ void URITestCase::Unescaping() CPPUNIT_ASSERT_EQUAL( unescaped, wxURI::Unescape(escaped) ); +#if wxUSE_UNICODE escaped = "http://ru.wikipedia.org/wiki/" "%D0%A6%D0%B5%D0%BB%D0%BE%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%BE"; @@ -314,6 +339,7 @@ void URITestCase::Unescaping() "\xD1\x87\xD0\xB8\xD1\x81\xD0\xBB\xD0\xBE" ), unescaped ); +#endif // wxUSE_UNICODE } void URITestCase::FileScheme() @@ -344,14 +370,7 @@ void URITestCase::URLCompat() { wxURL url("http://user:password@wxwidgets.org"); - CPPUNIT_ASSERT(url.GetError() == wxURL_NOERR); - -#if TEST_NETWORK - wxInputStream* pInput = url.GetInputStream(); - - CPPUNIT_ASSERT( pInput != NULL ); -#endif - + CPPUNIT_ASSERT( url.GetError() == wxURL_NOERR ); CPPUNIT_ASSERT( url == wxURL("http://user:password@wxwidgets.org") ); wxURI uri("http://user:password@wxwidgets.org"); @@ -392,7 +411,7 @@ void URITestCase::URLCompat() wxInputStream* is = urlProblem.GetInputStream(); CPPUNIT_ASSERT(is != NULL); - wxFile fOut(_T("test.html"), wxFile::write); + wxFile fOut(wxT("test.html"), wxFile::write); wxASSERT(fOut.IsOpened()); char buf[1001];