OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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_manager.h" | 5 #include "net/http/http_server_properties_manager.h" |
6 | 6 |
7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
8 #include "base/json/json_writer.h" | 8 #include "base/json/json_writer.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 GetParam()); | 269 GetParam()); |
270 http_server_properties_dict->SetWithoutPathExpansion("servers", | 270 http_server_properties_dict->SetWithoutPathExpansion("servers", |
271 servers_dict); | 271 servers_dict); |
272 } | 272 } |
273 base::DictionaryValue* supports_quic = new base::DictionaryValue; | 273 base::DictionaryValue* supports_quic = new base::DictionaryValue; |
274 supports_quic->SetBoolean("used_quic", true); | 274 supports_quic->SetBoolean("used_quic", true); |
275 supports_quic->SetString("address", "127.0.0.1"); | 275 supports_quic->SetString("address", "127.0.0.1"); |
276 http_server_properties_dict->SetWithoutPathExpansion("supports_quic", | 276 http_server_properties_dict->SetWithoutPathExpansion("supports_quic", |
277 supports_quic); | 277 supports_quic); |
278 | 278 |
279 // Set quic_server_info for www.google.com:80 and mail.google.com:80. | 279 // Set quic_server_info for www.google.com:80, mail.google.com:80 and |
| 280 // play.google.com:80 and verify the MRU. |
| 281 http_server_props_manager_->SetMaxServerConfigsStoredInProperties(3); |
280 base::DictionaryValue* quic_servers_dict = new base::DictionaryValue; | 282 base::DictionaryValue* quic_servers_dict = new base::DictionaryValue; |
281 base::DictionaryValue* quic_server_pref_dict1 = new base::DictionaryValue; | 283 base::DictionaryValue* quic_server_pref_dict1 = new base::DictionaryValue; |
282 std::string quic_server_info1("quic_server_info1"); | 284 std::string quic_server_info1("quic_server_info1"); |
283 quic_server_pref_dict1->SetStringWithoutPathExpansion("server_info", | 285 quic_server_pref_dict1->SetStringWithoutPathExpansion("server_info", |
284 quic_server_info1); | 286 quic_server_info1); |
285 base::DictionaryValue* quic_server_pref_dict2 = new base::DictionaryValue; | 287 base::DictionaryValue* quic_server_pref_dict2 = new base::DictionaryValue; |
286 std::string quic_server_info2("quic_server_info2"); | 288 std::string quic_server_info2("quic_server_info2"); |
287 quic_server_pref_dict2->SetStringWithoutPathExpansion("server_info", | 289 quic_server_pref_dict2->SetStringWithoutPathExpansion("server_info", |
288 quic_server_info2); | 290 quic_server_info2); |
| 291 base::DictionaryValue* quic_server_pref_dict3 = new base::DictionaryValue; |
| 292 std::string quic_server_info3("quic_server_info3"); |
| 293 quic_server_pref_dict3->SetStringWithoutPathExpansion("server_info", |
| 294 quic_server_info3); |
289 // Set the quic_server_info1 for www.google.com server. | 295 // Set the quic_server_info1 for www.google.com server. |
290 QuicServerId google_quic_server_id("www.google.com", 80); | 296 QuicServerId google_quic_server_id("www.google.com", 80); |
291 quic_servers_dict->SetWithoutPathExpansion(google_quic_server_id.ToString(), | 297 quic_servers_dict->SetWithoutPathExpansion(google_quic_server_id.ToString(), |
292 quic_server_pref_dict1); | 298 quic_server_pref_dict1); |
293 // Set the quic_server_info2 for mail.google.com server. | 299 // Set the quic_server_info2 for mail.google.com server. |
294 QuicServerId mail_quic_server_id("mail.google.com", 80); | 300 QuicServerId mail_quic_server_id("mail.google.com", 80); |
295 quic_servers_dict->SetWithoutPathExpansion(mail_quic_server_id.ToString(), | 301 quic_servers_dict->SetWithoutPathExpansion(mail_quic_server_id.ToString(), |
296 quic_server_pref_dict2); | 302 quic_server_pref_dict2); |
| 303 // Set the quic_server_info3 for play.google.com server. |
| 304 QuicServerId play_quic_server_id("play.google.com", 80); |
| 305 quic_servers_dict->SetWithoutPathExpansion(play_quic_server_id.ToString(), |
| 306 quic_server_pref_dict3); |
297 http_server_properties_dict->SetWithoutPathExpansion("quic_servers", | 307 http_server_properties_dict->SetWithoutPathExpansion("quic_servers", |
298 quic_servers_dict); | 308 quic_servers_dict); |
299 | 309 |
300 // Set the same value for kHttpServerProperties multiple times. | 310 // Set the same value for kHttpServerProperties multiple times. |
301 pref_service_.SetManagedPref(kTestHttpServerProperties, | 311 pref_service_.SetManagedPref(kTestHttpServerProperties, |
302 http_server_properties_dict); | 312 http_server_properties_dict); |
303 base::DictionaryValue* http_server_properties_dict2 = | 313 base::DictionaryValue* http_server_properties_dict2 = |
304 http_server_properties_dict->DeepCopy(); | 314 http_server_properties_dict->DeepCopy(); |
305 pref_service_.SetManagedPref(kTestHttpServerProperties, | 315 pref_service_.SetManagedPref(kTestHttpServerProperties, |
306 http_server_properties_dict2); | 316 http_server_properties_dict2); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 EXPECT_EQ(10, stats2->srtt.ToInternalValue()); | 378 EXPECT_EQ(10, stats2->srtt.ToInternalValue()); |
369 const ServerNetworkStats* stats3 = | 379 const ServerNetworkStats* stats3 = |
370 http_server_props_manager_->GetServerNetworkStats(mail_server); | 380 http_server_props_manager_->GetServerNetworkStats(mail_server); |
371 EXPECT_EQ(20, stats3->srtt.ToInternalValue()); | 381 EXPECT_EQ(20, stats3->srtt.ToInternalValue()); |
372 | 382 |
373 // Verify QuicServerInfo. | 383 // Verify QuicServerInfo. |
374 EXPECT_EQ(quic_server_info1, *http_server_props_manager_->GetQuicServerInfo( | 384 EXPECT_EQ(quic_server_info1, *http_server_props_manager_->GetQuicServerInfo( |
375 google_quic_server_id)); | 385 google_quic_server_id)); |
376 EXPECT_EQ(quic_server_info2, *http_server_props_manager_->GetQuicServerInfo( | 386 EXPECT_EQ(quic_server_info2, *http_server_props_manager_->GetQuicServerInfo( |
377 mail_quic_server_id)); | 387 mail_quic_server_id)); |
| 388 EXPECT_EQ(quic_server_info3, *http_server_props_manager_->GetQuicServerInfo( |
| 389 play_quic_server_id)); |
| 390 |
| 391 // Verify the MRU order. |
| 392 http_server_props_manager_->SetMaxServerConfigsStoredInProperties(2); |
| 393 EXPECT_EQ(nullptr, http_server_props_manager_->GetQuicServerInfo( |
| 394 google_quic_server_id)); |
| 395 EXPECT_EQ(quic_server_info2, *http_server_props_manager_->GetQuicServerInfo( |
| 396 mail_quic_server_id)); |
| 397 EXPECT_EQ(quic_server_info3, *http_server_props_manager_->GetQuicServerInfo( |
| 398 play_quic_server_id)); |
378 } | 399 } |
379 | 400 |
380 TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) { | 401 TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) { |
381 ExpectCacheUpdate(); | 402 ExpectCacheUpdate(); |
382 // The prefs are automaticalls updated in the case corruption is detected. | 403 // The prefs are automaticalls updated in the case corruption is detected. |
383 ExpectPrefsUpdate(); | 404 ExpectPrefsUpdate(); |
384 ExpectScheduleUpdatePrefsOnNetworkThread(); | 405 ExpectScheduleUpdatePrefsOnNetworkThread(); |
385 | 406 |
386 base::DictionaryValue* server_pref_dict = new base::DictionaryValue; | 407 base::DictionaryValue* server_pref_dict = new base::DictionaryValue; |
387 | 408 |
(...skipping 919 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1307 // Shutdown comes before the task is executed. | 1328 // Shutdown comes before the task is executed. |
1308 http_server_props_manager_->ShutdownOnPrefThread(); | 1329 http_server_props_manager_->ShutdownOnPrefThread(); |
1309 // Run the task after shutdown, but before deletion. | 1330 // Run the task after shutdown, but before deletion. |
1310 base::RunLoop().RunUntilIdle(); | 1331 base::RunLoop().RunUntilIdle(); |
1311 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); | 1332 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
1312 http_server_props_manager_.reset(); | 1333 http_server_props_manager_.reset(); |
1313 base::RunLoop().RunUntilIdle(); | 1334 base::RunLoop().RunUntilIdle(); |
1314 } | 1335 } |
1315 | 1336 |
1316 } // namespace net | 1337 } // namespace net |
OLD | NEW |