OLD | NEW |
| (Empty) |
1 // 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 | |
11 namespace net { | |
12 namespace test { | |
13 | |
14 // Test all cases of the GetAddressMismatch function. | |
15 TEST(QuicAddressMismatchTest, GetAddressMismatch) { | |
16 IPAddressNumber ip4_1; | |
17 IPAddressNumber ip4_2; | |
18 IPAddressNumber ip6_1; | |
19 IPAddressNumber ip6_2; | |
20 IPAddressNumber ip4_mapped_1; | |
21 IPAddressNumber ip4_mapped_2; | |
22 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)); | |
26 ip4_mapped_1 = ConvertIPv4NumberToIPv6Number(ip4_1); | |
27 ip4_mapped_2 = ConvertIPv4NumberToIPv6Number(ip4_2); | |
28 ASSERT_NE(ip4_1, ip4_2); | |
29 ASSERT_NE(ip6_1, ip6_2); | |
30 ASSERT_NE(ip4_mapped_1, ip4_mapped_2); | |
31 | |
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, | |
37 GetAddressMismatch(IPEndPoint(ip4_1, 443), | |
38 IPEndPoint(ip4_1, 443))); | |
39 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4, | |
40 GetAddressMismatch(IPEndPoint(ip4_1, 443), | |
41 IPEndPoint(ip4_mapped_1, 443))); | |
42 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4, | |
43 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443), | |
44 IPEndPoint(ip4_mapped_1, 443))); | |
45 EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V6_V6, | |
46 GetAddressMismatch(IPEndPoint(ip6_1, 443), | |
47 IPEndPoint(ip6_1, 443))); | |
48 | |
49 EXPECT_EQ(QUIC_PORT_MISMATCH_V4_V4, | |
50 GetAddressMismatch(IPEndPoint(ip4_1, 80), | |
51 IPEndPoint(ip4_1, 443))); | |
52 EXPECT_EQ(QUIC_PORT_MISMATCH_V4_V4, | |
53 GetAddressMismatch(IPEndPoint(ip4_1, 80), | |
54 IPEndPoint(ip4_mapped_1, 443))); | |
55 EXPECT_EQ(QUIC_PORT_MISMATCH_V4_V4, | |
56 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80), | |
57 IPEndPoint(ip4_mapped_1, 443))); | |
58 EXPECT_EQ(QUIC_PORT_MISMATCH_V6_V6, | |
59 GetAddressMismatch(IPEndPoint(ip6_1, 80), | |
60 IPEndPoint(ip6_1, 443))); | |
61 | |
62 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4, | |
63 GetAddressMismatch(IPEndPoint(ip4_1, 443), | |
64 IPEndPoint(ip4_2, 443))); | |
65 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4, | |
66 GetAddressMismatch(IPEndPoint(ip4_1, 443), | |
67 IPEndPoint(ip4_mapped_2, 443))); | |
68 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4, | |
69 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443), | |
70 IPEndPoint(ip4_mapped_2, 443))); | |
71 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4, | |
72 GetAddressMismatch(IPEndPoint(ip4_1, 80), | |
73 IPEndPoint(ip4_2, 443))); | |
74 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4, | |
75 GetAddressMismatch(IPEndPoint(ip4_1, 80), | |
76 IPEndPoint(ip4_mapped_2, 443))); | |
77 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4, | |
78 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80), | |
79 IPEndPoint(ip4_mapped_2, 443))); | |
80 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V6, | |
81 GetAddressMismatch(IPEndPoint(ip6_1, 443), | |
82 IPEndPoint(ip6_2, 443))); | |
83 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V6, | |
84 GetAddressMismatch(IPEndPoint(ip6_1, 80), | |
85 IPEndPoint(ip6_2, 443))); | |
86 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6, | |
87 GetAddressMismatch(IPEndPoint(ip4_1, 443), | |
88 IPEndPoint(ip6_1, 443))); | |
89 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6, | |
90 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443), | |
91 IPEndPoint(ip6_1, 443))); | |
92 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6, | |
93 GetAddressMismatch(IPEndPoint(ip4_1, 80), | |
94 IPEndPoint(ip6_1, 443))); | |
95 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6, | |
96 GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80), | |
97 IPEndPoint(ip6_1, 443))); | |
98 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4, | |
99 GetAddressMismatch(IPEndPoint(ip6_1, 443), | |
100 IPEndPoint(ip4_1, 443))); | |
101 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4, | |
102 GetAddressMismatch(IPEndPoint(ip6_1, 443), | |
103 IPEndPoint(ip4_mapped_1, 443))); | |
104 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4, | |
105 GetAddressMismatch(IPEndPoint(ip6_1, 80), | |
106 IPEndPoint(ip4_1, 443))); | |
107 EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4, | |
108 GetAddressMismatch(IPEndPoint(ip6_1, 80), | |
109 IPEndPoint(ip4_mapped_1, 443))); | |
110 } | |
111 | |
112 } // namespace test | |
113 } // namespace net | |
OLD | NEW |