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.
5 #include "net/quic/quic_server_id.h"
7 #include "testing/gtest/include/gtest/gtest.h"
15 TEST(QuicServerIdTest, ToString) {
16 HostPortPair google_host_port_pair("google.com", 10);
18 QuicServerId google_http_server_id(google_host_port_pair, false,
19 PRIVACY_MODE_DISABLED);
20 string google_http_server_id_str = google_http_server_id.ToString();
21 EXPECT_EQ("http://google.com:10", google_http_server_id_str);
23 QuicServerId google_https_server_id(google_host_port_pair, true,
24 PRIVACY_MODE_DISABLED);
25 string google_https_server_id_str = google_https_server_id.ToString();
26 EXPECT_EQ("https://google.com:10", google_https_server_id_str);
28 QuicServerId private_http_server_id(google_host_port_pair, false,
29 PRIVACY_MODE_ENABLED);
30 string private_http_server_id_str = private_http_server_id.ToString();
31 EXPECT_EQ("http://google.com:10/private", private_http_server_id_str);
33 QuicServerId private_https_server_id(google_host_port_pair, true,
34 PRIVACY_MODE_ENABLED);
35 string private_https_server_id_str = private_https_server_id.ToString();
36 EXPECT_EQ("https://google.com:10/private", private_https_server_id_str);
39 TEST(QuicServerIdTest, LessThan) {
40 QuicServerId a_10_http(HostPortPair("a.com", 10), false,
41 PRIVACY_MODE_DISABLED);
42 QuicServerId a_10_https(HostPortPair("a.com", 10), true,
43 PRIVACY_MODE_DISABLED);
44 QuicServerId a_11_http(HostPortPair("a.com", 11), false,
45 PRIVACY_MODE_DISABLED);
46 QuicServerId a_11_https(HostPortPair("a.com", 11), true,
47 PRIVACY_MODE_DISABLED);
48 QuicServerId b_10_http(HostPortPair("b.com", 10), false,
49 PRIVACY_MODE_DISABLED);
50 QuicServerId b_10_https(HostPortPair("b.com", 10), true,
51 PRIVACY_MODE_DISABLED);
52 QuicServerId b_11_http(HostPortPair("b.com", 11), false,
53 PRIVACY_MODE_DISABLED);
54 QuicServerId b_11_https(HostPortPair("b.com", 11), true,
55 PRIVACY_MODE_DISABLED);
57 QuicServerId a_10_http_private(HostPortPair("a.com", 10), false,
58 PRIVACY_MODE_ENABLED);
59 QuicServerId a_10_https_private(HostPortPair("a.com", 10), true,
60 PRIVACY_MODE_ENABLED);
61 QuicServerId a_11_http_private(HostPortPair("a.com", 11), false,
62 PRIVACY_MODE_ENABLED);
63 QuicServerId a_11_https_private(HostPortPair("a.com", 11), true,
64 PRIVACY_MODE_ENABLED);
65 QuicServerId b_10_http_private(HostPortPair("b.com", 10), false,
66 PRIVACY_MODE_ENABLED);
67 QuicServerId b_10_https_private(HostPortPair("b.com", 10), true,
68 PRIVACY_MODE_ENABLED);
69 QuicServerId b_11_http_private(HostPortPair("b.com", 11), false,
70 PRIVACY_MODE_ENABLED);
71 QuicServerId b_11_https_private(HostPortPair("b.com", 11), true,
72 PRIVACY_MODE_ENABLED);
74 // Test combinations of host, port, https and privacy being same on left and
75 // right side of less than.
76 EXPECT_FALSE(a_10_http < a_10_http);
77 EXPECT_TRUE(a_10_http < a_10_https);
78 EXPECT_FALSE(a_10_https < a_10_http);
79 EXPECT_FALSE(a_10_https < a_10_https);
81 EXPECT_TRUE(a_10_http < a_10_http_private);
82 EXPECT_TRUE(a_10_http < a_10_https_private);
83 EXPECT_FALSE(a_10_https < a_10_http_private);
84 EXPECT_TRUE(a_10_https < a_10_https_private);
86 EXPECT_FALSE(a_10_http_private < a_10_http);
87 EXPECT_TRUE(a_10_http_private < a_10_https);
88 EXPECT_FALSE(a_10_https_private < a_10_http);
89 EXPECT_FALSE(a_10_https_private < a_10_https);
91 EXPECT_FALSE(a_10_http_private < a_10_http_private);
92 EXPECT_TRUE(a_10_http_private < a_10_https_private);
93 EXPECT_FALSE(a_10_https_private < a_10_http_private);
94 EXPECT_FALSE(a_10_https_private < a_10_https_private);
96 // Test with either host, port or https being different on left and right side
98 PrivacyMode left_privacy;
99 PrivacyMode right_privacy;
100 for (int i = 0; i < 4; i++) {
103 left_privacy = PRIVACY_MODE_DISABLED;
104 right_privacy = PRIVACY_MODE_DISABLED;
107 left_privacy = PRIVACY_MODE_DISABLED;
108 right_privacy = PRIVACY_MODE_ENABLED;
111 left_privacy = PRIVACY_MODE_ENABLED;
112 right_privacy = PRIVACY_MODE_DISABLED;
115 left_privacy = PRIVACY_MODE_ENABLED;
116 right_privacy = PRIVACY_MODE_ENABLED;
119 QuicServerId a_10_http_left_private(HostPortPair("a.com", 10), false,
121 QuicServerId a_10_http_right_private(HostPortPair("a.com", 10), false,
123 QuicServerId a_10_https_left_private(HostPortPair("a.com", 10), true,
125 QuicServerId a_10_https_right_private(HostPortPair("a.com", 10), true,
127 QuicServerId a_11_http_left_private(HostPortPair("a.com", 11), false,
129 QuicServerId a_11_http_right_private(HostPortPair("a.com", 11), false,
131 QuicServerId a_11_https_left_private(HostPortPair("a.com", 11), true,
133 QuicServerId a_11_https_right_private(HostPortPair("a.com", 11), true,
136 QuicServerId b_10_http_left_private(HostPortPair("b.com", 10), false,
138 QuicServerId b_10_http_right_private(HostPortPair("b.com", 10), false,
140 QuicServerId b_10_https_left_private(HostPortPair("b.com", 10), true,
142 QuicServerId b_10_https_right_private(HostPortPair("b.com", 10), true,
144 QuicServerId b_11_http_left_private(HostPortPair("b.com", 11), false,
146 QuicServerId b_11_http_right_private(HostPortPair("b.com", 11), false,
148 QuicServerId b_11_https_left_private(HostPortPair("b.com", 11), true,
150 QuicServerId b_11_https_right_private(HostPortPair("b.com", 11), true,
153 EXPECT_TRUE(a_10_http_left_private < a_11_http_right_private);
154 EXPECT_TRUE(a_10_http_left_private < a_11_https_right_private);
155 EXPECT_TRUE(a_10_https_left_private < a_11_http_right_private);
156 EXPECT_TRUE(a_10_https_left_private < a_11_https_right_private);
158 EXPECT_TRUE(a_10_http_left_private < b_10_http_right_private);
159 EXPECT_TRUE(a_10_http_left_private < b_10_https_right_private);
160 EXPECT_TRUE(a_10_https_left_private < b_10_http_right_private);
161 EXPECT_TRUE(a_10_https_left_private < b_10_https_right_private);
163 EXPECT_TRUE(a_10_http_left_private < b_11_http_right_private);
164 EXPECT_TRUE(a_10_http_left_private < b_11_https_right_private);
165 EXPECT_TRUE(a_10_https_left_private < b_11_http_right_private);
166 EXPECT_TRUE(a_10_https_left_private < b_11_https_right_private);
168 EXPECT_FALSE(a_11_http_left_private < a_10_http_right_private);
169 EXPECT_FALSE(a_11_http_left_private < a_10_https_right_private);
170 EXPECT_FALSE(a_11_https_left_private < a_10_http_right_private);
171 EXPECT_FALSE(a_11_https_left_private < a_10_https_right_private);
173 EXPECT_FALSE(a_11_http_left_private < b_10_http_right_private);
174 EXPECT_FALSE(a_11_http_left_private < b_10_https_right_private);
175 EXPECT_FALSE(a_11_https_left_private < b_10_http_right_private);
176 EXPECT_FALSE(a_11_https_left_private < b_10_https_right_private);
178 EXPECT_TRUE(a_11_http_left_private < b_11_http_right_private);
179 EXPECT_TRUE(a_11_http_left_private < b_11_https_right_private);
180 EXPECT_TRUE(a_11_https_left_private < b_11_http_right_private);
181 EXPECT_TRUE(a_11_https_left_private < b_11_https_right_private);
183 EXPECT_FALSE(b_10_http_left_private < a_10_http_right_private);
184 EXPECT_FALSE(b_10_http_left_private < a_10_https_right_private);
185 EXPECT_FALSE(b_10_https_left_private < a_10_http_right_private);
186 EXPECT_FALSE(b_10_https_left_private < a_10_https_right_private);
188 EXPECT_TRUE(b_10_http_left_private < a_11_http_right_private);
189 EXPECT_TRUE(b_10_http_left_private < a_11_https_right_private);
190 EXPECT_TRUE(b_10_https_left_private < a_11_http_right_private);
191 EXPECT_TRUE(b_10_https_left_private < a_11_https_right_private);
193 EXPECT_TRUE(b_10_http_left_private < b_11_http_right_private);
194 EXPECT_TRUE(b_10_http_left_private < b_11_https_right_private);
195 EXPECT_TRUE(b_10_https_left_private < b_11_http_right_private);
196 EXPECT_TRUE(b_10_https_left_private < b_11_https_right_private);
198 EXPECT_FALSE(b_11_http_left_private < a_10_http_right_private);
199 EXPECT_FALSE(b_11_http_left_private < a_10_https_right_private);
200 EXPECT_FALSE(b_11_https_left_private < a_10_http_right_private);
201 EXPECT_FALSE(b_11_https_left_private < a_10_https_right_private);
203 EXPECT_FALSE(b_11_http_left_private < a_11_http_right_private);
204 EXPECT_FALSE(b_11_http_left_private < a_11_https_right_private);
205 EXPECT_FALSE(b_11_https_left_private < a_11_http_right_private);
206 EXPECT_FALSE(b_11_https_left_private < a_11_https_right_private);
208 EXPECT_FALSE(b_11_http_left_private < b_10_http_right_private);
209 EXPECT_FALSE(b_11_http_left_private < b_10_https_right_private);
210 EXPECT_FALSE(b_11_https_left_private < b_10_http_right_private);
211 EXPECT_FALSE(b_11_https_left_private < b_10_https_right_private);
215 TEST(QuicServerIdTest, Equals) {
216 PrivacyMode left_privacy;
217 PrivacyMode right_privacy;
218 for (int i = 0; i < 2; i++) {
221 left_privacy = PRIVACY_MODE_DISABLED;
222 right_privacy = PRIVACY_MODE_DISABLED;
225 left_privacy = PRIVACY_MODE_ENABLED;
226 right_privacy = PRIVACY_MODE_ENABLED;
229 QuicServerId a_10_http_right_private(HostPortPair("a.com", 10), false,
231 QuicServerId a_10_https_right_private(HostPortPair("a.com", 10), true,
233 QuicServerId a_11_http_right_private(HostPortPair("a.com", 11), false,
235 QuicServerId a_11_https_right_private(HostPortPair("a.com", 11), true,
237 QuicServerId b_10_http_right_private(HostPortPair("b.com", 10), false,
239 QuicServerId b_10_https_right_private(HostPortPair("b.com", 10), true,
241 QuicServerId b_11_http_right_private(HostPortPair("b.com", 11), false,
243 QuicServerId b_11_https_right_private(HostPortPair("b.com", 11), true,
246 QuicServerId new_a_10_http_left_private(HostPortPair("a.com", 10), false,
248 QuicServerId new_a_10_https_left_private(HostPortPair("a.com", 10), true,
250 QuicServerId new_a_11_http_left_private(HostPortPair("a.com", 11), false,
252 QuicServerId new_a_11_https_left_private(HostPortPair("a.com", 11), true,
254 QuicServerId new_b_10_http_left_private(HostPortPair("b.com", 10), false,
256 QuicServerId new_b_10_https_left_private(HostPortPair("b.com", 10), true,
258 QuicServerId new_b_11_http_left_private(HostPortPair("b.com", 11), false,
260 QuicServerId new_b_11_https_left_private(HostPortPair("b.com", 11), true,
263 EXPECT_EQ(new_a_10_http_left_private, a_10_http_right_private);
264 EXPECT_EQ(new_a_10_https_left_private, a_10_https_right_private);
265 EXPECT_EQ(new_a_11_http_left_private, a_11_http_right_private);
266 EXPECT_EQ(new_a_11_https_left_private, a_11_https_right_private);
267 EXPECT_EQ(new_b_10_http_left_private, b_10_http_right_private);
268 EXPECT_EQ(new_b_10_https_left_private, b_10_https_right_private);
269 EXPECT_EQ(new_b_11_http_left_private, b_11_http_right_private);
270 EXPECT_EQ(new_b_11_https_left_private, b_11_https_right_private);
273 for (int i = 0; i < 2; i++) {
276 right_privacy = PRIVACY_MODE_DISABLED;
279 right_privacy = PRIVACY_MODE_ENABLED;
282 QuicServerId a_10_http_right_private(HostPortPair("a.com", 10), false,
284 QuicServerId a_10_https_right_private(HostPortPair("a.com", 10), true,
286 QuicServerId a_11_http_right_private(HostPortPair("a.com", 11), false,
288 QuicServerId a_11_https_right_private(HostPortPair("a.com", 11), true,
290 QuicServerId b_10_http_right_private(HostPortPair("b.com", 10), false,
292 QuicServerId b_10_https_right_private(HostPortPair("b.com", 10), true,
294 QuicServerId b_11_http_right_private(HostPortPair("b.com", 11), false,
296 QuicServerId b_11_https_right_private(HostPortPair("b.com", 11), true,
299 QuicServerId new_a_10_http_left_private(HostPortPair("a.com", 10), false,
300 PRIVACY_MODE_DISABLED);
302 EXPECT_FALSE(new_a_10_http_left_private == a_10_https_right_private);
303 EXPECT_FALSE(new_a_10_http_left_private == a_11_http_right_private);
304 EXPECT_FALSE(new_a_10_http_left_private == b_10_http_right_private);
305 EXPECT_FALSE(new_a_10_http_left_private == a_11_https_right_private);
306 EXPECT_FALSE(new_a_10_http_left_private == b_10_https_right_private);
307 EXPECT_FALSE(new_a_10_http_left_private == b_11_http_right_private);
308 EXPECT_FALSE(new_a_10_http_left_private == b_11_https_right_private);
310 QuicServerId a_10_http_private(HostPortPair("a.com", 10), false,
311 PRIVACY_MODE_ENABLED);
312 QuicServerId new_a_10_http_no_private(HostPortPair("a.com", 10), false,
313 PRIVACY_MODE_DISABLED);
314 EXPECT_FALSE(new_a_10_http_no_private == a_10_http_private);