| // Copyright 2009 Google Inc. All Rights Reserved. | 
 |  | 
 |  | 
 | #include "talk/base/gunit.h" | 
 | #include "talk/base/socket_unittest.h" | 
 | #include "talk/base/thread.h" | 
 | #include "talk/base/win32socketserver.h" | 
 |  | 
 | namespace talk_base { | 
 |  | 
 | // Test that Win32SocketServer::Wait works as expected. | 
 | TEST(Win32SocketServerTest, TestWait) { | 
 |   Win32SocketServer server(NULL); | 
 |   uint32 start = Time(); | 
 |   server.Wait(1000, true); | 
 |   EXPECT_GE(TimeSince(start), 1000); | 
 | } | 
 |  | 
 | // Test that Win32Socket::Pump does not touch general Windows messages. | 
 | TEST(Win32SocketServerTest, TestPump) { | 
 |   Win32SocketServer server(NULL); | 
 |   SocketServerScope scope(&server); | 
 |   EXPECT_EQ(TRUE, PostMessage(NULL, WM_USER, 999, 0)); | 
 |   server.Pump(); | 
 |   MSG msg; | 
 |   EXPECT_EQ(TRUE, PeekMessage(&msg, NULL, WM_USER, 0, PM_REMOVE)); | 
 |   EXPECT_EQ(WM_USER, msg.message); | 
 |   EXPECT_EQ(999, msg.wParam); | 
 | } | 
 |  | 
 | // Test that Win32Socket passes all the generic Socket tests. | 
 | class Win32SocketTest : public SocketTest { | 
 |  protected: | 
 |   Win32SocketTest() : server_(NULL), scope_(&server_) {} | 
 |   Win32SocketServer server_; | 
 |   SocketServerScope scope_; | 
 | }; | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectIPv4) { | 
 |   SocketTest::TestConnectIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectIPv6) { | 
 |   SocketTest::TestConnectIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectWithDnsLookupIPv4) { | 
 |   SocketTest::TestConnectWithDnsLookupIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectWithDnsLookupIPv6) { | 
 |   SocketTest::TestConnectWithDnsLookupIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectFailIPv4) { | 
 |   SocketTest::TestConnectFailIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectFailIPv6) { | 
 |   SocketTest::TestConnectFailIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectWithDnsLookupFailIPv4) { | 
 |   SocketTest::TestConnectWithDnsLookupFailIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectWithDnsLookupFailIPv6) { | 
 |   SocketTest::TestConnectWithDnsLookupFailIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectWithClosedSocketIPv4) { | 
 |   SocketTest::TestConnectWithClosedSocketIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectWithClosedSocketIPv6) { | 
 |   SocketTest::TestConnectWithClosedSocketIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectWhileNotClosedIPv4) { | 
 |   SocketTest::TestConnectWhileNotClosedIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestConnectWhileNotClosedIPv6) { | 
 |   SocketTest::TestConnectWhileNotClosedIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestServerCloseDuringConnectIPv4) { | 
 |   SocketTest::TestServerCloseDuringConnectIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestServerCloseDuringConnectIPv6) { | 
 |   SocketTest::TestServerCloseDuringConnectIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestClientCloseDuringConnectIPv4) { | 
 |   SocketTest::TestClientCloseDuringConnectIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestClientCloseDuringConnectIPv6) { | 
 |   SocketTest::TestClientCloseDuringConnectIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestServerCloseIPv4) { | 
 |   SocketTest::TestServerCloseIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestServerCloseIPv6) { | 
 |   SocketTest::TestServerCloseIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestCloseInClosedCallbackIPv4) { | 
 |   SocketTest::TestCloseInClosedCallbackIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestCloseInClosedCallbackIPv6) { | 
 |   SocketTest::TestCloseInClosedCallbackIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestSocketServerWaitIPv4) { | 
 |   SocketTest::TestSocketServerWaitIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestSocketServerWaitIPv6) { | 
 |   SocketTest::TestSocketServerWaitIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestTcpIPv4) { | 
 |   SocketTest::TestTcpIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestTcpIPv6) { | 
 |   SocketTest::TestTcpIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestUdpIPv4) { | 
 |   SocketTest::TestUdpIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestUdpIPv6) { | 
 |   SocketTest::TestUdpIPv6(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestGetSetOptionsIPv4) { | 
 |   SocketTest::TestGetSetOptionsIPv4(); | 
 | } | 
 |  | 
 | TEST_F(Win32SocketTest, TestGetSetOptionsIPv6) { | 
 |   SocketTest::TestGetSetOptionsIPv6(); | 
 | } | 
 |  | 
 | }  // namespace talk_base |