xref: /aosp_15_r20/external/webrtc/p2p/base/turn_server_unittest.cc (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1 /*
2  *  Copyright 2016 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 #include "p2p/base/turn_server.h"
12 
13 #include "p2p/base/basic_packet_socket_factory.h"
14 #include "rtc_base/virtual_socket_server.h"
15 #include "test/gtest.h"
16 
17 // NOTE: This is a work in progress. Currently this file only has tests for
18 // TurnServerConnection, a primitive class used by TurnServer.
19 
20 namespace cricket {
21 
22 class TurnServerConnectionTest : public ::testing::Test {
23  public:
TurnServerConnectionTest()24   TurnServerConnectionTest() : thread_(&vss_), socket_factory_(&vss_) {}
25 
ExpectEqual(const TurnServerConnection & a,const TurnServerConnection & b)26   void ExpectEqual(const TurnServerConnection& a,
27                    const TurnServerConnection& b) {
28     EXPECT_TRUE(a == b);
29     EXPECT_FALSE(a < b);
30     EXPECT_FALSE(b < a);
31   }
32 
ExpectNotEqual(const TurnServerConnection & a,const TurnServerConnection & b)33   void ExpectNotEqual(const TurnServerConnection& a,
34                       const TurnServerConnection& b) {
35     EXPECT_FALSE(a == b);
36     // We don't care which is less than the other, as long as only one is less
37     // than the other.
38     EXPECT_TRUE((a < b) != (b < a));
39   }
40 
41  protected:
42   rtc::VirtualSocketServer vss_;
43   rtc::AutoSocketServerThread thread_;
44   rtc::BasicPacketSocketFactory socket_factory_;
45 };
46 
TEST_F(TurnServerConnectionTest,ComparisonOperators)47 TEST_F(TurnServerConnectionTest, ComparisonOperators) {
48   std::unique_ptr<rtc::AsyncPacketSocket> socket1(
49       socket_factory_.CreateUdpSocket(rtc::SocketAddress("1.1.1.1", 1), 0, 0));
50   std::unique_ptr<rtc::AsyncPacketSocket> socket2(
51       socket_factory_.CreateUdpSocket(rtc::SocketAddress("2.2.2.2", 2), 0, 0));
52   TurnServerConnection connection1(socket2->GetLocalAddress(), PROTO_UDP,
53                                    socket1.get());
54   TurnServerConnection connection2(socket2->GetLocalAddress(), PROTO_UDP,
55                                    socket1.get());
56   TurnServerConnection connection3(socket1->GetLocalAddress(), PROTO_UDP,
57                                    socket2.get());
58   TurnServerConnection connection4(socket2->GetLocalAddress(), PROTO_TCP,
59                                    socket1.get());
60   ExpectEqual(connection1, connection2);
61   ExpectNotEqual(connection1, connection3);
62   ExpectNotEqual(connection1, connection4);
63 }
64 
65 }  // namespace cricket
66