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 |