| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 /* |  | 
| 2  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |  | 
| 3  * |  | 
| 4  *  Use of this source code is governed by a BSD-style license |  | 
| 5  *  that can be found in the LICENSE file in the root of the source |  | 
| 6  *  tree. An additional intellectual property rights grant can be found |  | 
| 7  *  in the file PATENTS.  All contributing project authors may |  | 
| 8  *  be found in the AUTHORS file in the root of the source tree. |  | 
| 9  */ |  | 
| 10 |  | 
| 11 // Tests for the UdpSocketWrapper interface. |  | 
| 12 // This will test the UdpSocket implementations on various platforms. |  | 
| 13 // Note that this test is using a real SocketManager, which starts up |  | 
| 14 // an extra worker thread, making the testing more complex than it |  | 
| 15 // should be. |  | 
| 16 // This is because on Posix, the CloseBlocking function waits for the |  | 
| 17 // ReadyForDeletion function to be called, which has to be called after |  | 
| 18 // CloseBlocking, and thus has to be called from another thread. |  | 
| 19 // The manager is the one actually doing the deleting. |  | 
| 20 // This is done differently in the Winsock2 code, but that code |  | 
| 21 // will also hang if the destructor is called directly. |  | 
| 22 |  | 
| 23 #include "testing/gmock/include/gmock/gmock.h" |  | 
| 24 #include "testing/gtest/include/gtest/gtest.h" |  | 
| 25 #include "webrtc/test/channel_transport/udp_socket_manager_wrapper.h" |  | 
| 26 #include "webrtc/test/channel_transport/udp_socket_wrapper.h" |  | 
| 27 |  | 
| 28 using ::testing::_; |  | 
| 29 using ::testing::Return; |  | 
| 30 |  | 
| 31 namespace webrtc { |  | 
| 32 namespace test { |  | 
| 33 |  | 
| 34 class MockSocketManager : public UdpSocketManager { |  | 
| 35  public: |  | 
| 36   MockSocketManager() {} |  | 
| 37   // Access to protected destructor. |  | 
| 38   void Destroy() { |  | 
| 39     delete this; |  | 
| 40   } |  | 
| 41   MOCK_METHOD2(Init, bool(int32_t, uint8_t&)); |  | 
| 42   MOCK_METHOD0(Start, bool()); |  | 
| 43   MOCK_METHOD0(Stop, bool()); |  | 
| 44   MOCK_METHOD1(AddSocket, bool(UdpSocketWrapper*)); |  | 
| 45   MOCK_METHOD1(RemoveSocket, bool(UdpSocketWrapper*)); |  | 
| 46 }; |  | 
| 47 |  | 
| 48 // Creates a socket using the static constructor method and verifies that |  | 
| 49 // it's added to the socket manager. |  | 
| 50 TEST(UdpSocketWrapper, CreateSocket) { |  | 
| 51   int32_t id = 42; |  | 
| 52   // We can't test deletion of sockets without a socket manager. |  | 
| 53   uint8_t threads = 1; |  | 
| 54   UdpSocketManager* mgr = UdpSocketManager::Create(id, threads); |  | 
| 55   UdpSocketWrapper* socket = |  | 
| 56       UdpSocketWrapper::CreateSocket(id, |  | 
| 57                                      mgr, |  | 
| 58                                      NULL,  // CallbackObj |  | 
| 59                                      NULL,  // IncomingSocketCallback |  | 
| 60                                      false,  // ipV6Enable |  | 
| 61                                      false);  // disableGQOS |  | 
| 62   socket->CloseBlocking(); |  | 
| 63   UdpSocketManager::Return(); |  | 
| 64 } |  | 
| 65 |  | 
| 66 }  // namespace test |  | 
| 67 }  // namespace webrtc |  | 
| OLD | NEW | 
|---|