Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Side by Side Diff: net/url_request/url_request_http_job_unittest.cc

Issue 1327763003: Added and implemented URLRequest::GetTotalSentBytes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@spdy_sent_bytes_impl
Patch Set: Initial patch set Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/url_request/url_request_http_job.h" 5 #include "net/url_request/url_request_http_job.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <cstddef> 9 #include <cstddef>
10 10
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 128 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
129 &delegate) 129 &delegate)
130 .Pass(); 130 .Pass();
131 131
132 request->Start(); 132 request->Start();
133 ASSERT_TRUE(request->is_pending()); 133 ASSERT_TRUE(request->is_pending());
134 base::RunLoop().Run(); 134 base::RunLoop().Run();
135 135
136 EXPECT_TRUE(request->status().is_success()); 136 EXPECT_TRUE(request->status().is_success());
137 EXPECT_EQ(12, request->received_response_content_length()); 137 EXPECT_EQ(12, request->received_response_content_length());
138 EXPECT_EQ(137, request->GetTotalSentBytes());
139 EXPECT_EQ(51, request->GetTotalReceivedBytes());
mmenke 2015/09/04 15:21:49 Can't we just calculate the received bytes from th
sclittle 2015/09/04 22:03:10 Done.
138 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); 140 EXPECT_EQ(51, network_delegate_.total_network_bytes_received());
139 } 141 }
140 142
141 TEST_F(URLRequestHttpJobWithMockSocketsTest, 143 TEST_F(URLRequestHttpJobWithMockSocketsTest,
142 TestContentLengthSuccessfulHttp09Request) { 144 TestContentLengthSuccessfulHttp09Request) {
143 MockRead reads[] = {MockRead("Test Content"), 145 MockRead reads[] = {MockRead("Test Content"),
144 MockRead(net::SYNCHRONOUS, net::OK)}; 146 MockRead(net::SYNCHRONOUS, net::OK)};
145 147
146 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); 148 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0);
147 socket_factory_.AddSocketDataProvider(&socket_data); 149 socket_factory_.AddSocketDataProvider(&socket_data);
148 150
149 TestDelegate delegate; 151 TestDelegate delegate;
150 scoped_ptr<URLRequest> request = 152 scoped_ptr<URLRequest> request =
151 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 153 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
152 &delegate) 154 &delegate)
153 .Pass(); 155 .Pass();
154 156
155 request->Start(); 157 request->Start();
156 ASSERT_TRUE(request->is_pending()); 158 ASSERT_TRUE(request->is_pending());
157 base::RunLoop().Run(); 159 base::RunLoop().Run();
158 160
159 EXPECT_TRUE(request->status().is_success()); 161 EXPECT_TRUE(request->status().is_success());
160 EXPECT_EQ(12, request->received_response_content_length()); 162 EXPECT_EQ(12, request->received_response_content_length());
163 EXPECT_EQ(137, request->GetTotalSentBytes());
164 EXPECT_EQ(12, request->GetTotalReceivedBytes());
161 EXPECT_EQ(12, network_delegate_.total_network_bytes_received()); 165 EXPECT_EQ(12, network_delegate_.total_network_bytes_received());
162 } 166 }
163 167
164 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthAbortedRequest) { 168 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthAbortedRequest) {
165 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" 169 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n"
166 "Content-Length: 20\r\n\r\n"), 170 "Content-Length: 20\r\n\r\n"),
167 MockRead("Test Content"), 171 MockRead("Test Content"),
168 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)}; 172 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)};
169 173
170 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); 174 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0);
171 socket_factory_.AddSocketDataProvider(&socket_data); 175 socket_factory_.AddSocketDataProvider(&socket_data);
172 176
173 TestDelegate delegate; 177 TestDelegate delegate;
174 scoped_ptr<URLRequest> request = 178 scoped_ptr<URLRequest> request =
175 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 179 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
176 &delegate) 180 &delegate)
177 .Pass(); 181 .Pass();
178 182
179 request->Start(); 183 request->Start();
180 ASSERT_TRUE(request->is_pending()); 184 ASSERT_TRUE(request->is_pending());
181 base::RunLoop().Run(); 185 base::RunLoop().Run();
182 186
183 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); 187 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status());
184 EXPECT_EQ(12, request->received_response_content_length()); 188 EXPECT_EQ(12, request->received_response_content_length());
189 EXPECT_EQ(137, request->GetTotalSentBytes());
190 EXPECT_EQ(51, request->GetTotalReceivedBytes());
185 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); 191 EXPECT_EQ(51, network_delegate_.total_network_bytes_received());
186 } 192 }
187 193
188 TEST_F(URLRequestHttpJobWithMockSocketsTest, 194 TEST_F(URLRequestHttpJobWithMockSocketsTest,
189 TestContentLengthCancelledRequest) { 195 TestContentLengthCancelledRequest) {
190 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" 196 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n"
191 "Content-Length: 20\r\n\r\n"), 197 "Content-Length: 20\r\n\r\n"),
192 MockRead("Test Content"), 198 MockRead("Test Content"),
193 MockRead(net::SYNCHRONOUS, net::ERR_IO_PENDING)}; 199 MockRead(net::SYNCHRONOUS, net::ERR_IO_PENDING)};
194 200
195 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); 201 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0);
196 socket_factory_.AddSocketDataProvider(&socket_data); 202 socket_factory_.AddSocketDataProvider(&socket_data);
197 203
198 TestDelegate delegate; 204 TestDelegate delegate;
199 scoped_ptr<URLRequest> request = 205 scoped_ptr<URLRequest> request =
200 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 206 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
201 &delegate) 207 &delegate)
202 .Pass(); 208 .Pass();
203 209
204 delegate.set_cancel_in_received_data(true); 210 delegate.set_cancel_in_received_data(true);
205 request->Start(); 211 request->Start();
206 base::RunLoop().RunUntilIdle(); 212 base::RunLoop().RunUntilIdle();
207 213
208 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); 214 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status());
209 EXPECT_EQ(12, request->received_response_content_length()); 215 EXPECT_EQ(12, request->received_response_content_length());
216 EXPECT_EQ(137, request->GetTotalSentBytes());
217 EXPECT_EQ(51, request->GetTotalReceivedBytes());
210 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); 218 EXPECT_EQ(51, network_delegate_.total_network_bytes_received());
211 } 219 }
212 220
213 TEST_F(URLRequestHttpJobWithMockSocketsTest, 221 TEST_F(URLRequestHttpJobWithMockSocketsTest,
214 TestNetworkBytesRedirectedRequest) { 222 TestNetworkBytesRedirectedRequest) {
215 MockRead redirect_read( 223 MockRead redirect_read(
216 "HTTP/1.1 302 Found\r\n" 224 "HTTP/1.1 302 Found\r\n"
217 "Location: http://www.example.com\r\n\r\n"); 225 "Location: http://www.example.com\r\n\r\n");
218 StaticSocketDataProvider redirect_socket_data(&redirect_read, 1, nullptr, 0); 226 StaticSocketDataProvider redirect_socket_data(&redirect_read, 1, nullptr, 0);
219 socket_factory_.AddSocketDataProvider(&redirect_socket_data); 227 socket_factory_.AddSocketDataProvider(&redirect_socket_data);
(...skipping 10 matching lines...) Expand all
230 context_->CreateRequest(GURL("http://www.redirect.com"), DEFAULT_PRIORITY, 238 context_->CreateRequest(GURL("http://www.redirect.com"), DEFAULT_PRIORITY,
231 &delegate) 239 &delegate)
232 .Pass(); 240 .Pass();
233 241
234 request->Start(); 242 request->Start();
235 ASSERT_TRUE(request->is_pending()); 243 ASSERT_TRUE(request->is_pending());
236 base::RunLoop().RunUntilIdle(); 244 base::RunLoop().RunUntilIdle();
237 245
238 EXPECT_TRUE(request->status().is_success()); 246 EXPECT_TRUE(request->status().is_success());
239 EXPECT_EQ(12, request->received_response_content_length()); 247 EXPECT_EQ(12, request->received_response_content_length());
248 EXPECT_EQ(137, request->GetTotalSentBytes());
249 EXPECT_EQ(51, request->GetTotalReceivedBytes());
mmenke 2015/09/04 15:21:49 Think these are worth a comment (Basically the opp
sclittle 2015/09/04 22:03:10 Done.
250 // Should include the redirect as well as the final response.
240 EXPECT_EQ(107, network_delegate_.total_network_bytes_received()); 251 EXPECT_EQ(107, network_delegate_.total_network_bytes_received());
mmenke 2015/09/04 15:21:49 We should do the same for bytes sent, to make sure
sclittle 2015/09/04 22:03:10 Yeah, that will come later in a separate CL when I
241 } 252 }
242 253
243 TEST_F(URLRequestHttpJobWithMockSocketsTest, 254 TEST_F(URLRequestHttpJobWithMockSocketsTest,
244 TestNetworkBytesCancelledAfterHeaders) { 255 TestNetworkBytesCancelledAfterHeaders) {
245 MockRead read("HTTP/1.1 200 OK\r\n\r\n"); 256 MockRead read("HTTP/1.1 200 OK\r\n\r\n");
246 StaticSocketDataProvider socket_data(&read, 1, nullptr, 0); 257 StaticSocketDataProvider socket_data(&read, 1, nullptr, 0);
247 socket_factory_.AddSocketDataProvider(&socket_data); 258 socket_factory_.AddSocketDataProvider(&socket_data);
248 259
249 TestDelegate delegate; 260 TestDelegate delegate;
250 scoped_ptr<URLRequest> request = 261 scoped_ptr<URLRequest> request =
251 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 262 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
252 &delegate) 263 &delegate)
253 .Pass(); 264 .Pass();
254 265
255 delegate.set_cancel_in_response_started(true); 266 delegate.set_cancel_in_response_started(true);
256 request->Start(); 267 request->Start();
257 base::RunLoop().RunUntilIdle(); 268 base::RunLoop().RunUntilIdle();
258 269
259 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); 270 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status());
271 EXPECT_EQ(0, request->received_response_content_length());
272 EXPECT_EQ(137, request->GetTotalSentBytes());
273 EXPECT_EQ(19, request->GetTotalReceivedBytes());
260 EXPECT_EQ(19, network_delegate_.total_network_bytes_received()); 274 EXPECT_EQ(19, network_delegate_.total_network_bytes_received());
261 } 275 }
262 276
263 TEST_F(URLRequestHttpJobWithMockSocketsTest, 277 TEST_F(URLRequestHttpJobWithMockSocketsTest,
264 TestNetworkBytesCancelledImmediately) { 278 TestNetworkBytesCancelledImmediately) {
265 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); 279 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0);
266 socket_factory_.AddSocketDataProvider(&socket_data); 280 socket_factory_.AddSocketDataProvider(&socket_data);
267 281
268 TestDelegate delegate; 282 TestDelegate delegate;
269 scoped_ptr<URLRequest> request = 283 scoped_ptr<URLRequest> request =
270 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 284 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
271 &delegate) 285 &delegate)
272 .Pass(); 286 .Pass();
273 287
274 request->Start(); 288 request->Start();
275 request->Cancel(); 289 request->Cancel();
276 base::RunLoop().RunUntilIdle(); 290 base::RunLoop().RunUntilIdle();
277 291
278 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); 292 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status());
293 EXPECT_EQ(0, request->received_response_content_length());
294 EXPECT_EQ(0, request->GetTotalSentBytes());
295 EXPECT_EQ(0, request->GetTotalReceivedBytes());
279 EXPECT_EQ(0, network_delegate_.total_network_bytes_received()); 296 EXPECT_EQ(0, network_delegate_.total_network_bytes_received());
280 } 297 }
281 298
282 TEST_F(URLRequestHttpJobWithMockSocketsTest, BackoffHeader) { 299 TEST_F(URLRequestHttpJobWithMockSocketsTest, BackoffHeader) {
283 MockWrite writes[] = {MockWrite( 300 MockWrite writes[] = {MockWrite(
284 "GET / HTTP/1.1\r\n" 301 "GET / HTTP/1.1\r\n"
285 "Host: www.example.com\r\n" 302 "Host: www.example.com\r\n"
286 "Connection: keep-alive\r\n" 303 "Connection: keep-alive\r\n"
287 "User-Agent:\r\n" 304 "User-Agent:\r\n"
288 "Accept-Encoding: gzip, deflate\r\n" 305 "Accept-Encoding: gzip, deflate\r\n"
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 req_->SetLoadFlags(LOAD_DISABLE_CACHE); 682 req_->SetLoadFlags(LOAD_DISABLE_CACHE);
666 job->Start(); 683 job->Start();
667 base::RunLoop().RunUntilIdle(); 684 base::RunLoop().RunUntilIdle();
668 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); 685 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status());
669 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); 686 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called());
670 } 687 }
671 688
672 } // namespace 689 } // namespace
673 690
674 } // namespace net 691 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698