Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / net / quic / quic_server_id_test.cc
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_server_id.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 using std::string;
10
11 namespace net {
12
13 namespace {
14
15 TEST(QuicServerIdTest, ToString) {
16   HostPortPair google_host_port_pair("google.com", 10);
17
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);
22
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);
27
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);
32
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);
37 }
38
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);
56
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);
73
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);
80
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);
85
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);
90
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);
95
96   // Test with either host, port or https being different on left and right side
97   // of less than.
98   PrivacyMode left_privacy;
99   PrivacyMode right_privacy;
100   for (int i = 0; i < 4; i++) {
101     switch (i) {
102       case 0:
103         left_privacy = PRIVACY_MODE_DISABLED;
104         right_privacy = PRIVACY_MODE_DISABLED;
105         break;
106       case 1:
107         left_privacy = PRIVACY_MODE_DISABLED;
108         right_privacy = PRIVACY_MODE_ENABLED;
109         break;
110       case 2:
111         left_privacy = PRIVACY_MODE_ENABLED;
112         right_privacy = PRIVACY_MODE_DISABLED;
113         break;
114       case 3:
115         left_privacy = PRIVACY_MODE_ENABLED;
116         right_privacy = PRIVACY_MODE_ENABLED;
117         break;
118     }
119     QuicServerId a_10_http_left_private(HostPortPair("a.com", 10), false,
120                                         left_privacy);
121     QuicServerId a_10_http_right_private(HostPortPair("a.com", 10), false,
122                                          right_privacy);
123     QuicServerId a_10_https_left_private(HostPortPair("a.com", 10), true,
124                                          left_privacy);
125     QuicServerId a_10_https_right_private(HostPortPair("a.com", 10), true,
126                                           right_privacy);
127     QuicServerId a_11_http_left_private(HostPortPair("a.com", 11), false,
128                                         left_privacy);
129     QuicServerId a_11_http_right_private(HostPortPair("a.com", 11), false,
130                                          right_privacy);
131     QuicServerId a_11_https_left_private(HostPortPair("a.com", 11), true,
132                                          left_privacy);
133     QuicServerId a_11_https_right_private(HostPortPair("a.com", 11), true,
134                                           right_privacy);
135
136     QuicServerId b_10_http_left_private(HostPortPair("b.com", 10), false,
137                                         left_privacy);
138     QuicServerId b_10_http_right_private(HostPortPair("b.com", 10), false,
139                                          right_privacy);
140     QuicServerId b_10_https_left_private(HostPortPair("b.com", 10), true,
141                                          left_privacy);
142     QuicServerId b_10_https_right_private(HostPortPair("b.com", 10), true,
143                                           right_privacy);
144     QuicServerId b_11_http_left_private(HostPortPair("b.com", 11), false,
145                                         left_privacy);
146     QuicServerId b_11_http_right_private(HostPortPair("b.com", 11), false,
147                                          right_privacy);
148     QuicServerId b_11_https_left_private(HostPortPair("b.com", 11), true,
149                                          left_privacy);
150     QuicServerId b_11_https_right_private(HostPortPair("b.com", 11), true,
151                                           right_privacy);
152
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);
157
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);
162
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);
167
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);
172
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);
177
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);
182
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);
187
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);
192
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);
197
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);
202
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);
207
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);
212   }
213 }
214
215 TEST(QuicServerIdTest, Equals) {
216   PrivacyMode left_privacy;
217   PrivacyMode right_privacy;
218   for (int i = 0; i < 2; i++) {
219     switch (i) {
220       case 0:
221         left_privacy = PRIVACY_MODE_DISABLED;
222         right_privacy = PRIVACY_MODE_DISABLED;
223         break;
224       case 1:
225         left_privacy = PRIVACY_MODE_ENABLED;
226         right_privacy = PRIVACY_MODE_ENABLED;
227         break;
228     }
229     QuicServerId a_10_http_right_private(HostPortPair("a.com", 10), false,
230                                          right_privacy);
231     QuicServerId a_10_https_right_private(HostPortPair("a.com", 10), true,
232                                           right_privacy);
233     QuicServerId a_11_http_right_private(HostPortPair("a.com", 11), false,
234                                          right_privacy);
235     QuicServerId a_11_https_right_private(HostPortPair("a.com", 11), true,
236                                           right_privacy);
237     QuicServerId b_10_http_right_private(HostPortPair("b.com", 10), false,
238                                          right_privacy);
239     QuicServerId b_10_https_right_private(HostPortPair("b.com", 10), true,
240                                           right_privacy);
241     QuicServerId b_11_http_right_private(HostPortPair("b.com", 11), false,
242                                          right_privacy);
243     QuicServerId b_11_https_right_private(HostPortPair("b.com", 11), true,
244                                           right_privacy);
245
246     QuicServerId new_a_10_http_left_private(HostPortPair("a.com", 10), false,
247                                             left_privacy);
248     QuicServerId new_a_10_https_left_private(HostPortPair("a.com", 10), true,
249                                              left_privacy);
250     QuicServerId new_a_11_http_left_private(HostPortPair("a.com", 11), false,
251                                             left_privacy);
252     QuicServerId new_a_11_https_left_private(HostPortPair("a.com", 11), true,
253                                              left_privacy);
254     QuicServerId new_b_10_http_left_private(HostPortPair("b.com", 10), false,
255                                             left_privacy);
256     QuicServerId new_b_10_https_left_private(HostPortPair("b.com", 10), true,
257                                              left_privacy);
258     QuicServerId new_b_11_http_left_private(HostPortPair("b.com", 11), false,
259                                             left_privacy);
260     QuicServerId new_b_11_https_left_private(HostPortPair("b.com", 11), true,
261                                              left_privacy);
262
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);
271   }
272
273   for (int i = 0; i < 2; i++) {
274     switch (i) {
275       case 0:
276         right_privacy = PRIVACY_MODE_DISABLED;
277         break;
278       case 1:
279         right_privacy = PRIVACY_MODE_ENABLED;
280         break;
281     }
282     QuicServerId a_10_http_right_private(HostPortPair("a.com", 10), false,
283                                          right_privacy);
284     QuicServerId a_10_https_right_private(HostPortPair("a.com", 10), true,
285                                           right_privacy);
286     QuicServerId a_11_http_right_private(HostPortPair("a.com", 11), false,
287                                          right_privacy);
288     QuicServerId a_11_https_right_private(HostPortPair("a.com", 11), true,
289                                           right_privacy);
290     QuicServerId b_10_http_right_private(HostPortPair("b.com", 10), false,
291                                          right_privacy);
292     QuicServerId b_10_https_right_private(HostPortPair("b.com", 10), true,
293                                           right_privacy);
294     QuicServerId b_11_http_right_private(HostPortPair("b.com", 11), false,
295                                          right_privacy);
296     QuicServerId b_11_https_right_private(HostPortPair("b.com", 11), true,
297                                           right_privacy);
298
299     QuicServerId new_a_10_http_left_private(HostPortPair("a.com", 10), false,
300                                             PRIVACY_MODE_DISABLED);
301
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);
309   }
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);
315 }
316
317 }  // namespace
318
319 }  // namespace net