blob: 631eb46466eeb9c2bdf762d8c7fe667ad8aba1dd [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
11#include "webrtc/base/gunit.h"
12#include "webrtc/base/physicalsocketserver.h"
13#include "webrtc/base/virtualsocketserver.h"
14#include "webrtc/p2p/base/basicpacketsocketfactory.h"
15#include "webrtc/p2p/base/turnserver.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
20namespace cricket {
21
22class TurnServerConnectionTest : public testing::Test {
23 public:
nisse7eaa4ea2017-05-08 05:25:41 -070024 TurnServerConnectionTest() : vss_(&pss_), thread_(&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:
42 rtc::PhysicalSocketServer pss_;
43 rtc::VirtualSocketServer vss_;
nisse7eaa4ea2017-05-08 05:25:41 -070044 rtc::AutoSocketServerThread thread_;
45 // Since this is constructed after |thread_|, it will pick up |threads_|'s
Taylor Brandstetter734262c2016-08-01 16:37:14 -070046 // socket server.
47 rtc::BasicPacketSocketFactory socket_factory_;
48};
49
50TEST_F(TurnServerConnectionTest, ComparisonOperators) {
51 std::unique_ptr<rtc::AsyncPacketSocket> socket1(
52 socket_factory_.CreateUdpSocket(rtc::SocketAddress("1.1.1.1", 1), 0, 0));
53 std::unique_ptr<rtc::AsyncPacketSocket> socket2(
54 socket_factory_.CreateUdpSocket(rtc::SocketAddress("2.2.2.2", 2), 0, 0));
55 TurnServerConnection connection1(socket2->GetLocalAddress(), PROTO_UDP,
56 socket1.get());
57 TurnServerConnection connection2(socket2->GetLocalAddress(), PROTO_UDP,
58 socket1.get());
59 TurnServerConnection connection3(socket1->GetLocalAddress(), PROTO_UDP,
60 socket2.get());
61 TurnServerConnection connection4(socket2->GetLocalAddress(), PROTO_TCP,
62 socket1.get());
63 ExpectEqual(connection1, connection2);
64 ExpectNotEqual(connection1, connection3);
65 ExpectNotEqual(connection1, connection4);
66}
67
68} // namespace cricket