| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |