blob: be35d201f196ea0f100f387b406e639ea55773ab [file] [log] [blame]
QUICHE team2252b702019-05-14 23:55:14 -04001// Copyright (c) 2019 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "net/third_party/quiche/src/quic/core/quic_packets.h"
6
7#include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
8#include "net/third_party/quiche/src/quic/test_tools/quic_test_utils.h"
9
10namespace quic {
11namespace test {
12namespace {
13
14QuicPacketHeader CreateFakePacketHeader() {
15 QuicPacketHeader header;
16 header.destination_connection_id = TestConnectionId(1);
17 header.destination_connection_id_included = CONNECTION_ID_PRESENT;
18 header.source_connection_id = TestConnectionId(2);
19 header.source_connection_id_included = CONNECTION_ID_ABSENT;
20 return header;
21}
22
23class QuicPacketsTest : public QuicTest {};
24
25TEST_F(QuicPacketsTest, GetServerConnectionIdAsRecipient) {
26 QuicPacketHeader header = CreateFakePacketHeader();
27 if (!GetQuicRestartFlag(quic_do_not_override_connection_id)) {
28 EXPECT_EQ(TestConnectionId(1),
29 GetServerConnectionIdAsRecipient(header, Perspective::IS_SERVER));
30 EXPECT_EQ(TestConnectionId(1),
31 GetServerConnectionIdAsRecipient(header, Perspective::IS_CLIENT));
32 return;
33 }
34
35 EXPECT_EQ(TestConnectionId(1),
36 GetServerConnectionIdAsRecipient(header, Perspective::IS_SERVER));
37 EXPECT_EQ(TestConnectionId(2),
38 GetServerConnectionIdAsRecipient(header, Perspective::IS_CLIENT));
39}
40
41TEST_F(QuicPacketsTest, GetServerConnectionIdAsSender) {
42 QuicPacketHeader header = CreateFakePacketHeader();
43 if (!GetQuicRestartFlag(quic_do_not_override_connection_id)) {
44 EXPECT_EQ(TestConnectionId(1),
45 GetServerConnectionIdAsSender(header, Perspective::IS_SERVER));
46 EXPECT_EQ(TestConnectionId(1),
47 GetServerConnectionIdAsSender(header, Perspective::IS_CLIENT));
48 return;
49 }
50
51 EXPECT_EQ(TestConnectionId(2),
52 GetServerConnectionIdAsSender(header, Perspective::IS_SERVER));
53 EXPECT_EQ(TestConnectionId(1),
54 GetServerConnectionIdAsSender(header, Perspective::IS_CLIENT));
55}
56
57TEST_F(QuicPacketsTest, GetServerConnectionIdIncludedAsSender) {
58 QuicPacketHeader header = CreateFakePacketHeader();
59 if (!GetQuicRestartFlag(quic_do_not_override_connection_id)) {
60 EXPECT_EQ(CONNECTION_ID_PRESENT, GetServerConnectionIdIncludedAsSender(
61 header, Perspective::IS_SERVER));
62 EXPECT_EQ(CONNECTION_ID_PRESENT, GetServerConnectionIdIncludedAsSender(
63 header, Perspective::IS_CLIENT));
64 return;
65 }
66
67 EXPECT_EQ(CONNECTION_ID_ABSENT, GetServerConnectionIdIncludedAsSender(
68 header, Perspective::IS_SERVER));
69 EXPECT_EQ(CONNECTION_ID_PRESENT, GetServerConnectionIdIncludedAsSender(
70 header, Perspective::IS_CLIENT));
71}
72
73TEST_F(QuicPacketsTest, GetClientConnectionIdIncludedAsSender) {
74 QuicPacketHeader header = CreateFakePacketHeader();
75 if (!GetQuicRestartFlag(quic_do_not_override_connection_id)) {
76 EXPECT_EQ(CONNECTION_ID_ABSENT, GetClientConnectionIdIncludedAsSender(
77 header, Perspective::IS_SERVER));
78 EXPECT_EQ(CONNECTION_ID_ABSENT, GetClientConnectionIdIncludedAsSender(
79 header, Perspective::IS_CLIENT));
80 return;
81 }
82
83 EXPECT_EQ(CONNECTION_ID_PRESENT, GetClientConnectionIdIncludedAsSender(
84 header, Perspective::IS_SERVER));
85 EXPECT_EQ(CONNECTION_ID_ABSENT, GetClientConnectionIdIncludedAsSender(
86 header, Perspective::IS_CLIENT));
87}
88
dschinaziac6805d2019-05-30 09:44:27 -070089TEST_F(QuicPacketsTest, GetClientConnectionIdAsRecipient) {
90 SetQuicRestartFlag(quic_do_not_override_connection_id, true);
91 QuicPacketHeader header = CreateFakePacketHeader();
92 EXPECT_EQ(TestConnectionId(2),
93 GetClientConnectionIdAsRecipient(header, Perspective::IS_SERVER));
94 EXPECT_EQ(TestConnectionId(1),
95 GetClientConnectionIdAsRecipient(header, Perspective::IS_CLIENT));
96}
97
98TEST_F(QuicPacketsTest, GetClientConnectionIdAsSender) {
99 QuicPacketHeader header = CreateFakePacketHeader();
100 if (!GetQuicRestartFlag(quic_do_not_override_connection_id)) {
101 EXPECT_EQ(TestConnectionId(2),
102 GetClientConnectionIdAsSender(header, Perspective::IS_SERVER));
103 EXPECT_EQ(TestConnectionId(2),
104 GetClientConnectionIdAsSender(header, Perspective::IS_CLIENT));
105 return;
106 }
107
108 EXPECT_EQ(TestConnectionId(1),
109 GetClientConnectionIdAsSender(header, Perspective::IS_SERVER));
110 EXPECT_EQ(TestConnectionId(2),
111 GetClientConnectionIdAsSender(header, Perspective::IS_CLIENT));
112}
113
QUICHE team2252b702019-05-14 23:55:14 -0400114} // namespace
115} // namespace test
116} // namespace quic