| 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/message_loop.h" | 6 #include "base/message_loop.h" |
| 7 #include "base/stringprintf.h" | 7 #include "base/stringprintf.h" |
| 8 #include "chrome/browser/net/network_stats.h" | 8 #include "chrome/browser/net/network_stats.h" |
| 9 #include "net/base/host_resolver.h" | 9 #include "net/base/host_resolver.h" |
| 10 #include "net/base/mock_host_resolver.h" | 10 #include "net/base/mock_host_resolver.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 | 41 |
| 42 scoped_ptr<net::MockHostResolver> host_resolver( | 42 scoped_ptr<net::MockHostResolver> host_resolver( |
| 43 new net::MockHostResolver()); | 43 new net::MockHostResolver()); |
| 44 | 44 |
| 45 // We will use HISTOGRAM_PORT_MAX as the PortIndex enum for testing | 45 // We will use HISTOGRAM_PORT_MAX as the PortIndex enum for testing |
| 46 // purposes. | 46 // purposes. |
| 47 UDPStatsClient* udp_stats_client = new UDPStatsClient(); | 47 UDPStatsClient* udp_stats_client = new UDPStatsClient(); |
| 48 EXPECT_TRUE(udp_stats_client->Start(host_resolver.get(), | 48 EXPECT_TRUE(udp_stats_client->Start(host_resolver.get(), |
| 49 test_server_.host_port_pair(), | 49 test_server_.host_port_pair(), |
| 50 NetworkStats::HISTOGRAM_PORT_MAX, | 50 NetworkStats::HISTOGRAM_PORT_MAX, |
| 51 true, |
| 51 bytes, | 52 bytes, |
| 52 cb.callback())); | 53 cb.callback())); |
| 53 int rv = cb.WaitForResult(); | 54 int rv = cb.WaitForResult(); |
| 54 // Check there were no errors during connect/write/read to echo UDP server. | 55 // Check there were no errors during connect/write/read to echo UDP server. |
| 55 EXPECT_EQ(0, rv); | 56 EXPECT_EQ(0, rv); |
| 56 } | 57 } |
| 57 | 58 |
| 58 net::TestServer test_server_; | 59 net::TestServer test_server_; |
| 59 }; | 60 }; |
| 60 | 61 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 72 | 73 |
| 73 scoped_ptr<net::MockHostResolver> host_resolver( | 74 scoped_ptr<net::MockHostResolver> host_resolver( |
| 74 new net::MockHostResolver()); | 75 new net::MockHostResolver()); |
| 75 | 76 |
| 76 // We will use HISTOGRAM_PORT_MAX as the PortIndex enum for testing | 77 // We will use HISTOGRAM_PORT_MAX as the PortIndex enum for testing |
| 77 // purposes. | 78 // purposes. |
| 78 TCPStatsClient* tcp_stats_client = new TCPStatsClient(); | 79 TCPStatsClient* tcp_stats_client = new TCPStatsClient(); |
| 79 EXPECT_TRUE(tcp_stats_client->Start(host_resolver.get(), | 80 EXPECT_TRUE(tcp_stats_client->Start(host_resolver.get(), |
| 80 test_server_.host_port_pair(), | 81 test_server_.host_port_pair(), |
| 81 NetworkStats::HISTOGRAM_PORT_MAX, | 82 NetworkStats::HISTOGRAM_PORT_MAX, |
| 83 true, |
| 82 bytes, | 84 bytes, |
| 83 cb.callback())); | 85 cb.callback())); |
| 84 int rv = cb.WaitForResult(); | 86 int rv = cb.WaitForResult(); |
| 85 // Check there were no errors during connect/write/read to echo TCP server. | 87 // Check there were no errors during connect/write/read to echo TCP server. |
| 86 EXPECT_EQ(0, rv); | 88 EXPECT_EQ(0, rv); |
| 87 } | 89 } |
| 88 | 90 |
| 89 net::TestServer test_server_; | 91 net::TestServer test_server_; |
| 90 }; | 92 }; |
| 91 | 93 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 108 ASSERT_TRUE(test_server_.Start()); | 110 ASSERT_TRUE(test_server_.Start()); |
| 109 RunTCPEchoTest(1024); | 111 RunTCPEchoTest(1024); |
| 110 } | 112 } |
| 111 | 113 |
| 112 TEST_F(NetworkStatsTestTCP, VerifyBytes) { | 114 TEST_F(NetworkStatsTestTCP, VerifyBytes) { |
| 113 static const uint32 KBytesToSend = 100; | 115 static const uint32 KBytesToSend = 100; |
| 114 TCPStatsClient network_stats; | 116 TCPStatsClient network_stats; |
| 115 net::TestCompletionCallback cb; | 117 net::TestCompletionCallback cb; |
| 116 network_stats.Initialize(KBytesToSend, | 118 network_stats.Initialize(KBytesToSend, |
| 117 NetworkStats::HISTOGRAM_PORT_MAX, | 119 NetworkStats::HISTOGRAM_PORT_MAX, |
| 120 true, |
| 118 cb.callback()); | 121 cb.callback()); |
| 119 | 122 |
| 120 std::string message; | 123 std::string message; |
| 121 network_stats.set_encoded_message(message); | 124 network_stats.set_encoded_message(message); |
| 122 EXPECT_EQ(NetworkStats::ZERO_LENGTH_ERROR, network_stats.VerifyBytes()); | 125 EXPECT_EQ(NetworkStats::ZERO_LENGTH_ERROR, network_stats.VerifyBytes()); |
| 123 | 126 |
| 124 std::string version = base::StringPrintf("%02d", 1); | 127 std::string version = base::StringPrintf("%02d", 1); |
| 125 std::string invalid_checksum = base::StringPrintf("%010d", 0); | 128 std::string invalid_checksum = base::StringPrintf("%010d", 0); |
| 126 std::string payload_size = base::StringPrintf("%07d", KBytesToSend); | 129 std::string payload_size = base::StringPrintf("%07d", KBytesToSend); |
| 127 std::string invalid_key = base::StringPrintf("%06d", -1); | 130 std::string invalid_key = base::StringPrintf("%06d", -1); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 pattern_changed_payload; | 195 pattern_changed_payload; |
| 193 network_stats.set_encoded_message(message); | 196 network_stats.set_encoded_message(message); |
| 194 EXPECT_EQ(NetworkStats::PATTERN_CHANGED, network_stats.VerifyBytes()); | 197 EXPECT_EQ(NetworkStats::PATTERN_CHANGED, network_stats.VerifyBytes()); |
| 195 | 198 |
| 196 message = version + checksum + payload_size + key_string + payload; | 199 message = version + checksum + payload_size + key_string + payload; |
| 197 network_stats.set_encoded_message(message); | 200 network_stats.set_encoded_message(message); |
| 198 EXPECT_EQ(NetworkStats::SUCCESS, network_stats.VerifyBytes()); | 201 EXPECT_EQ(NetworkStats::SUCCESS, network_stats.VerifyBytes()); |
| 199 } | 202 } |
| 200 | 203 |
| 201 TEST_F(NetworkStatsTest, GetHistogramNames) { | 204 TEST_F(NetworkStatsTest, GetHistogramNames) { |
| 202 // Test TCP, large packet, success histogram name. | 205 // Test TCP, large packet, success histogram name, without proxy server. |
| 203 std::string rtt_histogram_name; | 206 std::string rtt_histogram_name; |
| 207 std::string rtt_no_proxy_histogram_name; |
| 204 std::string status_histogram_name; | 208 std::string status_histogram_name; |
| 209 std::string status_no_proxy_histogram_name; |
| 205 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_TCP, | 210 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_TCP, |
| 206 NetworkStats::PORT_53, | 211 NetworkStats::PORT_53, |
| 212 true, |
| 207 1024, | 213 1024, |
| 208 net::OK, | 214 net::OK, |
| 209 &rtt_histogram_name, | 215 &rtt_histogram_name, |
| 210 &status_histogram_name); | 216 &rtt_no_proxy_histogram_name, |
| 217 &status_histogram_name, |
| 218 &status_no_proxy_histogram_name); |
| 211 EXPECT_EQ("NetConnectivity.TCP.Success.53.1K.RTT", rtt_histogram_name); | 219 EXPECT_EQ("NetConnectivity.TCP.Success.53.1K.RTT", rtt_histogram_name); |
| 220 EXPECT_EQ("NetConnectivity.TCP.NoProxy.Success.53.1K.RTT", |
| 221 rtt_no_proxy_histogram_name); |
| 212 EXPECT_EQ("NetConnectivity.TCP.Status.53.1K", status_histogram_name); | 222 EXPECT_EQ("NetConnectivity.TCP.Status.53.1K", status_histogram_name); |
| 223 EXPECT_EQ("NetConnectivity.TCP.NoProxy.Status.53.1K", |
| 224 status_no_proxy_histogram_name); |
| 213 | 225 |
| 214 // Test UDP, small packet, failure histogram name. | 226 // Test TCP, large packet, success histogram name, with proxy server. |
| 215 std::string rtt_histogram_name1; | 227 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_TCP, |
| 216 std::string status_histogram_name1; | 228 NetworkStats::PORT_53, |
| 229 false, |
| 230 1024, |
| 231 net::OK, |
| 232 &rtt_histogram_name, |
| 233 &rtt_no_proxy_histogram_name, |
| 234 &status_histogram_name, |
| 235 &status_no_proxy_histogram_name); |
| 236 EXPECT_EQ("NetConnectivity.TCP.Success.53.1K.RTT", rtt_histogram_name); |
| 237 EXPECT_EQ("", rtt_no_proxy_histogram_name); |
| 238 EXPECT_EQ("NetConnectivity.TCP.Status.53.1K", status_histogram_name); |
| 239 EXPECT_EQ("", status_no_proxy_histogram_name); |
| 240 |
| 241 // Test UDP, small packet, failure histogram name, without proxy server. |
| 217 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_UDP, | 242 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_UDP, |
| 218 NetworkStats::PORT_6121, | 243 NetworkStats::PORT_6121, |
| 244 true, |
| 219 100, | 245 100, |
| 220 net::ERR_INVALID_ARGUMENT, | 246 net::ERR_INVALID_ARGUMENT, |
| 221 &rtt_histogram_name1, | 247 &rtt_histogram_name, |
| 222 &status_histogram_name1); | 248 &rtt_no_proxy_histogram_name, |
| 223 EXPECT_EQ("", rtt_histogram_name1); | 249 &status_histogram_name, |
| 224 EXPECT_EQ("NetConnectivity.UDP.Status.6121.100B", status_histogram_name1); | 250 &status_no_proxy_histogram_name); |
| 251 EXPECT_EQ("", rtt_histogram_name); |
| 252 EXPECT_EQ("", rtt_no_proxy_histogram_name); |
| 253 EXPECT_EQ("NetConnectivity.UDP.Status.6121.100B", status_histogram_name); |
| 254 EXPECT_EQ("NetConnectivity.UDP.NoProxy.Status.6121.100B", |
| 255 status_no_proxy_histogram_name); |
| 256 |
| 257 // Test UDP, small packet, failure histogram name, with proxy server. |
| 258 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_UDP, |
| 259 NetworkStats::PORT_6121, |
| 260 false, |
| 261 100, |
| 262 net::ERR_INVALID_ARGUMENT, |
| 263 &rtt_histogram_name, |
| 264 &rtt_no_proxy_histogram_name, |
| 265 &status_histogram_name, |
| 266 &status_no_proxy_histogram_name); |
| 267 EXPECT_EQ("", rtt_histogram_name); |
| 268 EXPECT_EQ("", rtt_no_proxy_histogram_name); |
| 269 EXPECT_EQ("NetConnectivity.UDP.Status.6121.100B", status_histogram_name); |
| 270 EXPECT_EQ("", status_no_proxy_histogram_name); |
| 225 } | 271 } |
| 226 | 272 |
| 227 } // namespace chrome_browser_net | 273 } // namespace chrome_browser_net |
| OLD | NEW |