blob: e534f6598c84d09334a59429ec62367cfd5f5a07 [file] [log] [blame]
Taylor Brandstetter734262c2016-08-01 16:37:14 -07001/*
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
Steve Anton10542f22019-01-11 09:11:00 -080011#include "p2p/base/turn_server.h"
Yves Gerey3e707812018-11-28 16:47:49 +010012
Steve Anton10542f22019-01-11 09:11:00 -080013#include "p2p/base/basic_packet_socket_factory.h"
14#include "rtc_base/virtual_socket_server.h"
Yves Gerey3e707812018-11-28 16:47:49 +010015#include "test/gtest.h"
Taylor Brandstetter734262c2016-08-01 16:37:14 -070016
17// NOTE: This is a work in progress. Currently this file only has tests for
18// TurnServerConnection, a primitive class used by TurnServer.
19
20namespace cricket {
21
Mirko Bonadei6a489f22019-04-09 15:11:12 +020022class TurnServerConnectionTest : public ::testing::Test {
Taylor Brandstetter734262c2016-08-01 16:37:14 -070023 public:
Niels Möller66be8952021-09-03 10:55:12 +020024 TurnServerConnectionTest() : thread_(&vss_), socket_factory_(&vss_) {}
Taylor Brandstetter734262c2016-08-01 16:37:14 -070025
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
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:
Taylor Brandstetter734262c2016-08-01 16:37:14 -070042 rtc::VirtualSocketServer vss_;
nisse7eaa4ea2017-05-08 05:25:41 -070043 rtc::AutoSocketServerThread thread_;
Taylor Brandstetter734262c2016-08-01 16:37:14 -070044 rtc::BasicPacketSocketFactory socket_factory_;
45};
46
47TEST_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