blob: 02f3dcc0653e751e5729628776a87d93b5d48849 [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
5#include "net/quic/quic_address_mismatch.h"
6
7#include "net/base/ip_endpoint.h"
8#include "net/base/net_util.h"
9#include "testing/gtest/include/gtest/gtest.h"
10
11namespace net {
12namespace test {
13
14// Test all cases of the GetAddressMismatch function.
15TEST(QuicAddressMismatchTest, GetAddressMismatch) {
16 IPAddressNumber ip4_1;
17 IPAddressNumber ip4_2;
18 IPAddressNumber ip6_1;
19 IPAddressNumber ip6_2;
[email protected]dc6574642014-05-20 21:32:5920 IPAddressNumber ip4_mapped_1;
21 IPAddressNumber ip4_mapped_2;
[email protected]235dac082014-02-20 17:47:2522 ASSERT_TRUE(ParseIPLiteralToNumber("1.2.3.4", &ip4_1));
23 ASSERT_TRUE(ParseIPLiteralToNumber("5.6.7.8", &ip4_2));
24 ASSERT_TRUE(ParseIPLiteralToNumber("1234::1", &ip6_1));
25 ASSERT_TRUE(ParseIPLiteralToNumber("1234::2", &ip6_2));
[email protected]dc6574642014-05-20 21:32:5926 ip4_mapped_1 = ConvertIPv4NumberToIPv6Number(ip4_1);
27 ip4_mapped_2 = ConvertIPv4NumberToIPv6Number(ip4_2);
[email protected]235dac082014-02-20 17:47:2528 ASSERT_NE(ip4_1, ip4_2);
29 ASSERT_NE(ip6_1, ip6_2);
[email protected]dc6574642014-05-20 21:32:5930 ASSERT_NE(ip4_mapped_1, ip4_mapped_2);
[email protected]235dac082014-02-20 17:47:2531
32 EXPECT_EQ(-1, GetAddressMismatch(IPEndPoint(), IPEndPoint()));
33 EXPECT_EQ(-1, GetAddressMismatch(IPEndPoint(), IPEndPoint(ip4_1, 443)));
34 EXPECT_EQ(-1, GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint()));
35
36 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4,
rjshaded5ced072015-12-18 19:26:0237 GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint(ip4_1, 443)));
[email protected]dc6574642014-05-20 21:32:5938 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4,
39 GetAddressMismatch(IPEndPoint(ip4_1, 443),
40 IPEndPoint(ip4_mapped_1, 443)));
41 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4,
42 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443),
43 IPEndPoint(ip4_mapped_1, 443)));
[email protected]235dac082014-02-20 17:47:2544 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V6_V6,
rjshaded5ced072015-12-18 19:26:0245 GetAddressMismatch(IPEndPoint(ip6_1, 443), IPEndPoint(ip6_1, 443)));
[email protected]235dac082014-02-20 17:47:2546
47 EXPECT_EQ(QUIC_PORT_MISMATCH_V4_V4,
rjshaded5ced072015-12-18 19:26:0248 GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_1, 443)));
49 EXPECT_EQ(
50 QUIC_PORT_MISMATCH_V4_V4,
51 GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_mapped_1, 443)));
[email protected]dc6574642014-05-20 21:32:5952 EXPECT_EQ(QUIC_PORT_MISMATCH_V4_V4,
53 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80),
54 IPEndPoint(ip4_mapped_1, 443)));
[email protected]235dac082014-02-20 17:47:2555 EXPECT_EQ(QUIC_PORT_MISMATCH_V6_V6,
rjshaded5ced072015-12-18 19:26:0256 GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip6_1, 443)));
[email protected]235dac082014-02-20 17:47:2557
58 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
rjshaded5ced072015-12-18 19:26:0259 GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint(ip4_2, 443)));
[email protected]235dac082014-02-20 17:47:2560 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
[email protected]dc6574642014-05-20 21:32:5961 GetAddressMismatch(IPEndPoint(ip4_1, 443),
62 IPEndPoint(ip4_mapped_2, 443)));
63 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
64 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443),
65 IPEndPoint(ip4_mapped_2, 443)));
66 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
rjshaded5ced072015-12-18 19:26:0267 GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_2, 443)));
68 EXPECT_EQ(
69 QUIC_ADDRESS_MISMATCH_V4_V4,
70 GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_mapped_2, 443)));
[email protected]dc6574642014-05-20 21:32:5971 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
72 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80),
73 IPEndPoint(ip4_mapped_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, 443), IPEndPoint(ip6_2, 443)));
[email protected]235dac082014-02-20 17:47:2576 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V6,
rjshaded5ced072015-12-18 19:26:0277 GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip6_2, 443)));
[email protected]235dac082014-02-20 17:47:2578 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6,
rjshaded5ced072015-12-18 19:26:0279 GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint(ip6_1, 443)));
[email protected]235dac082014-02-20 17:47:2580 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6,
[email protected]dc6574642014-05-20 21:32:5981 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443),
82 IPEndPoint(ip6_1, 443)));
83 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6,
rjshaded5ced072015-12-18 19:26:0284 GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip6_1, 443)));
85 EXPECT_EQ(
86 QUIC_ADDRESS_MISMATCH_V4_V6,
87 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80), IPEndPoint(ip6_1, 443)));
[email protected]235dac082014-02-20 17:47:2588 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4,
rjshaded5ced072015-12-18 19:26:0289 GetAddressMismatch(IPEndPoint(ip6_1, 443), IPEndPoint(ip4_1, 443)));
[email protected]235dac082014-02-20 17:47:2590 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4,
[email protected]dc6574642014-05-20 21:32:5991 GetAddressMismatch(IPEndPoint(ip6_1, 443),
92 IPEndPoint(ip4_mapped_1, 443)));
93 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4,
rjshaded5ced072015-12-18 19:26:0294 GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip4_1, 443)));
95 EXPECT_EQ(
96 QUIC_ADDRESS_MISMATCH_V6_V4,
97 GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip4_mapped_1, 443)));
[email protected]235dac082014-02-20 17:47:2598}
99
100} // namespace test
101} // namespace net