| 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/basictypes.h" | 10 #include "base/basictypes.h" | 
| (...skipping 1147 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1158 | 1158 | 
| 1159   EXPECT_FALSE(impl_.GetSupportsQuic(&address)); | 1159   EXPECT_FALSE(impl_.GetSupportsQuic(&address)); | 
| 1160 } | 1160 } | 
| 1161 | 1161 | 
| 1162 typedef HttpServerPropertiesImplTest ServerNetworkStatsServerPropertiesTest; | 1162 typedef HttpServerPropertiesImplTest ServerNetworkStatsServerPropertiesTest; | 
| 1163 | 1163 | 
| 1164 TEST_F(ServerNetworkStatsServerPropertiesTest, Initialize) { | 1164 TEST_F(ServerNetworkStatsServerPropertiesTest, Initialize) { | 
| 1165   HostPortPair google_server("www.google.com", 443); | 1165   HostPortPair google_server("www.google.com", 443); | 
| 1166 | 1166 | 
| 1167   // Check by initializing empty ServerNetworkStats. | 1167   // Check by initializing empty ServerNetworkStats. | 
| 1168   ServerNetworkStatsMap server_network_stats_map( | 1168   ServerNetworkStatsMap init_server_network_stats_map( | 
| 1169       ServerNetworkStatsMap::NO_AUTO_EVICT); | 1169       ServerNetworkStatsMap::NO_AUTO_EVICT); | 
| 1170   impl_.InitializeServerNetworkStats(&server_network_stats_map); | 1170   impl_.InitializeServerNetworkStats(&init_server_network_stats_map); | 
| 1171   const ServerNetworkStats* stats = impl_.GetServerNetworkStats(google_server); | 1171   const ServerNetworkStats* stats = impl_.GetServerNetworkStats(google_server); | 
| 1172   EXPECT_EQ(NULL, stats); | 1172   EXPECT_EQ(NULL, stats); | 
| 1173 | 1173 | 
| 1174   // Check by initializing with www.google.com:443. | 1174   // Check by initializing with www.google.com:443. | 
| 1175   ServerNetworkStats stats1; | 1175   ServerNetworkStats stats_google; | 
| 1176   stats1.srtt = base::TimeDelta::FromMicroseconds(10); | 1176   stats_google.srtt = base::TimeDelta::FromMicroseconds(10); | 
| 1177   stats1.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(100); | 1177   stats_google.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(100); | 
| 1178   server_network_stats_map.Put(google_server, stats1); | 1178   init_server_network_stats_map.Put(google_server, stats_google); | 
|  | 1179   impl_.InitializeServerNetworkStats(&init_server_network_stats_map); | 
|  | 1180 | 
|  | 1181   // Verify data for www.google.com:443. | 
|  | 1182   ASSERT_EQ(1u, impl_.server_network_stats_map().size()); | 
|  | 1183   EXPECT_EQ(stats_google, *(impl_.GetServerNetworkStats(google_server))); | 
|  | 1184 | 
|  | 1185   // Test recency order and overwriting of data. | 
|  | 1186   // | 
|  | 1187   // |docs_server| has a ServerNetworkStats, which will be overwritten by | 
|  | 1188   // InitializeServerNetworkStats(), because |server_network_stats_map| has an | 
|  | 1189   // entry for |docs_server|. | 
|  | 1190   HostPortPair docs_server("docs.google.com", 443); | 
|  | 1191   ServerNetworkStats stats_docs; | 
|  | 1192   stats_docs.srtt = base::TimeDelta::FromMicroseconds(20); | 
|  | 1193   stats_docs.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(200); | 
|  | 1194   // Recency order will be |docs_server| and |google_server|. | 
|  | 1195   impl_.SetServerNetworkStats(docs_server, stats_docs); | 
|  | 1196 | 
|  | 1197   // Prepare |server_network_stats_map| to be loaded by | 
|  | 1198   // InitializeServerNetworkStats(). | 
|  | 1199   ServerNetworkStatsMap server_network_stats_map( | 
|  | 1200       ServerNetworkStatsMap::NO_AUTO_EVICT); | 
|  | 1201 | 
|  | 1202   // Change the values for |docs_server|. | 
|  | 1203   ServerNetworkStats new_stats_docs; | 
|  | 1204   new_stats_docs.srtt = base::TimeDelta::FromMicroseconds(25); | 
|  | 1205   new_stats_docs.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(250); | 
|  | 1206   server_network_stats_map.Put(docs_server, new_stats_docs); | 
|  | 1207   // Add data for mail.google.com:443. | 
|  | 1208   HostPortPair mail_server("mail.google.com", 443); | 
|  | 1209   ServerNetworkStats stats_mail; | 
|  | 1210   stats_mail.srtt = base::TimeDelta::FromMicroseconds(30); | 
|  | 1211   stats_mail.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(300); | 
|  | 1212   server_network_stats_map.Put(mail_server, stats_mail); | 
|  | 1213 | 
|  | 1214   // Recency order will be |docs_server|, |google_server| and |mail_server|. | 
| 1179   impl_.InitializeServerNetworkStats(&server_network_stats_map); | 1215   impl_.InitializeServerNetworkStats(&server_network_stats_map); | 
| 1180 | 1216 | 
| 1181   const ServerNetworkStats* stats2 = impl_.GetServerNetworkStats(google_server); | 1217   const ServerNetworkStatsMap& map = impl_.server_network_stats_map(); | 
| 1182   EXPECT_EQ(10, stats2->srtt.ToInternalValue()); | 1218   ASSERT_EQ(3u, map.size()); | 
| 1183   EXPECT_EQ(100, stats2->bandwidth_estimate.ToBitsPerSecond()); | 1219   ServerNetworkStatsMap::const_iterator map_it = map.begin(); | 
|  | 1220 | 
|  | 1221   EXPECT_TRUE(map_it->first.Equals(docs_server)); | 
|  | 1222   EXPECT_EQ(new_stats_docs, map_it->second); | 
|  | 1223   ++map_it; | 
|  | 1224   EXPECT_TRUE(map_it->first.Equals(google_server)); | 
|  | 1225   EXPECT_EQ(stats_google, map_it->second); | 
|  | 1226   ++map_it; | 
|  | 1227   EXPECT_TRUE(map_it->first.Equals(mail_server)); | 
|  | 1228   EXPECT_EQ(stats_mail, map_it->second); | 
| 1184 } | 1229 } | 
| 1185 | 1230 | 
| 1186 TEST_F(ServerNetworkStatsServerPropertiesTest, SetServerNetworkStats) { | 1231 TEST_F(ServerNetworkStatsServerPropertiesTest, SetServerNetworkStats) { | 
| 1187   HostPortPair foo_server("foo", 80); | 1232   HostPortPair foo_server("foo", 80); | 
| 1188   const ServerNetworkStats* stats = impl_.GetServerNetworkStats(foo_server); | 1233   const ServerNetworkStats* stats = impl_.GetServerNetworkStats(foo_server); | 
| 1189   EXPECT_EQ(NULL, stats); | 1234   EXPECT_EQ(NULL, stats); | 
| 1190 | 1235 | 
| 1191   ServerNetworkStats stats1; | 1236   ServerNetworkStats stats1; | 
| 1192   stats1.srtt = base::TimeDelta::FromMicroseconds(10); | 1237   stats1.srtt = base::TimeDelta::FromMicroseconds(10); | 
| 1193   stats1.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(100); | 1238   stats1.bandwidth_estimate = QuicBandwidth::FromBitsPerSecond(100); | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1234   EXPECT_EQ(quic_server_info1, *(impl_.GetQuicServerInfo(quic_server_id))); | 1279   EXPECT_EQ(quic_server_info1, *(impl_.GetQuicServerInfo(quic_server_id))); | 
| 1235 | 1280 | 
| 1236   impl_.Clear(); | 1281   impl_.Clear(); | 
| 1237   EXPECT_EQ(0u, impl_.quic_server_info_map().size()); | 1282   EXPECT_EQ(0u, impl_.quic_server_info_map().size()); | 
| 1238   EXPECT_EQ(nullptr, impl_.GetQuicServerInfo(quic_server_id)); | 1283   EXPECT_EQ(nullptr, impl_.GetQuicServerInfo(quic_server_id)); | 
| 1239 } | 1284 } | 
| 1240 | 1285 | 
| 1241 }  // namespace | 1286 }  // namespace | 
| 1242 | 1287 | 
| 1243 }  // namespace net | 1288 }  // namespace net | 
| OLD | NEW | 
|---|