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

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

Issue 1362793003: Notify NetworkDelegate when bytes have been sent over the network. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased on master Created 5 years, 2 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
« no previous file with comments | « net/base/network_delegate_impl.cc ('k') | net/url_request/url_request_job.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 request->Start(); 142 request->Start();
143 ASSERT_TRUE(request->is_pending()); 143 ASSERT_TRUE(request->is_pending());
144 base::RunLoop().Run(); 144 base::RunLoop().Run();
145 145
146 EXPECT_TRUE(request->status().is_success()); 146 EXPECT_TRUE(request->status().is_success());
147 EXPECT_EQ(12, request->received_response_content_length()); 147 EXPECT_EQ(12, request->received_response_content_length());
148 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), 148 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
149 request->GetTotalSentBytes()); 149 request->GetTotalSentBytes());
150 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 150 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
151 request->GetTotalReceivedBytes()); 151 request->GetTotalReceivedBytes());
152 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
153 network_delegate_.total_network_bytes_sent());
152 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 154 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
153 network_delegate_.total_network_bytes_received()); 155 network_delegate_.total_network_bytes_received());
154 } 156 }
155 157
156 TEST_F(URLRequestHttpJobWithMockSocketsTest, 158 TEST_F(URLRequestHttpJobWithMockSocketsTest,
157 TestContentLengthSuccessfulHttp09Request) { 159 TestContentLengthSuccessfulHttp09Request) {
158 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; 160 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
159 MockRead reads[] = {MockRead("Test Content"), 161 MockRead reads[] = {MockRead("Test Content"),
160 MockRead(net::SYNCHRONOUS, net::OK)}; 162 MockRead(net::SYNCHRONOUS, net::OK)};
161 163
162 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); 164 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0);
163 socket_factory_.AddSocketDataProvider(&socket_data); 165 socket_factory_.AddSocketDataProvider(&socket_data);
164 166
165 TestDelegate delegate; 167 TestDelegate delegate;
166 scoped_ptr<URLRequest> request = 168 scoped_ptr<URLRequest> request =
167 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 169 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
168 &delegate) 170 &delegate)
169 .Pass(); 171 .Pass();
170 172
171 request->Start(); 173 request->Start();
172 ASSERT_TRUE(request->is_pending()); 174 ASSERT_TRUE(request->is_pending());
173 base::RunLoop().Run(); 175 base::RunLoop().Run();
174 176
175 EXPECT_TRUE(request->status().is_success()); 177 EXPECT_TRUE(request->status().is_success());
176 EXPECT_EQ(12, request->received_response_content_length()); 178 EXPECT_EQ(12, request->received_response_content_length());
177 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), 179 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
178 request->GetTotalSentBytes()); 180 request->GetTotalSentBytes());
179 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 181 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
180 request->GetTotalReceivedBytes()); 182 request->GetTotalReceivedBytes());
183 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
184 network_delegate_.total_network_bytes_sent());
181 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 185 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
182 network_delegate_.total_network_bytes_received()); 186 network_delegate_.total_network_bytes_received());
183 } 187 }
184 188
185 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthFailedRequest) { 189 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthFailedRequest) {
186 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; 190 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
187 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" 191 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n"
188 "Content-Length: 20\r\n\r\n"), 192 "Content-Length: 20\r\n\r\n"),
189 MockRead("Test Content"), 193 MockRead("Test Content"),
190 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)}; 194 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)};
(...skipping 11 matching lines...) Expand all
202 request->Start(); 206 request->Start();
203 ASSERT_TRUE(request->is_pending()); 207 ASSERT_TRUE(request->is_pending());
204 base::RunLoop().Run(); 208 base::RunLoop().Run();
205 209
206 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); 210 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status());
207 EXPECT_EQ(12, request->received_response_content_length()); 211 EXPECT_EQ(12, request->received_response_content_length());
208 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), 212 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
209 request->GetTotalSentBytes()); 213 request->GetTotalSentBytes());
210 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 214 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
211 request->GetTotalReceivedBytes()); 215 request->GetTotalReceivedBytes());
216 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
217 network_delegate_.total_network_bytes_sent());
212 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 218 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
213 network_delegate_.total_network_bytes_received()); 219 network_delegate_.total_network_bytes_received());
214 } 220 }
215 221
216 TEST_F(URLRequestHttpJobWithMockSocketsTest, 222 TEST_F(URLRequestHttpJobWithMockSocketsTest,
217 TestContentLengthCancelledRequest) { 223 TestContentLengthCancelledRequest) {
218 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; 224 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
219 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" 225 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n"
220 "Content-Length: 20\r\n\r\n"), 226 "Content-Length: 20\r\n\r\n"),
221 MockRead("Test Content"), 227 MockRead("Test Content"),
(...skipping 12 matching lines...) Expand all
234 delegate.set_cancel_in_received_data(true); 240 delegate.set_cancel_in_received_data(true);
235 request->Start(); 241 request->Start();
236 base::RunLoop().RunUntilIdle(); 242 base::RunLoop().RunUntilIdle();
237 243
238 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); 244 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status());
239 EXPECT_EQ(12, request->received_response_content_length()); 245 EXPECT_EQ(12, request->received_response_content_length());
240 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), 246 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
241 request->GetTotalSentBytes()); 247 request->GetTotalSentBytes());
242 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 248 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
243 request->GetTotalReceivedBytes()); 249 request->GetTotalReceivedBytes());
250 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
251 network_delegate_.total_network_bytes_sent());
244 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 252 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
245 network_delegate_.total_network_bytes_received()); 253 network_delegate_.total_network_bytes_received());
246 } 254 }
247 255
248 TEST_F(URLRequestHttpJobWithMockSocketsTest, 256 TEST_F(URLRequestHttpJobWithMockSocketsTest,
249 TestNetworkBytesRedirectedRequest) { 257 TestNetworkBytesRedirectedRequest) {
250 MockWrite redirect_writes[] = { 258 MockWrite redirect_writes[] = {
251 MockWrite("GET / HTTP/1.1\r\n" 259 MockWrite("GET / HTTP/1.1\r\n"
252 "Host: www.redirect.com\r\n" 260 "Host: www.redirect.com\r\n"
253 "Connection: keep-alive\r\n" 261 "Connection: keep-alive\r\n"
(...skipping 30 matching lines...) Expand all
284 base::RunLoop().RunUntilIdle(); 292 base::RunLoop().RunUntilIdle();
285 293
286 EXPECT_TRUE(request->status().is_success()); 294 EXPECT_TRUE(request->status().is_success());
287 EXPECT_EQ(12, request->received_response_content_length()); 295 EXPECT_EQ(12, request->received_response_content_length());
288 // Should not include the redirect. 296 // Should not include the redirect.
289 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)), 297 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)),
290 request->GetTotalSentBytes()); 298 request->GetTotalSentBytes());
291 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)), 299 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)),
292 request->GetTotalReceivedBytes()); 300 request->GetTotalReceivedBytes());
293 // Should include the redirect as well as the final response. 301 // Should include the redirect as well as the final response.
302 EXPECT_EQ(CountWriteBytes(redirect_writes, arraysize(redirect_writes)) +
303 CountWriteBytes(final_writes, arraysize(final_writes)),
304 network_delegate_.total_network_bytes_sent());
294 EXPECT_EQ(CountReadBytes(redirect_reads, arraysize(redirect_reads)) + 305 EXPECT_EQ(CountReadBytes(redirect_reads, arraysize(redirect_reads)) +
295 CountReadBytes(final_reads, arraysize(final_reads)), 306 CountReadBytes(final_reads, arraysize(final_reads)),
296 network_delegate_.total_network_bytes_received()); 307 network_delegate_.total_network_bytes_received());
297 } 308 }
298 309
299 TEST_F(URLRequestHttpJobWithMockSocketsTest, 310 TEST_F(URLRequestHttpJobWithMockSocketsTest,
300 TestNetworkBytesCancelledAfterHeaders) { 311 TestNetworkBytesCancelledAfterHeaders) {
301 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; 312 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
302 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n\r\n")}; 313 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n\r\n")};
303 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, 314 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes,
304 arraysize(writes)); 315 arraysize(writes));
305 socket_factory_.AddSocketDataProvider(&socket_data); 316 socket_factory_.AddSocketDataProvider(&socket_data);
306 317
307 TestDelegate delegate; 318 TestDelegate delegate;
308 scoped_ptr<URLRequest> request = 319 scoped_ptr<URLRequest> request =
309 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 320 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
310 &delegate) 321 &delegate)
311 .Pass(); 322 .Pass();
312 323
313 delegate.set_cancel_in_response_started(true); 324 delegate.set_cancel_in_response_started(true);
314 request->Start(); 325 request->Start();
315 base::RunLoop().RunUntilIdle(); 326 base::RunLoop().RunUntilIdle();
316 327
317 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); 328 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status());
318 EXPECT_EQ(0, request->received_response_content_length()); 329 EXPECT_EQ(0, request->received_response_content_length());
319 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), 330 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
320 request->GetTotalSentBytes()); 331 request->GetTotalSentBytes());
321 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 332 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
322 request->GetTotalReceivedBytes()); 333 request->GetTotalReceivedBytes());
334 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
335 network_delegate_.total_network_bytes_sent());
323 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 336 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
324 network_delegate_.total_network_bytes_received()); 337 network_delegate_.total_network_bytes_received());
325 } 338 }
326 339
327 TEST_F(URLRequestHttpJobWithMockSocketsTest, 340 TEST_F(URLRequestHttpJobWithMockSocketsTest,
328 TestNetworkBytesCancelledImmediately) { 341 TestNetworkBytesCancelledImmediately) {
329 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); 342 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0);
330 socket_factory_.AddSocketDataProvider(&socket_data); 343 socket_factory_.AddSocketDataProvider(&socket_data);
331 344
332 TestDelegate delegate; 345 TestDelegate delegate;
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 req_->SetLoadFlags(LOAD_DISABLE_CACHE); 787 req_->SetLoadFlags(LOAD_DISABLE_CACHE);
775 job->Start(); 788 job->Start();
776 base::RunLoop().RunUntilIdle(); 789 base::RunLoop().RunUntilIdle();
777 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); 790 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status());
778 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); 791 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called());
779 } 792 }
780 793
781 } // namespace 794 } // namespace
782 795
783 } // namespace net 796 } // namespace net
OLDNEW
« no previous file with comments | « net/base/network_delegate_impl.cc ('k') | net/url_request/url_request_job.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698