blob: 5c6d5874e2e3a25b3e97b68416817baf4ce570f7 [file] [log] [blame]
[email protected]235dac082014-02-20 17:47:251// Copyright 2014 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
Ryan Hamiltona3ee93a72018-08-01 22:03:085#include "net/quic/quic_address_mismatch.h"
[email protected]235dac082014-02-20 17:47:256
[email protected]235dac082014-02-20 17:47:257#include "testing/gtest/include/gtest/gtest.h"
8
9namespace net {
10namespace test {
11
12// Test all cases of the GetAddressMismatch function.
13TEST(QuicAddressMismatchTest, GetAddressMismatch) {
martijncc5402d2016-02-16 19:08:5814 IPAddress ip4_1;
15 IPAddress ip4_2;
16 IPAddress ip6_1;
17 IPAddress ip6_2;
18 IPAddress ip4_mapped_1;
19 IPAddress ip4_mapped_2;
20 ASSERT_TRUE(ip4_1.AssignFromIPLiteral("1.2.3.4"));
21 ASSERT_TRUE(ip4_2.AssignFromIPLiteral("5.6.7.8"));
22 ASSERT_TRUE(ip6_1.AssignFromIPLiteral("1234::1"));
23 ASSERT_TRUE(ip6_2.AssignFromIPLiteral("1234::2"));
24 ip4_mapped_1 = ConvertIPv4ToIPv4MappedIPv6(ip4_1);
25 ip4_mapped_2 = ConvertIPv4ToIPv4MappedIPv6(ip4_2);
[email protected]235dac082014-02-20 17:47:2526 ASSERT_NE(ip4_1, ip4_2);
27 ASSERT_NE(ip6_1, ip6_2);
[email protected]dc6574642014-05-20 21:32:5928 ASSERT_NE(ip4_mapped_1, ip4_mapped_2);
[email protected]235dac082014-02-20 17:47:2529
30 EXPECT_EQ(-1, GetAddressMismatch(IPEndPoint(), IPEndPoint()));
31 EXPECT_EQ(-1, GetAddressMismatch(IPEndPoint(), IPEndPoint(ip4_1, 443)));
32 EXPECT_EQ(-1, GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint()));
33
34 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4,
rjshaded5ced072015-12-18 19:26:0235 GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint(ip4_1, 443)));
[email protected]dc6574642014-05-20 21:32:5936 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4,
37 GetAddressMismatch(IPEndPoint(ip4_1, 443),
38 IPEndPoint(ip4_mapped_1, 443)));
39 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4,
40 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443),
41 IPEndPoint(ip4_mapped_1, 443)));
[email protected]235dac082014-02-20 17:47:2542 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V6_V6,
rjshaded5ced072015-12-18 19:26:0243 GetAddressMismatch(IPEndPoint(ip6_1, 443), IPEndPoint(ip6_1, 443)));
[email protected]235dac082014-02-20 17:47:2544
45 EXPECT_EQ(QUIC_PORT_MISMATCH_V4_V4,
rjshaded5ced072015-12-18 19:26:0246 GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_1, 443)));
47 EXPECT_EQ(
48 QUIC_PORT_MISMATCH_V4_V4,
49 GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_mapped_1, 443)));
[email protected]dc6574642014-05-20 21:32:5950 EXPECT_EQ(QUIC_PORT_MISMATCH_V4_V4,
51 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80),
52 IPEndPoint(ip4_mapped_1, 443)));
[email protected]235dac082014-02-20 17:47:2553 EXPECT_EQ(QUIC_PORT_MISMATCH_V6_V6,
rjshaded5ced072015-12-18 19:26:0254 GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip6_1, 443)));
[email protected]235dac082014-02-20 17:47:2555
56 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
rjshaded5ced072015-12-18 19:26:0257 GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint(ip4_2, 443)));
[email protected]235dac082014-02-20 17:47:2558 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
[email protected]dc6574642014-05-20 21:32:5959 GetAddressMismatch(IPEndPoint(ip4_1, 443),
60 IPEndPoint(ip4_mapped_2, 443)));
61 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
62 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443),
63 IPEndPoint(ip4_mapped_2, 443)));
64 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
rjshaded5ced072015-12-18 19:26:0265 GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_2, 443)));
66 EXPECT_EQ(
67 QUIC_ADDRESS_MISMATCH_V4_V4,
68 GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_mapped_2, 443)));
[email protected]dc6574642014-05-20 21:32:5969 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
70 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80),
71 IPEndPoint(ip4_mapped_2, 443)));
[email protected]235dac082014-02-20 17:47:2572 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V6,
rjshaded5ced072015-12-18 19:26:0273 GetAddressMismatch(IPEndPoint(ip6_1, 443), IPEndPoint(ip6_2, 443)));
[email protected]235dac082014-02-20 17:47:2574 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V6,
rjshaded5ced072015-12-18 19:26:0275 GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip6_2, 443)));
[email protected]235dac082014-02-20 17:47:2576 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6,
rjshaded5ced072015-12-18 19:26:0277 GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint(ip6_1, 443)));
[email protected]235dac082014-02-20 17:47:2578 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6,
[email protected]dc6574642014-05-20 21:32:5979 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443),
80 IPEndPoint(ip6_1, 443)));
81 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6,
rjshaded5ced072015-12-18 19:26:0282 GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip6_1, 443)));
83 EXPECT_EQ(
84 QUIC_ADDRESS_MISMATCH_V4_V6,
85 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80), IPEndPoint(ip6_1, 443)));
[email protected]235dac082014-02-20 17:47:2586 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4,
rjshaded5ced072015-12-18 19:26:0287 GetAddressMismatch(IPEndPoint(ip6_1, 443), IPEndPoint(ip4_1, 443)));
[email protected]235dac082014-02-20 17:47:2588 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4,
[email protected]dc6574642014-05-20 21:32:5989 GetAddressMismatch(IPEndPoint(ip6_1, 443),
90 IPEndPoint(ip4_mapped_1, 443)));
91 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4,
rjshaded5ced072015-12-18 19:26:0292 GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip4_1, 443)));
93 EXPECT_EQ(
94 QUIC_ADDRESS_MISMATCH_V6_V4,
95 GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip4_mapped_1, 443)));
[email protected]235dac082014-02-20 17:47:2596}
97
98} // namespace test
99} // namespace net