Home | History | Annotate | Download | only in base
      1 // Copyright 2009 Google Inc. All Rights Reserved.
      2 
      3 
      4 #include "talk/base/gunit.h"
      5 #include "talk/base/socket_unittest.h"
      6 #include "talk/base/thread.h"
      7 #include "talk/base/win32socketserver.h"
      8 
      9 namespace talk_base {
     10 
     11 // Test that Win32SocketServer::Wait works as expected.
     12 TEST(Win32SocketServerTest, TestWait) {
     13   Win32SocketServer server(NULL);
     14   uint32 start = Time();
     15   server.Wait(1000, true);
     16   EXPECT_GE(TimeSince(start), 1000);
     17 }
     18 
     19 // Test that Win32Socket::Pump does not touch general Windows messages.
     20 TEST(Win32SocketServerTest, TestPump) {
     21   Win32SocketServer server(NULL);
     22   SocketServerScope scope(&server);
     23   EXPECT_EQ(TRUE, PostMessage(NULL, WM_USER, 999, 0));
     24   server.Pump();
     25   MSG msg;
     26   EXPECT_EQ(TRUE, PeekMessage(&msg, NULL, WM_USER, 0, PM_REMOVE));
     27   EXPECT_EQ(WM_USER, msg.message);
     28   EXPECT_EQ(999, msg.wParam);
     29 }
     30 
     31 // Test that Win32Socket passes all the generic Socket tests.
     32 class Win32SocketTest : public SocketTest {
     33  protected:
     34   Win32SocketTest() : server_(NULL), scope_(&server_) {}
     35   Win32SocketServer server_;
     36   SocketServerScope scope_;
     37 };
     38 
     39 TEST_F(Win32SocketTest, TestConnectIPv4) {
     40   SocketTest::TestConnectIPv4();
     41 }
     42 
     43 TEST_F(Win32SocketTest, TestConnectIPv6) {
     44   SocketTest::TestConnectIPv6();
     45 }
     46 
     47 TEST_F(Win32SocketTest, TestConnectWithDnsLookupIPv4) {
     48   SocketTest::TestConnectWithDnsLookupIPv4();
     49 }
     50 
     51 TEST_F(Win32SocketTest, TestConnectWithDnsLookupIPv6) {
     52   SocketTest::TestConnectWithDnsLookupIPv6();
     53 }
     54 
     55 TEST_F(Win32SocketTest, TestConnectFailIPv4) {
     56   SocketTest::TestConnectFailIPv4();
     57 }
     58 
     59 TEST_F(Win32SocketTest, TestConnectFailIPv6) {
     60   SocketTest::TestConnectFailIPv6();
     61 }
     62 
     63 TEST_F(Win32SocketTest, TestConnectWithDnsLookupFailIPv4) {
     64   SocketTest::TestConnectWithDnsLookupFailIPv4();
     65 }
     66 
     67 TEST_F(Win32SocketTest, TestConnectWithDnsLookupFailIPv6) {
     68   SocketTest::TestConnectWithDnsLookupFailIPv6();
     69 }
     70 
     71 TEST_F(Win32SocketTest, TestConnectWithClosedSocketIPv4) {
     72   SocketTest::TestConnectWithClosedSocketIPv4();
     73 }
     74 
     75 TEST_F(Win32SocketTest, TestConnectWithClosedSocketIPv6) {
     76   SocketTest::TestConnectWithClosedSocketIPv6();
     77 }
     78 
     79 TEST_F(Win32SocketTest, TestConnectWhileNotClosedIPv4) {
     80   SocketTest::TestConnectWhileNotClosedIPv4();
     81 }
     82 
     83 TEST_F(Win32SocketTest, TestConnectWhileNotClosedIPv6) {
     84   SocketTest::TestConnectWhileNotClosedIPv6();
     85 }
     86 
     87 TEST_F(Win32SocketTest, TestServerCloseDuringConnectIPv4) {
     88   SocketTest::TestServerCloseDuringConnectIPv4();
     89 }
     90 
     91 TEST_F(Win32SocketTest, TestServerCloseDuringConnectIPv6) {
     92   SocketTest::TestServerCloseDuringConnectIPv6();
     93 }
     94 
     95 TEST_F(Win32SocketTest, TestClientCloseDuringConnectIPv4) {
     96   SocketTest::TestClientCloseDuringConnectIPv4();
     97 }
     98 
     99 TEST_F(Win32SocketTest, TestClientCloseDuringConnectIPv6) {
    100   SocketTest::TestClientCloseDuringConnectIPv6();
    101 }
    102 
    103 TEST_F(Win32SocketTest, TestServerCloseIPv4) {
    104   SocketTest::TestServerCloseIPv4();
    105 }
    106 
    107 TEST_F(Win32SocketTest, TestServerCloseIPv6) {
    108   SocketTest::TestServerCloseIPv6();
    109 }
    110 
    111 TEST_F(Win32SocketTest, TestCloseInClosedCallbackIPv4) {
    112   SocketTest::TestCloseInClosedCallbackIPv4();
    113 }
    114 
    115 TEST_F(Win32SocketTest, TestCloseInClosedCallbackIPv6) {
    116   SocketTest::TestCloseInClosedCallbackIPv6();
    117 }
    118 
    119 TEST_F(Win32SocketTest, TestSocketServerWaitIPv4) {
    120   SocketTest::TestSocketServerWaitIPv4();
    121 }
    122 
    123 TEST_F(Win32SocketTest, TestSocketServerWaitIPv6) {
    124   SocketTest::TestSocketServerWaitIPv6();
    125 }
    126 
    127 TEST_F(Win32SocketTest, TestTcpIPv4) {
    128   SocketTest::TestTcpIPv4();
    129 }
    130 
    131 TEST_F(Win32SocketTest, TestTcpIPv6) {
    132   SocketTest::TestTcpIPv6();
    133 }
    134 
    135 TEST_F(Win32SocketTest, TestUdpIPv4) {
    136   SocketTest::TestUdpIPv4();
    137 }
    138 
    139 TEST_F(Win32SocketTest, TestUdpIPv6) {
    140   SocketTest::TestUdpIPv6();
    141 }
    142 
    143 TEST_F(Win32SocketTest, TestGetSetOptionsIPv4) {
    144   SocketTest::TestGetSetOptionsIPv4();
    145 }
    146 
    147 TEST_F(Win32SocketTest, TestGetSetOptionsIPv6) {
    148   SocketTest::TestGetSetOptionsIPv6();
    149 }
    150 
    151 }  // namespace talk_base
    152