Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(685)

Side by Side Diff: net/http/http_server_properties_impl_unittest.cc

Issue 1858093002: Alt-Svc 8: Change Supports SPDY list using SHP as the key. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@alt_svc_7
Patch Set: server pref changes Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/http/http_server_properties_impl.cc ('k') | net/http/http_server_properties_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/http/http_server_properties_impl.h" 5 #include "net/http/http_server_properties_impl.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 *os << alternative_service.ToString(); 42 *os << alternative_service.ToString();
43 } 43 }
44 44
45 namespace { 45 namespace {
46 46
47 const int kMaxSupportsSpdyServerHosts = 500; 47 const int kMaxSupportsSpdyServerHosts = 500;
48 const SpdySettingsIds kSpdySettingsId = SETTINGS_UPLOAD_BANDWIDTH; 48 const SpdySettingsIds kSpdySettingsId = SETTINGS_UPLOAD_BANDWIDTH;
49 const SpdySettingsFlags kSpdySettingsFlags = SETTINGS_FLAG_PERSISTED; 49 const SpdySettingsFlags kSpdySettingsFlags = SETTINGS_FLAG_PERSISTED;
50 50
51 struct SpdySettingsDataToVerify { 51 struct SpdySettingsDataToVerify {
52 HostPortPair spdy_server; 52 url::SchemeHostPort spdy_server;
53 uint32_t value; 53 uint32_t value;
54 }; 54 };
55 55
56 class HttpServerPropertiesImplTest : public testing::Test { 56 class HttpServerPropertiesImplTest : public testing::Test {
57 protected: 57 protected:
58 bool HasAlternativeService(const url::SchemeHostPort& origin) { 58 bool HasAlternativeService(const url::SchemeHostPort& origin) {
59 const AlternativeServiceVector alternative_service_vector = 59 const AlternativeServiceVector alternative_service_vector =
60 impl_.GetAlternativeServices(origin); 60 impl_.GetAlternativeServices(origin);
61 return !alternative_service_vector.empty(); 61 return !alternative_service_vector.empty();
62 } 62 }
63 63
64 bool SetAlternativeService(const url::SchemeHostPort& origin, 64 bool SetAlternativeService(const url::SchemeHostPort& origin,
65 const AlternativeService& alternative_service) { 65 const AlternativeService& alternative_service) {
66 const base::Time expiration = 66 const base::Time expiration =
67 base::Time::Now() + base::TimeDelta::FromDays(1); 67 base::Time::Now() + base::TimeDelta::FromDays(1);
68 return impl_.SetAlternativeService(origin, alternative_service, expiration); 68 return impl_.SetAlternativeService(origin, alternative_service, expiration);
69 } 69 }
70 70
71 void InitializeSpdySettingsUploadBandwidth(SpdySettingsMap* spdy_settings_map, 71 void InitializeSpdySettingsUploadBandwidth(
72 const HostPortPair& spdy_server, 72 SpdySettingsMap* spdy_settings_map,
73 uint32_t value) { 73 const url::SchemeHostPort& spdy_server,
74 uint32_t value) {
74 SettingsMap settings_map; 75 SettingsMap settings_map;
75 settings_map[kSpdySettingsId] = 76 settings_map[kSpdySettingsId] =
76 SettingsFlagsAndValue(kSpdySettingsFlags, value); 77 SettingsFlagsAndValue(kSpdySettingsFlags, value);
77 spdy_settings_map->Put(spdy_server, settings_map); 78 spdy_settings_map->Put(spdy_server, settings_map);
78 } 79 }
79 80
80 void VerifySpdySettingsUploadBandwidth( 81 void VerifySpdySettingsUploadBandwidth(
81 const SpdySettingsDataToVerify* data_to_verify) { 82 const SpdySettingsDataToVerify* data_to_verify) {
82 const SpdySettingsMap& spdy_settings_map = impl_.spdy_settings_map(); 83 const SpdySettingsMap& spdy_settings_map = impl_.spdy_settings_map();
83 int count = 0; 84 int count = 0;
(...skipping 12 matching lines...) Expand all
96 EXPECT_EQ(data.value, flags_and_value_memory.second); 97 EXPECT_EQ(data.value, flags_and_value_memory.second);
97 } 98 }
98 } 99 }
99 100
100 HttpServerPropertiesImpl impl_; 101 HttpServerPropertiesImpl impl_;
101 }; 102 };
102 103
103 typedef HttpServerPropertiesImplTest SpdyServerPropertiesTest; 104 typedef HttpServerPropertiesImplTest SpdyServerPropertiesTest;
104 105
105 TEST_F(SpdyServerPropertiesTest, Initialize) { 106 TEST_F(SpdyServerPropertiesTest, Initialize) {
106 HostPortPair spdy_server_google("www.google.com", 443); 107 // HostPortPair spdy_server_google("www.google.com", 443);
107 url::SchemeHostPort google_server("https", "www.google.com", 443); 108 url::SchemeHostPort google_server("https", "www.google.com", 443);
108 std::string spdy_server_g = spdy_server_google.ToString(); 109 std::string spdy_server_g = google_server.ToString();
109 110
110 HostPortPair spdy_server_photos("photos.google.com", 443); 111 // HostPortPair spdy_server_photos("photos.google.com", 443);
111 url::SchemeHostPort photos_server("https", "photos.google.com", 443); 112 url::SchemeHostPort photos_server("https", "photos.google.com", 443);
112 std::string spdy_server_p = spdy_server_photos.ToString(); 113 std::string spdy_server_p = photos_server.ToString();
113 114
114 HostPortPair spdy_server_docs("docs.google.com", 443); 115 // HostPortPair spdy_server_docs("docs.google.com", 443);
115 url::SchemeHostPort docs_server("https", "docs.google.com", 443); 116 url::SchemeHostPort docs_server("https", "docs.google.com", 443);
116 std::string spdy_server_d = spdy_server_docs.ToString(); 117 std::string spdy_server_d = docs_server.ToString();
117 118
118 HostPortPair spdy_server_mail("mail.google.com", 443); 119 // HostPortPair spdy_server_mail("mail.google.com", 443);
119 url::SchemeHostPort mail_server("https", "mail.google.com", 443); 120 url::SchemeHostPort mail_server("https", "mail.google.com", 443);
120 std::string spdy_server_m = spdy_server_mail.ToString(); 121 std::string spdy_server_m = mail_server.ToString();
121 122
122 // Check by initializing NULL spdy servers. 123 // Check by initializing NULL spdy servers.
123 impl_.InitializeSpdyServers(NULL, true); 124 impl_.InitializeSpdyServers(NULL, true);
124 EXPECT_FALSE(impl_.SupportsRequestPriority(google_server)); 125 EXPECT_FALSE(impl_.SupportsRequestPriority(google_server));
125 126
126 // Check by initializing empty spdy servers. 127 // Check by initializing empty spdy servers.
127 std::vector<std::string> spdy_servers; 128 std::vector<std::string> spdy_servers;
128 impl_.InitializeSpdyServers(&spdy_servers, true); 129 impl_.InitializeSpdyServers(&spdy_servers, true);
129 EXPECT_FALSE(impl_.SupportsRequestPriority(google_server)); 130 EXPECT_FALSE(impl_.SupportsRequestPriority(google_server));
130 131
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 EXPECT_FALSE(impl_.SupportsRequestPriority(photos_server)); 204 EXPECT_FALSE(impl_.SupportsRequestPriority(photos_server));
204 EXPECT_TRUE(impl_.SupportsRequestPriority(google_server)); 205 EXPECT_TRUE(impl_.SupportsRequestPriority(google_server));
205 } 206 }
206 207
207 TEST_F(SpdyServerPropertiesTest, SupportsRequestPriorityTest) { 208 TEST_F(SpdyServerPropertiesTest, SupportsRequestPriorityTest) {
208 url::SchemeHostPort spdy_server_empty("https", std::string(), 443); 209 url::SchemeHostPort spdy_server_empty("https", std::string(), 443);
209 210
210 EXPECT_FALSE(impl_.SupportsRequestPriority(spdy_server_empty)); 211 EXPECT_FALSE(impl_.SupportsRequestPriority(spdy_server_empty));
211 212
212 // Add www.google.com:443 as supporting SPDY. 213 // Add www.google.com:443 as supporting SPDY.
213 HostPortPair spdy_server_google("www.google.com", 443); 214 // HostPortPair spdy_server_google("www.google.com", 443);
214 url::SchemeHostPort google_server("https", "www.google.com", 443); 215 url::SchemeHostPort google_server("https", "www.google.com", 443);
215 impl_.SetSupportsSpdy(spdy_server_google, true); 216 impl_.SetSupportsSpdy(google_server, true);
216 EXPECT_TRUE(impl_.SupportsRequestPriority(google_server)); 217 EXPECT_TRUE(impl_.SupportsRequestPriority(google_server));
217 218
218 // Add mail.google.com:443 as not supporting SPDY. 219 // Add mail.google.com:443 as not supporting SPDY.
219 url::SchemeHostPort spdy_server_mail("https", "mail.google.com", 443); 220 url::SchemeHostPort spdy_server_mail("https", "mail.google.com", 443);
220 EXPECT_FALSE(impl_.SupportsRequestPriority(spdy_server_mail)); 221 EXPECT_FALSE(impl_.SupportsRequestPriority(spdy_server_mail));
221 222
222 // Add docs.google.com:443 as supporting SPDY. 223 // Add docs.google.com:443 as supporting SPDY.
223 HostPortPair spdy_server_docs("docs.google.com", 443); 224 // HostPortPair spdy_server_docs("docs.google.com", 443);
224 url::SchemeHostPort docs_server("https", "docs.google.com", 443); 225 url::SchemeHostPort docs_server("https", "docs.google.com", 443);
225 impl_.SetSupportsSpdy(spdy_server_docs, true); 226 impl_.SetSupportsSpdy(docs_server, true);
226 EXPECT_TRUE(impl_.SupportsRequestPriority(docs_server)); 227 EXPECT_TRUE(impl_.SupportsRequestPriority(docs_server));
227 228
228 // Add www.youtube.com:443 as supporting QUIC. 229 // Add www.youtube.com:443 as supporting QUIC.
229 url::SchemeHostPort quic_server_youtube("https", "www.youtube.com", 443); 230 url::SchemeHostPort quic_server_youtube("https", "www.youtube.com", 443);
230 const AlternativeService alternative_service1(QUIC, "www.youtube.com", 443); 231 const AlternativeService alternative_service1(QUIC, "www.youtube.com", 443);
231 SetAlternativeService(quic_server_youtube, alternative_service1); 232 SetAlternativeService(quic_server_youtube, alternative_service1);
232 EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_youtube)); 233 EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_youtube));
233 234
234 // Add www.example.com:443 with two alternative services, one supporting QUIC. 235 // Add www.example.com:443 with two alternative services, one supporting QUIC.
235 url::SchemeHostPort quic_server_example("https", "www.example.com", 443); 236 url::SchemeHostPort quic_server_example("https", "www.example.com", 443);
236 const AlternativeService alternative_service2(NPN_HTTP_2, "", 443); 237 const AlternativeService alternative_service2(NPN_HTTP_2, "", 443);
237 SetAlternativeService(quic_server_example, alternative_service2); 238 SetAlternativeService(quic_server_example, alternative_service2);
238 SetAlternativeService(quic_server_example, alternative_service1); 239 SetAlternativeService(quic_server_example, alternative_service1);
239 EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_example)); 240 EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_example));
240 241
241 // Verify all the entries are the same after additions. 242 // Verify all the entries are the same after additions.
242 EXPECT_TRUE(impl_.SupportsRequestPriority(google_server)); 243 EXPECT_TRUE(impl_.SupportsRequestPriority(google_server));
243 EXPECT_FALSE(impl_.SupportsRequestPriority(spdy_server_mail)); 244 EXPECT_FALSE(impl_.SupportsRequestPriority(spdy_server_mail));
244 EXPECT_TRUE(impl_.SupportsRequestPriority(docs_server)); 245 EXPECT_TRUE(impl_.SupportsRequestPriority(docs_server));
245 EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_youtube)); 246 EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_youtube));
246 EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_example)); 247 EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_example));
247 } 248 }
248 249
249 TEST_F(SpdyServerPropertiesTest, Clear) { 250 TEST_F(SpdyServerPropertiesTest, Clear) {
250 // Add www.google.com:443 and mail.google.com:443 as supporting SPDY. 251 // Add www.google.com:443 and mail.google.com:443 as supporting SPDY.
251 HostPortPair spdy_server_google("www.google.com", 443); 252 // HostPortPair spdy_server_google("www.google.com", 443);
252 url::SchemeHostPort google_server("https", "www.google.com", 443); 253 url::SchemeHostPort google_server("https", "www.google.com", 443);
253 impl_.SetSupportsSpdy(spdy_server_google, true); 254 impl_.SetSupportsSpdy(google_server, true);
254 HostPortPair spdy_server_mail("mail.google.com", 443); 255 // HostPortPair spdy_server_mail("mail.google.com", 443);
255 url::SchemeHostPort mail_server("https", "mail.google.com", 443); 256 url::SchemeHostPort mail_server("https", "mail.google.com", 443);
256 impl_.SetSupportsSpdy(spdy_server_mail, true); 257 impl_.SetSupportsSpdy(mail_server, true);
257 258
258 EXPECT_TRUE(impl_.SupportsRequestPriority(google_server)); 259 EXPECT_TRUE(impl_.SupportsRequestPriority(google_server));
259 EXPECT_TRUE(impl_.SupportsRequestPriority(mail_server)); 260 EXPECT_TRUE(impl_.SupportsRequestPriority(mail_server));
260 261
261 impl_.Clear(); 262 impl_.Clear();
262 EXPECT_FALSE(impl_.SupportsRequestPriority(google_server)); 263 EXPECT_FALSE(impl_.SupportsRequestPriority(google_server));
263 EXPECT_FALSE(impl_.SupportsRequestPriority(mail_server)); 264 EXPECT_FALSE(impl_.SupportsRequestPriority(mail_server));
264 } 265 }
265 266
266 TEST_F(SpdyServerPropertiesTest, GetSpdyServerList) { 267 TEST_F(SpdyServerPropertiesTest, GetSpdyServerList) {
267 base::ListValue spdy_server_list; 268 base::ListValue spdy_server_list;
268 269
269 // Check there are no spdy_servers. 270 // Check there are no spdy_servers.
270 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts); 271 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts);
271 EXPECT_EQ(0U, spdy_server_list.GetSize()); 272 EXPECT_EQ(0U, spdy_server_list.GetSize());
272 273
273 // Check empty server is not added. 274 // Check empty server is not added.
274 HostPortPair spdy_server_empty(std::string(), 443); 275 // HostPortPair spdy_server_empty(std::string(), 443);
275 url::SchemeHostPort empty_server("https", std::string(), 443); 276 url::SchemeHostPort empty_server("https", std::string(), 443);
276 impl_.SetSupportsSpdy(spdy_server_empty, true); 277 impl_.SetSupportsSpdy(empty_server, true);
277 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts); 278 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts);
278 EXPECT_EQ(0U, spdy_server_list.GetSize()); 279 EXPECT_EQ(0U, spdy_server_list.GetSize());
279 280
280 std::string string_value_g; 281 std::string string_value_g;
281 std::string string_value_m; 282 std::string string_value_m;
282 HostPortPair spdy_server_google("www.google.com", 443); 283 // HostPortPair spdy_server_google("www.google.com", 443);
283 url::SchemeHostPort google_server("https", "www.google.com", 443); 284 url::SchemeHostPort google_server("https", "www.google.com", 443);
284 std::string spdy_server_g = spdy_server_google.ToString(); 285 std::string spdy_server_g = google_server.ToString();
285 HostPortPair spdy_server_mail("mail.google.com", 443); 286 // HostPortPair spdy_server_mail("mail.google.com", 443);
286 url::SchemeHostPort mail_server("https", "mail.google.com", 443); 287 url::SchemeHostPort mail_server("https", "mail.google.com", 443);
287 std::string spdy_server_m = spdy_server_mail.ToString(); 288 std::string spdy_server_m = mail_server.ToString();
288 289
289 // Add www.google.com:443 as not supporting SPDY. 290 // Add www.google.com:443 as not supporting SPDY.
290 impl_.SetSupportsSpdy(spdy_server_google, false); 291 impl_.SetSupportsSpdy(google_server, false);
291 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts); 292 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts);
292 EXPECT_EQ(0U, spdy_server_list.GetSize()); 293 EXPECT_EQ(0U, spdy_server_list.GetSize());
293 294
294 // Add www.google.com:443 as supporting SPDY. 295 // Add www.google.com:443 as supporting SPDY.
295 impl_.SetSupportsSpdy(spdy_server_google, true); 296 impl_.SetSupportsSpdy(google_server, true);
296 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts); 297 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts);
297 ASSERT_EQ(1U, spdy_server_list.GetSize()); 298 ASSERT_EQ(1U, spdy_server_list.GetSize());
298 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_g)); 299 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_g));
299 ASSERT_EQ(spdy_server_g, string_value_g); 300 ASSERT_EQ(spdy_server_g, string_value_g);
300 301
301 // Add mail.google.com:443 as not supporting SPDY. 302 // Add mail.google.com:443 as not supporting SPDY.
302 impl_.SetSupportsSpdy(spdy_server_mail, false); 303 impl_.SetSupportsSpdy(mail_server, false);
303 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts); 304 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts);
304 ASSERT_EQ(1U, spdy_server_list.GetSize()); 305 ASSERT_EQ(1U, spdy_server_list.GetSize());
305 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_g)); 306 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_g));
306 ASSERT_EQ(spdy_server_g, string_value_g); 307 ASSERT_EQ(spdy_server_g, string_value_g);
307 308
308 // Add mail.google.com:443 as supporting SPDY. 309 // Add mail.google.com:443 as supporting SPDY.
309 impl_.SetSupportsSpdy(spdy_server_mail, true); 310 impl_.SetSupportsSpdy(mail_server, true);
310 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts); 311 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts);
311 ASSERT_EQ(2U, spdy_server_list.GetSize()); 312 ASSERT_EQ(2U, spdy_server_list.GetSize());
312 313
313 // Verify www.google.com:443 and mail.google.com:443 are in the list. 314 // Verify www.google.com:443 and mail.google.com:443 are in the list.
314 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_m)); 315 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_m));
315 ASSERT_EQ(spdy_server_m, string_value_m); 316 ASSERT_EQ(spdy_server_m, string_value_m);
316 ASSERT_TRUE(spdy_server_list.GetString(1, &string_value_g)); 317 ASSERT_TRUE(spdy_server_list.GetString(1, &string_value_g));
317 ASSERT_EQ(spdy_server_g, string_value_g); 318 ASSERT_EQ(spdy_server_g, string_value_g);
318 319
319 // Request for only one server and verify that we get only one server. 320 // Request for only one server and verify that we get only one server.
320 impl_.GetSpdyServerList(&spdy_server_list, 1); 321 impl_.GetSpdyServerList(&spdy_server_list, 1);
321 ASSERT_EQ(1U, spdy_server_list.GetSize()); 322 ASSERT_EQ(1U, spdy_server_list.GetSize());
322 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_m)); 323 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_m));
323 ASSERT_EQ(spdy_server_m, string_value_m); 324 ASSERT_EQ(spdy_server_m, string_value_m);
324 } 325 }
325 326
326 TEST_F(SpdyServerPropertiesTest, MRUOfGetSpdyServerList) { 327 TEST_F(SpdyServerPropertiesTest, MRUOfGetSpdyServerList) {
327 base::ListValue spdy_server_list; 328 base::ListValue spdy_server_list;
328 329
329 std::string string_value_g; 330 std::string string_value_g;
330 std::string string_value_m; 331 std::string string_value_m;
331 HostPortPair spdy_server_google("www.google.com", 443); 332 // HostPortPair spdy_server_google("www.google.com", 443);
332 url::SchemeHostPort google_server("https", "www.google.com", 443); 333 url::SchemeHostPort google_server("https", "www.google.com", 443);
333 std::string spdy_server_g = spdy_server_google.ToString(); 334 std::string spdy_server_g = google_server.ToString();
334 HostPortPair spdy_server_mail("mail.google.com", 443); 335 // HostPortPair spdy_server_mail("mail.google.com", 443);
335 url::SchemeHostPort mail_server("https", "mail.google.com", 443); 336 url::SchemeHostPort mail_server("https", "mail.google.com", 443);
336 std::string spdy_server_m = spdy_server_mail.ToString(); 337 std::string spdy_server_m = mail_server.ToString();
337 338
338 // Add www.google.com:443 as supporting SPDY. 339 // Add www.google.com:443 as supporting SPDY.
339 impl_.SetSupportsSpdy(spdy_server_google, true); 340 impl_.SetSupportsSpdy(google_server, true);
340 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts); 341 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts);
341 ASSERT_EQ(1U, spdy_server_list.GetSize()); 342 ASSERT_EQ(1U, spdy_server_list.GetSize());
342 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_g)); 343 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_g));
343 ASSERT_EQ(spdy_server_g, string_value_g); 344 ASSERT_EQ(spdy_server_g, string_value_g);
344 345
345 // Add mail.google.com:443 as supporting SPDY. Verify mail.google.com:443 and 346 // Add mail.google.com:443 as supporting SPDY. Verify mail.google.com:443 and
346 // www.google.com:443 are in the list. 347 // www.google.com:443 are in the list.
347 impl_.SetSupportsSpdy(spdy_server_mail, true); 348 impl_.SetSupportsSpdy(mail_server, true);
348 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts); 349 impl_.GetSpdyServerList(&spdy_server_list, kMaxSupportsSpdyServerHosts);
349 ASSERT_EQ(2U, spdy_server_list.GetSize()); 350 ASSERT_EQ(2U, spdy_server_list.GetSize());
350 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_m)); 351 ASSERT_TRUE(spdy_server_list.GetString(0, &string_value_m));
351 ASSERT_EQ(spdy_server_m, string_value_m); 352 ASSERT_EQ(spdy_server_m, string_value_m);
352 ASSERT_TRUE(spdy_server_list.GetString(1, &string_value_g)); 353 ASSERT_TRUE(spdy_server_list.GetString(1, &string_value_g));
353 ASSERT_EQ(spdy_server_g, string_value_g); 354 ASSERT_EQ(spdy_server_g, string_value_g);
354 355
355 // Get www.google.com:443 should reorder SpdyServerHostPortMap. Verify that it 356 // Get www.google.com:443 should reorder SpdyServerHostPortMap. Verify that it
356 // is www.google.com:443 is the MRU server. 357 // is www.google.com:443 is the MRU server.
357 EXPECT_TRUE(impl_.SupportsRequestPriority(google_server)); 358 EXPECT_TRUE(impl_.SupportsRequestPriority(google_server));
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after
994 995
995 EXPECT_TRUE( 996 EXPECT_TRUE(
996 impl_.WasAlternativeServiceRecentlyBroken(bar_alternative_service)); 997 impl_.WasAlternativeServiceRecentlyBroken(bar_alternative_service));
997 EXPECT_FALSE( 998 EXPECT_FALSE(
998 impl_.WasAlternativeServiceRecentlyBroken(baz_alternative_service)); 999 impl_.WasAlternativeServiceRecentlyBroken(baz_alternative_service));
999 } 1000 }
1000 1001
1001 typedef HttpServerPropertiesImplTest SpdySettingsServerPropertiesTest; 1002 typedef HttpServerPropertiesImplTest SpdySettingsServerPropertiesTest;
1002 1003
1003 TEST_F(SpdySettingsServerPropertiesTest, Initialize) { 1004 TEST_F(SpdySettingsServerPropertiesTest, Initialize) {
1004 HostPortPair spdy_server_google("www.google.com", 443); 1005 url::SchemeHostPort spdy_server_google("https", "www.google.com", 443);
1005 HostPortPair spdy_server_photos("photos.google.com", 443); 1006
1006 HostPortPair spdy_server_docs("docs.google.com", 443); 1007 url::SchemeHostPort spdy_server_photos("https", "photos.google.com", 443);
1007 HostPortPair spdy_server_mail("mail.google.com", 443); 1008 url::SchemeHostPort spdy_server_docs("https", "docs.google.com", 443);
1009 url::SchemeHostPort spdy_server_mail("https", "mail.google.com", 443);
1008 1010
1009 // Check by initializing empty spdy settings. 1011 // Check by initializing empty spdy settings.
1010 SpdySettingsMap spdy_settings_map(SpdySettingsMap::NO_AUTO_EVICT); 1012 SpdySettingsMap spdy_settings_map(SpdySettingsMap::NO_AUTO_EVICT);
1011 impl_.InitializeSpdySettingsServers(&spdy_settings_map); 1013 impl_.InitializeSpdySettingsServers(&spdy_settings_map);
1012 EXPECT_TRUE(impl_.GetSpdySettings(spdy_server_google).empty()); 1014 EXPECT_TRUE(impl_.GetSpdySettings(spdy_server_google).empty());
1013 1015
1014 // Check by initializing spdy server settings for www.google.com:443 and 1016 // Check by initializing spdy server settings for www.google.com:443 and
1015 // photos.google.com:443. 1017 // photos.google.com:443.
1016 const SpdySettingsDataToVerify data_to_verify1[] = { 1018 const SpdySettingsDataToVerify data_to_verify1[] = {
1017 {spdy_server_google, 10000}, {spdy_server_photos, 20000}, 1019 {spdy_server_google, 10000}, {spdy_server_photos, 20000},
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1059 data_to_verify3[3].spdy_server, 1061 data_to_verify3[3].spdy_server,
1060 data_to_verify3[3].value); 1062 data_to_verify3[3].value);
1061 InitializeSpdySettingsUploadBandwidth(&spdy_settings_map3, 1063 InitializeSpdySettingsUploadBandwidth(&spdy_settings_map3,
1062 data_to_verify3[1].spdy_server, 1064 data_to_verify3[1].spdy_server,
1063 data_to_verify3[1].value); 1065 data_to_verify3[1].value);
1064 impl_.InitializeSpdySettingsServers(&spdy_settings_map3); 1066 impl_.InitializeSpdySettingsServers(&spdy_settings_map3);
1065 VerifySpdySettingsUploadBandwidth(data_to_verify3); 1067 VerifySpdySettingsUploadBandwidth(data_to_verify3);
1066 } 1068 }
1067 1069
1068 TEST_F(SpdySettingsServerPropertiesTest, SetSpdySetting) { 1070 TEST_F(SpdySettingsServerPropertiesTest, SetSpdySetting) {
1069 HostPortPair spdy_server_empty(std::string(), 443); 1071 url::SchemeHostPort spdy_server_empty("https", std::string(), 443);
1070 const SettingsMap& settings_map0 = impl_.GetSpdySettings(spdy_server_empty); 1072 const SettingsMap& settings_map0 = impl_.GetSpdySettings(spdy_server_empty);
1071 EXPECT_EQ(0U, settings_map0.size()); // Returns kEmptySettingsMap. 1073 EXPECT_EQ(0U, settings_map0.size()); // Returns kEmptySettingsMap.
1072 1074
1073 // Add www.google.com:443 as persisting. 1075 // Add www.google.com:443 as persisting.
1074 HostPortPair spdy_server_google("www.google.com", 443); 1076 url::SchemeHostPort spdy_server_google("https", "www.google.com", 443);
1075 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; 1077 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH;
1076 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; 1078 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST;
1077 const uint32_t value1 = 31337; 1079 const uint32_t value1 = 31337;
1078 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_google, id1, flags1, value1)); 1080 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_google, id1, flags1, value1));
1079 // Check the values. 1081 // Check the values.
1080 const SettingsMap& settings_map1_ret = 1082 const SettingsMap& settings_map1_ret =
1081 impl_.GetSpdySettings(spdy_server_google); 1083 impl_.GetSpdySettings(spdy_server_google);
1082 ASSERT_EQ(1U, settings_map1_ret.size()); 1084 ASSERT_EQ(1U, settings_map1_ret.size());
1083 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); 1085 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
1084 EXPECT_TRUE(it1_ret != settings_map1_ret.end()); 1086 EXPECT_TRUE(it1_ret != settings_map1_ret.end());
1085 SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; 1087 SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
1086 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); 1088 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
1087 EXPECT_EQ(value1, flags_and_value1_ret.second); 1089 EXPECT_EQ(value1, flags_and_value1_ret.second);
1088 1090
1089 // Add mail.google.com:443 as not persisting. 1091 // Add mail.google.com:443 as not persisting.
1090 HostPortPair spdy_server_mail("mail.google.com", 443); 1092 url::SchemeHostPort spdy_server_mail("https", "mail.google.com", 443);
1091 const SpdySettingsIds id2 = SETTINGS_DOWNLOAD_BANDWIDTH; 1093 const SpdySettingsIds id2 = SETTINGS_DOWNLOAD_BANDWIDTH;
1092 const SpdySettingsFlags flags2 = SETTINGS_FLAG_NONE; 1094 const SpdySettingsFlags flags2 = SETTINGS_FLAG_NONE;
1093 const uint32_t value2 = 62667; 1095 const uint32_t value2 = 62667;
1094 EXPECT_FALSE(impl_.SetSpdySetting(spdy_server_mail, id2, flags2, value2)); 1096 EXPECT_FALSE(impl_.SetSpdySetting(spdy_server_mail, id2, flags2, value2));
1095 const SettingsMap& settings_map2_ret = 1097 const SettingsMap& settings_map2_ret =
1096 impl_.GetSpdySettings(spdy_server_mail); 1098 impl_.GetSpdySettings(spdy_server_mail);
1097 EXPECT_EQ(0U, settings_map2_ret.size()); // Returns kEmptySettingsMap. 1099 EXPECT_EQ(0U, settings_map2_ret.size()); // Returns kEmptySettingsMap.
1098 1100
1099 // Add docs.google.com:443 as persisting 1101 // Add docs.google.com:443 as persisting
1100 HostPortPair spdy_server_docs("docs.google.com", 443); 1102 url::SchemeHostPort spdy_server_docs("https", "docs.google.com", 443);
1101 const SpdySettingsIds id3 = SETTINGS_ROUND_TRIP_TIME; 1103 const SpdySettingsIds id3 = SETTINGS_ROUND_TRIP_TIME;
1102 const SpdySettingsFlags flags3 = SETTINGS_FLAG_PLEASE_PERSIST; 1104 const SpdySettingsFlags flags3 = SETTINGS_FLAG_PLEASE_PERSIST;
1103 const uint32_t value3 = 93997; 1105 const uint32_t value3 = 93997;
1104 SettingsFlagsAndValue flags_and_value3(flags3, value3); 1106 SettingsFlagsAndValue flags_and_value3(flags3, value3);
1105 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_docs, id3, flags3, value3)); 1107 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_docs, id3, flags3, value3));
1106 // Check the values. 1108 // Check the values.
1107 const SettingsMap& settings_map3_ret = 1109 const SettingsMap& settings_map3_ret =
1108 impl_.GetSpdySettings(spdy_server_docs); 1110 impl_.GetSpdySettings(spdy_server_docs);
1109 ASSERT_EQ(1U, settings_map3_ret.size()); 1111 ASSERT_EQ(1U, settings_map3_ret.size());
1110 SettingsMap::const_iterator it3_ret = settings_map3_ret.find(id3); 1112 SettingsMap::const_iterator it3_ret = settings_map3_ret.find(id3);
(...skipping 20 matching lines...) Expand all
1131 ASSERT_EQ(0U, settings_map5_ret.size()); 1133 ASSERT_EQ(0U, settings_map5_ret.size());
1132 1134
1133 // Clear all settings. 1135 // Clear all settings.
1134 ASSERT_GT(impl_.spdy_settings_map().size(), 0U); 1136 ASSERT_GT(impl_.spdy_settings_map().size(), 0U);
1135 impl_.ClearAllSpdySettings(); 1137 impl_.ClearAllSpdySettings();
1136 ASSERT_EQ(0U, impl_.spdy_settings_map().size()); 1138 ASSERT_EQ(0U, impl_.spdy_settings_map().size());
1137 } 1139 }
1138 1140
1139 TEST_F(SpdySettingsServerPropertiesTest, Clear) { 1141 TEST_F(SpdySettingsServerPropertiesTest, Clear) {
1140 // Add www.google.com:443 as persisting. 1142 // Add www.google.com:443 as persisting.
1141 HostPortPair spdy_server_google("www.google.com", 443); 1143 url::SchemeHostPort spdy_server_google("https", "www.google.com", 443);
1142 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; 1144 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH;
1143 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; 1145 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST;
1144 const uint32_t value1 = 31337; 1146 const uint32_t value1 = 31337;
1145 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_google, id1, flags1, value1)); 1147 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_google, id1, flags1, value1));
1146 // Check the values. 1148 // Check the values.
1147 const SettingsMap& settings_map1_ret = 1149 const SettingsMap& settings_map1_ret =
1148 impl_.GetSpdySettings(spdy_server_google); 1150 impl_.GetSpdySettings(spdy_server_google);
1149 ASSERT_EQ(1U, settings_map1_ret.size()); 1151 ASSERT_EQ(1U, settings_map1_ret.size());
1150 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); 1152 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
1151 EXPECT_TRUE(it1_ret != settings_map1_ret.end()); 1153 EXPECT_TRUE(it1_ret != settings_map1_ret.end());
1152 SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; 1154 SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
1153 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); 1155 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
1154 EXPECT_EQ(value1, flags_and_value1_ret.second); 1156 EXPECT_EQ(value1, flags_and_value1_ret.second);
1155 1157
1156 // Add docs.google.com:443 as persisting 1158 // Add docs.google.com:443 as persisting
1157 HostPortPair spdy_server_docs("docs.google.com", 443); 1159 url::SchemeHostPort spdy_server_docs("https", "docs.google.com", 443);
1158 const SpdySettingsIds id3 = SETTINGS_ROUND_TRIP_TIME; 1160 const SpdySettingsIds id3 = SETTINGS_ROUND_TRIP_TIME;
1159 const SpdySettingsFlags flags3 = SETTINGS_FLAG_PLEASE_PERSIST; 1161 const SpdySettingsFlags flags3 = SETTINGS_FLAG_PLEASE_PERSIST;
1160 const uint32_t value3 = 93997; 1162 const uint32_t value3 = 93997;
1161 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_docs, id3, flags3, value3)); 1163 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_docs, id3, flags3, value3));
1162 // Check the values. 1164 // Check the values.
1163 const SettingsMap& settings_map3_ret = 1165 const SettingsMap& settings_map3_ret =
1164 impl_.GetSpdySettings(spdy_server_docs); 1166 impl_.GetSpdySettings(spdy_server_docs);
1165 ASSERT_EQ(1U, settings_map3_ret.size()); 1167 ASSERT_EQ(1U, settings_map3_ret.size());
1166 SettingsMap::const_iterator it3_ret = settings_map3_ret.find(id3); 1168 SettingsMap::const_iterator it3_ret = settings_map3_ret.find(id3);
1167 EXPECT_TRUE(it3_ret != settings_map3_ret.end()); 1169 EXPECT_TRUE(it3_ret != settings_map3_ret.end());
1168 SettingsFlagsAndValue flags_and_value3_ret = it3_ret->second; 1170 SettingsFlagsAndValue flags_and_value3_ret = it3_ret->second;
1169 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value3_ret.first); 1171 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value3_ret.first);
1170 EXPECT_EQ(value3, flags_and_value3_ret.second); 1172 EXPECT_EQ(value3, flags_and_value3_ret.second);
1171 1173
1172 impl_.Clear(); 1174 impl_.Clear();
1173 EXPECT_EQ(0U, impl_.GetSpdySettings(spdy_server_google).size()); 1175 EXPECT_EQ(0U, impl_.GetSpdySettings(spdy_server_google).size());
1174 EXPECT_EQ(0U, impl_.GetSpdySettings(spdy_server_docs).size()); 1176 EXPECT_EQ(0U, impl_.GetSpdySettings(spdy_server_docs).size());
1175 } 1177 }
1176 1178
1177 TEST_F(SpdySettingsServerPropertiesTest, MRUOfGetSpdySettings) { 1179 TEST_F(SpdySettingsServerPropertiesTest, MRUOfGetSpdySettings) {
1178 // Add www.google.com:443 as persisting. 1180 // Add www.google.com:443 as persisting.
1179 HostPortPair spdy_server_google("www.google.com", 443); 1181 url::SchemeHostPort spdy_server_google("https", "www.google.com", 443);
1180 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; 1182 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH;
1181 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; 1183 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST;
1182 const uint32_t value1 = 31337; 1184 const uint32_t value1 = 31337;
1183 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_google, id1, flags1, value1)); 1185 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_google, id1, flags1, value1));
1184 1186
1185 // Add docs.google.com:443 as persisting 1187 // Add docs.google.com:443 as persisting
1186 HostPortPair spdy_server_docs("docs.google.com", 443); 1188 url::SchemeHostPort spdy_server_docs("https", "docs.google.com", 443);
1187 const SpdySettingsIds id2 = SETTINGS_ROUND_TRIP_TIME; 1189 const SpdySettingsIds id2 = SETTINGS_ROUND_TRIP_TIME;
1188 const SpdySettingsFlags flags2 = SETTINGS_FLAG_PLEASE_PERSIST; 1190 const SpdySettingsFlags flags2 = SETTINGS_FLAG_PLEASE_PERSIST;
1189 const uint32_t value2 = 93997; 1191 const uint32_t value2 = 93997;
1190 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_docs, id2, flags2, value2)); 1192 EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_docs, id2, flags2, value2));
1191 1193
1192 // Verify the first element is docs.google.com:443. 1194 // Verify the first element is docs.google.com:443.
1193 const SpdySettingsMap& map = impl_.spdy_settings_map(); 1195 const SpdySettingsMap& map = impl_.spdy_settings_map();
1194 SpdySettingsMap::const_iterator it = map.begin(); 1196 SpdySettingsMap::const_iterator it = map.begin();
1195 EXPECT_TRUE(it->first.Equals(spdy_server_docs)); 1197 EXPECT_TRUE(it->first.Equals(spdy_server_docs));
1196 const SettingsMap& settings_map2_ret = it->second; 1198 const SettingsMap& settings_map2_ret = it->second;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1256 EXPECT_EQ(actual_address, address); 1258 EXPECT_EQ(actual_address, address);
1257 1259
1258 impl_.Clear(); 1260 impl_.Clear();
1259 1261
1260 EXPECT_FALSE(impl_.GetSupportsQuic(&address)); 1262 EXPECT_FALSE(impl_.GetSupportsQuic(&address));
1261 } 1263 }
1262 1264
1263 typedef HttpServerPropertiesImplTest ServerNetworkStatsServerPropertiesTest; 1265 typedef HttpServerPropertiesImplTest ServerNetworkStatsServerPropertiesTest;
1264 1266
1265 TEST_F(ServerNetworkStatsServerPropertiesTest, Initialize) { 1267 TEST_F(ServerNetworkStatsServerPropertiesTest, Initialize) {
1266 HostPortPair google_server("www.google.com", 443); 1268 url::SchemeHostPort google_server("https", "www.google.com", 443);
1267 1269
1268 // Check by initializing empty ServerNetworkStats. 1270 // Check by initializing empty ServerNetworkStats.
1269 ServerNetworkStatsMap init_server_network_stats_map( 1271 ServerNetworkStatsMap init_server_network_stats_map(
1270 ServerNetworkStatsMap::NO_AUTO_EVICT); 1272 ServerNetworkStatsMap::NO_AUTO_EVICT);
1271 impl_.InitializeServerNetworkStats(&init_server_network_stats_map); 1273 impl_.InitializeServerNetworkStats(&init_server_network_stats_map);
1272 const ServerNetworkStats* stats = impl_.GetServerNetworkStats(google_server); 1274 const ServerNetworkStats* stats = impl_.GetServerNetworkStats(google_server);
1273 EXPECT_EQ(NULL, stats); 1275 EXPECT_EQ(NULL, stats);
1274 1276
1275 // Check by initializing with www.google.com:443. 1277 // Check by initializing with www.google.com:443.
1276 ServerNetworkStats stats_google; 1278 ServerNetworkStats stats_google;
1277 stats_google.srtt = base::TimeDelta::FromMicroseconds(10); 1279 stats_google.srtt = base::TimeDelta::FromMicroseconds(10);
1278 stats_google.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(100); 1280 stats_google.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(100);
1279 init_server_network_stats_map.Put(google_server, stats_google); 1281 init_server_network_stats_map.Put(google_server, stats_google);
1280 impl_.InitializeServerNetworkStats(&init_server_network_stats_map); 1282 impl_.InitializeServerNetworkStats(&init_server_network_stats_map);
1281 1283
1282 // Verify data for www.google.com:443. 1284 // Verify data for www.google.com:443.
1283 ASSERT_EQ(1u, impl_.server_network_stats_map().size()); 1285 ASSERT_EQ(1u, impl_.server_network_stats_map().size());
1284 EXPECT_EQ(stats_google, *(impl_.GetServerNetworkStats(google_server))); 1286 EXPECT_EQ(stats_google, *(impl_.GetServerNetworkStats(google_server)));
1285 1287
1286 // Test recency order and overwriting of data. 1288 // Test recency order and overwriting of data.
1287 // 1289 //
1288 // |docs_server| has a ServerNetworkStats, which will be overwritten by 1290 // |docs_server| has a ServerNetworkStats, which will be overwritten by
1289 // InitializeServerNetworkStats(), because |server_network_stats_map| has an 1291 // InitializeServerNetworkStats(), because |server_network_stats_map| has an
1290 // entry for |docs_server|. 1292 // entry for |docs_server|.
1291 HostPortPair docs_server("docs.google.com", 443); 1293 url::SchemeHostPort docs_server("https", "docs.google.com", 443);
1292 ServerNetworkStats stats_docs; 1294 ServerNetworkStats stats_docs;
1293 stats_docs.srtt = base::TimeDelta::FromMicroseconds(20); 1295 stats_docs.srtt = base::TimeDelta::FromMicroseconds(20);
1294 stats_docs.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(200); 1296 stats_docs.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(200);
1295 // Recency order will be |docs_server| and |google_server|. 1297 // Recency order will be |docs_server| and |google_server|.
1296 impl_.SetServerNetworkStats(docs_server, stats_docs); 1298 impl_.SetServerNetworkStats(docs_server, stats_docs);
1297 1299
1298 // Prepare |server_network_stats_map| to be loaded by 1300 // Prepare |server_network_stats_map| to be loaded by
1299 // InitializeServerNetworkStats(). 1301 // InitializeServerNetworkStats().
1300 ServerNetworkStatsMap server_network_stats_map( 1302 ServerNetworkStatsMap server_network_stats_map(
1301 ServerNetworkStatsMap::NO_AUTO_EVICT); 1303 ServerNetworkStatsMap::NO_AUTO_EVICT);
1302 1304
1303 // Change the values for |docs_server|. 1305 // Change the values for |docs_server|.
1304 ServerNetworkStats new_stats_docs; 1306 ServerNetworkStats new_stats_docs;
1305 new_stats_docs.srtt = base::TimeDelta::FromMicroseconds(25); 1307 new_stats_docs.srtt = base::TimeDelta::FromMicroseconds(25);
1306 new_stats_docs.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(250); 1308 new_stats_docs.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(250);
1307 server_network_stats_map.Put(docs_server, new_stats_docs); 1309 server_network_stats_map.Put(docs_server, new_stats_docs);
1308 // Add data for mail.google.com:443. 1310 // Add data for mail.google.com:443.
1309 HostPortPair mail_server("mail.google.com", 443); 1311 url::SchemeHostPort mail_server("https", "mail.google.com", 443);
1310 ServerNetworkStats stats_mail; 1312 ServerNetworkStats stats_mail;
1311 stats_mail.srtt = base::TimeDelta::FromMicroseconds(30); 1313 stats_mail.srtt = base::TimeDelta::FromMicroseconds(30);
1312 stats_mail.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(300); 1314 stats_mail.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(300);
1313 server_network_stats_map.Put(mail_server, stats_mail); 1315 server_network_stats_map.Put(mail_server, stats_mail);
1314 1316
1315 // Recency order will be |docs_server|, |google_server| and |mail_server|. 1317 // Recency order will be |docs_server|, |google_server| and |mail_server|.
1316 impl_.InitializeServerNetworkStats(&server_network_stats_map); 1318 impl_.InitializeServerNetworkStats(&server_network_stats_map);
1317 1319
1318 const ServerNetworkStatsMap& map = impl_.server_network_stats_map(); 1320 const ServerNetworkStatsMap& map = impl_.server_network_stats_map();
1319 ASSERT_EQ(3u, map.size()); 1321 ASSERT_EQ(3u, map.size());
1320 ServerNetworkStatsMap::const_iterator map_it = map.begin(); 1322 ServerNetworkStatsMap::const_iterator map_it = map.begin();
1321 1323
1322 EXPECT_TRUE(map_it->first.Equals(docs_server)); 1324 EXPECT_TRUE(map_it->first.Equals(docs_server));
1323 EXPECT_EQ(new_stats_docs, map_it->second); 1325 EXPECT_EQ(new_stats_docs, map_it->second);
1324 ++map_it; 1326 ++map_it;
1325 EXPECT_TRUE(map_it->first.Equals(google_server)); 1327 EXPECT_TRUE(map_it->first.Equals(google_server));
1326 EXPECT_EQ(stats_google, map_it->second); 1328 EXPECT_EQ(stats_google, map_it->second);
1327 ++map_it; 1329 ++map_it;
1328 EXPECT_TRUE(map_it->first.Equals(mail_server)); 1330 EXPECT_TRUE(map_it->first.Equals(mail_server));
1329 EXPECT_EQ(stats_mail, map_it->second); 1331 EXPECT_EQ(stats_mail, map_it->second);
1330 } 1332 }
1331 1333
1332 TEST_F(ServerNetworkStatsServerPropertiesTest, SetServerNetworkStats) { 1334 TEST_F(ServerNetworkStatsServerPropertiesTest, SetServerNetworkStats) {
1333 HostPortPair foo_server("foo", 80); 1335 url::SchemeHostPort foo_server("http", "foo", 80);
1334 const ServerNetworkStats* stats = impl_.GetServerNetworkStats(foo_server); 1336 const ServerNetworkStats* stats = impl_.GetServerNetworkStats(foo_server);
1335 EXPECT_EQ(NULL, stats); 1337 EXPECT_EQ(NULL, stats);
1336 1338
1337 ServerNetworkStats stats1; 1339 ServerNetworkStats stats1;
1338 stats1.srtt = base::TimeDelta::FromMicroseconds(10); 1340 stats1.srtt = base::TimeDelta::FromMicroseconds(10);
1339 stats1.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(100); 1341 stats1.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(100);
1340 impl_.SetServerNetworkStats(foo_server, stats1); 1342 impl_.SetServerNetworkStats(foo_server, stats1);
1341 1343
1342 const ServerNetworkStats* stats2 = impl_.GetServerNetworkStats(foo_server); 1344 const ServerNetworkStats* stats2 = impl_.GetServerNetworkStats(foo_server);
1343 EXPECT_EQ(10, stats2->srtt.ToInternalValue()); 1345 EXPECT_EQ(10, stats2->srtt.ToInternalValue());
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1449 EXPECT_EQ(quic_server_info1, *(impl_.GetQuicServerInfo(quic_server_id))); 1451 EXPECT_EQ(quic_server_info1, *(impl_.GetQuicServerInfo(quic_server_id)));
1450 1452
1451 impl_.Clear(); 1453 impl_.Clear();
1452 EXPECT_EQ(0u, impl_.quic_server_info_map().size()); 1454 EXPECT_EQ(0u, impl_.quic_server_info_map().size());
1453 EXPECT_EQ(nullptr, impl_.GetQuicServerInfo(quic_server_id)); 1455 EXPECT_EQ(nullptr, impl_.GetQuicServerInfo(quic_server_id));
1454 } 1456 }
1455 1457
1456 } // namespace 1458 } // namespace
1457 1459
1458 } // namespace net 1460 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_server_properties_impl.cc ('k') | net/http/http_server_properties_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698