]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/net/socket.cpp
remove MSVC solution files from svn
[wxWidgets.git] / tests / net / socket.cpp
index 80318efb0b146d2a70afb9224f8891d1e32a987d..5928915e410a556341833d6936a22e8e3b09f03c 100644 (file)
@@ -26,6 +26,8 @@
 #if wxUSE_SOCKETS
 
 #include "wx/socket.h"
+#include "wx/url.h"
+#include "wx/sstream.h"
 #include "wx/evtloop.h"
 #include <memory>
 
@@ -37,7 +39,7 @@ static wxString gs_serverHost(wxGetenv("WX_TEST_SERVER"));
 class SocketTestCase : public CppUnit::TestCase
 {
 public:
-    SocketTestCase() { m_useLoop = false; }
+    SocketTestCase() { }
 
 private:
     // we need to repeat the tests twice as the sockets behave differently when
@@ -48,7 +50,8 @@ private:
         CPPUNIT_TEST( ReadNormal ); \
         CPPUNIT_TEST( ReadBlock ); \
         CPPUNIT_TEST( ReadNowait ); \
-        CPPUNIT_TEST( ReadWaitall )
+        CPPUNIT_TEST( ReadWaitall ); \
+        CPPUNIT_TEST( UrlTest )
 
     CPPUNIT_TEST_SUITE( SocketTestCase );
         ALL_SOCKET_TESTS();
@@ -86,7 +89,7 @@ private:
     // disabled
     wxSocketClientPtr GetHTTPSocket(int flags = wxSOCKET_NONE) const;
 
-    void PseudoTest_SetUseEventLoop() { m_useLoop = true; }
+    void PseudoTest_SetUseEventLoop() { ms_useLoop = true; }
 
     void BlockingConnect();
     void NonblockingConnect();
@@ -95,11 +98,15 @@ private:
     void ReadNowait();
     void ReadWaitall();
 
-    bool m_useLoop;
+    void UrlTest();
+
+    static bool ms_useLoop;
 
     DECLARE_NO_COPY_CLASS(SocketTestCase)
 };
 
+bool SocketTestCase::ms_useLoop = false;
+
 CPPUNIT_TEST_SUITE_REGISTRATION( SocketTestCase );
 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( SocketTestCase, "SocketTestCase" );
 
@@ -151,7 +158,7 @@ void SocketTestCase::NonblockingConnect()
     if ( !addr.get() )
         return;
 
-    SocketTestEventLoop loop(m_useLoop);
+    SocketTestEventLoop loop(ms_useLoop);
 
     wxSocketClient sock;
     sock.Connect(*addr, false);
@@ -162,7 +169,7 @@ void SocketTestCase::NonblockingConnect()
 
 void SocketTestCase::ReadNormal()
 {
-    SocketTestEventLoop loop(m_useLoop);
+    SocketTestEventLoop loop(ms_useLoop);
 
     wxSocketClientPtr sock(GetHTTPSocket());
     if ( !sock.get() )
@@ -172,7 +179,7 @@ void SocketTestCase::ReadNormal()
     sock->Read(bufSmall, WXSIZEOF(bufSmall));
 
     CPPUNIT_ASSERT_EQUAL( wxSOCKET_NOERROR, sock->LastError() );
-    CPPUNIT_ASSERT_EQUAL( WXSIZEOF(bufSmall), sock->LastCount() );
+    CPPUNIT_ASSERT_EQUAL( WXSIZEOF(bufSmall), (size_t)sock->LastCount() );
 
 
     char bufBig[102400];
@@ -192,7 +199,7 @@ void SocketTestCase::ReadBlock()
     sock->Read(bufSmall, WXSIZEOF(bufSmall));
 
     CPPUNIT_ASSERT_EQUAL( wxSOCKET_NOERROR, sock->LastError() );
-    CPPUNIT_ASSERT_EQUAL( WXSIZEOF(bufSmall), sock->LastCount() );
+    CPPUNIT_ASSERT_EQUAL( WXSIZEOF(bufSmall), (size_t)sock->LastCount() );
 
 
     char bufBig[102400];
@@ -218,7 +225,7 @@ void SocketTestCase::ReadNowait()
 
 void SocketTestCase::ReadWaitall()
 {
-    SocketTestEventLoop loop(m_useLoop);
+    SocketTestEventLoop loop(ms_useLoop);
 
     wxSocketClientPtr sock(GetHTTPSocket(wxSOCKET_WAITALL));
     if ( !sock.get() )
@@ -228,7 +235,23 @@ void SocketTestCase::ReadWaitall()
     sock->Read(buf, WXSIZEOF(buf));
 
     CPPUNIT_ASSERT_EQUAL( wxSOCKET_NOERROR, sock->LastError() );
-    CPPUNIT_ASSERT_EQUAL( WXSIZEOF(buf), sock->LastCount() );
+    CPPUNIT_ASSERT_EQUAL( WXSIZEOF(buf), (size_t)sock->LastCount() );
+}
+
+void SocketTestCase::UrlTest()
+{
+    if ( gs_serverHost.empty() )
+        return;
+
+    SocketTestEventLoop loop(ms_useLoop);
+
+    wxURL url("http://" + gs_serverHost);
+
+    const std::auto_ptr<wxInputStream> in(url.GetInputStream());
+    CPPUNIT_ASSERT( in.get() );
+
+    wxStringOutputStream out;
+    CPPUNIT_ASSERT_EQUAL( wxSTREAM_EOF, in->Read(out).GetLastError() );
 }
 
 #endif // wxUSE_SOCKETS