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

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: Addressed nits 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
« no previous file with comments | « net/url_request/url_request_http_job.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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 context_->set_backoff_manager(&manager_); 107 context_->set_backoff_manager(&manager_);
108 context_->Init(); 108 context_->Init();
109 } 109 }
110 110
111 MockClientSocketFactory socket_factory_; 111 MockClientSocketFactory socket_factory_;
112 TestNetworkDelegate network_delegate_; 112 TestNetworkDelegate network_delegate_;
113 URLRequestBackoffManager manager_; 113 URLRequestBackoffManager manager_;
114 scoped_ptr<TestURLRequestContext> context_; 114 scoped_ptr<TestURLRequestContext> context_;
115 }; 115 };
116 116
117 const char kSimpleGetMockWrite[] =
118 "GET / HTTP/1.1\r\n"
119 "Host: www.example.com\r\n"
120 "Connection: keep-alive\r\n"
121 "User-Agent:\r\n"
122 "Accept-Encoding: gzip, deflate\r\n"
123 "Accept-Language: en-us,fr\r\n\r\n";
124
117 TEST_F(URLRequestHttpJobWithMockSocketsTest, 125 TEST_F(URLRequestHttpJobWithMockSocketsTest,
118 TestContentLengthSuccessfulRequest) { 126 TestContentLengthSuccessfulRequest) {
127 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
119 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" 128 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n"
120 "Content-Length: 12\r\n\r\n"), 129 "Content-Length: 12\r\n\r\n"),
121 MockRead("Test Content")}; 130 MockRead("Test Content")};
122 131
123 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); 132 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes,
133 arraysize(writes));
124 socket_factory_.AddSocketDataProvider(&socket_data); 134 socket_factory_.AddSocketDataProvider(&socket_data);
125 135
126 TestDelegate delegate; 136 TestDelegate delegate;
127 scoped_ptr<URLRequest> request = 137 scoped_ptr<URLRequest> request =
128 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 138 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
129 &delegate) 139 &delegate)
130 .Pass(); 140 .Pass();
131 141
132 request->Start(); 142 request->Start();
133 ASSERT_TRUE(request->is_pending()); 143 ASSERT_TRUE(request->is_pending());
134 base::RunLoop().Run(); 144 base::RunLoop().Run();
135 145
136 EXPECT_TRUE(request->status().is_success()); 146 EXPECT_TRUE(request->status().is_success());
137 EXPECT_EQ(12, request->received_response_content_length()); 147 EXPECT_EQ(12, request->received_response_content_length());
138 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); 148 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
149 request->GetTotalSentBytes());
150 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
151 request->GetTotalReceivedBytes());
152 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
153 network_delegate_.total_network_bytes_received());
139 } 154 }
140 155
141 TEST_F(URLRequestHttpJobWithMockSocketsTest, 156 TEST_F(URLRequestHttpJobWithMockSocketsTest,
142 TestContentLengthSuccessfulHttp09Request) { 157 TestContentLengthSuccessfulHttp09Request) {
158 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
143 MockRead reads[] = {MockRead("Test Content"), 159 MockRead reads[] = {MockRead("Test Content"),
144 MockRead(net::SYNCHRONOUS, net::OK)}; 160 MockRead(net::SYNCHRONOUS, net::OK)};
145 161
146 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); 162 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0);
147 socket_factory_.AddSocketDataProvider(&socket_data); 163 socket_factory_.AddSocketDataProvider(&socket_data);
148 164
149 TestDelegate delegate; 165 TestDelegate delegate;
150 scoped_ptr<URLRequest> request = 166 scoped_ptr<URLRequest> request =
151 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 167 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
152 &delegate) 168 &delegate)
153 .Pass(); 169 .Pass();
154 170
155 request->Start(); 171 request->Start();
156 ASSERT_TRUE(request->is_pending()); 172 ASSERT_TRUE(request->is_pending());
157 base::RunLoop().Run(); 173 base::RunLoop().Run();
158 174
159 EXPECT_TRUE(request->status().is_success()); 175 EXPECT_TRUE(request->status().is_success());
160 EXPECT_EQ(12, request->received_response_content_length()); 176 EXPECT_EQ(12, request->received_response_content_length());
161 EXPECT_EQ(12, network_delegate_.total_network_bytes_received()); 177 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
178 request->GetTotalSentBytes());
179 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
180 request->GetTotalReceivedBytes());
181 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
182 network_delegate_.total_network_bytes_received());
162 } 183 }
163 184
164 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthAbortedRequest) { 185 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthFailedRequest) {
186 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
165 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" 187 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n"
166 "Content-Length: 20\r\n\r\n"), 188 "Content-Length: 20\r\n\r\n"),
167 MockRead("Test Content"), 189 MockRead("Test Content"),
168 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)}; 190 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)};
169 191
170 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); 192 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes,
193 arraysize(writes));
171 socket_factory_.AddSocketDataProvider(&socket_data); 194 socket_factory_.AddSocketDataProvider(&socket_data);
172 195
173 TestDelegate delegate; 196 TestDelegate delegate;
174 scoped_ptr<URLRequest> request = 197 scoped_ptr<URLRequest> request =
175 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 198 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
176 &delegate) 199 &delegate)
177 .Pass(); 200 .Pass();
178 201
179 request->Start(); 202 request->Start();
180 ASSERT_TRUE(request->is_pending()); 203 ASSERT_TRUE(request->is_pending());
181 base::RunLoop().Run(); 204 base::RunLoop().Run();
182 205
183 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); 206 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status());
184 EXPECT_EQ(12, request->received_response_content_length()); 207 EXPECT_EQ(12, request->received_response_content_length());
185 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); 208 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
209 request->GetTotalSentBytes());
210 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
211 request->GetTotalReceivedBytes());
212 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
213 network_delegate_.total_network_bytes_received());
186 } 214 }
187 215
188 TEST_F(URLRequestHttpJobWithMockSocketsTest, 216 TEST_F(URLRequestHttpJobWithMockSocketsTest,
189 TestContentLengthCancelledRequest) { 217 TestContentLengthCancelledRequest) {
218 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
190 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" 219 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n"
191 "Content-Length: 20\r\n\r\n"), 220 "Content-Length: 20\r\n\r\n"),
192 MockRead("Test Content"), 221 MockRead("Test Content"),
193 MockRead(net::SYNCHRONOUS, net::ERR_IO_PENDING)}; 222 MockRead(net::SYNCHRONOUS, net::ERR_IO_PENDING)};
194 223
195 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); 224 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes,
225 arraysize(writes));
196 socket_factory_.AddSocketDataProvider(&socket_data); 226 socket_factory_.AddSocketDataProvider(&socket_data);
197 227
198 TestDelegate delegate; 228 TestDelegate delegate;
199 scoped_ptr<URLRequest> request = 229 scoped_ptr<URLRequest> request =
200 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 230 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
201 &delegate) 231 &delegate)
202 .Pass(); 232 .Pass();
203 233
204 delegate.set_cancel_in_received_data(true); 234 delegate.set_cancel_in_received_data(true);
205 request->Start(); 235 request->Start();
206 base::RunLoop().RunUntilIdle(); 236 base::RunLoop().RunUntilIdle();
207 237
208 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); 238 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status());
209 EXPECT_EQ(12, request->received_response_content_length()); 239 EXPECT_EQ(12, request->received_response_content_length());
210 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); 240 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
241 request->GetTotalSentBytes());
242 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
243 request->GetTotalReceivedBytes());
244 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
245 network_delegate_.total_network_bytes_received());
211 } 246 }
212 247
213 TEST_F(URLRequestHttpJobWithMockSocketsTest, 248 TEST_F(URLRequestHttpJobWithMockSocketsTest,
214 TestNetworkBytesRedirectedRequest) { 249 TestNetworkBytesRedirectedRequest) {
215 MockRead redirect_read( 250 MockWrite redirect_writes[] = {
216 "HTTP/1.1 302 Found\r\n" 251 MockWrite("GET / HTTP/1.1\r\n"
217 "Location: http://www.example.com\r\n\r\n"); 252 "Host: www.redirect.com\r\n"
218 StaticSocketDataProvider redirect_socket_data(&redirect_read, 1, nullptr, 0); 253 "Connection: keep-alive\r\n"
254 "User-Agent:\r\n"
255 "Accept-Encoding: gzip, deflate\r\n"
256 "Accept-Language: en-us,fr\r\n\r\n")};
257
258 MockRead redirect_reads[] = {
259 MockRead("HTTP/1.1 302 Found\r\n"
260 "Location: http://www.example.com\r\n\r\n"),
261 };
262 StaticSocketDataProvider redirect_socket_data(
263 redirect_reads, arraysize(redirect_reads), redirect_writes,
264 arraysize(redirect_writes));
219 socket_factory_.AddSocketDataProvider(&redirect_socket_data); 265 socket_factory_.AddSocketDataProvider(&redirect_socket_data);
220 266
221 MockRead response_reads[] = {MockRead("HTTP/1.1 200 OK\r\n" 267 MockWrite final_writes[] = {MockWrite(kSimpleGetMockWrite)};
222 "Content-Length: 12\r\n\r\n"), 268 MockRead final_reads[] = {MockRead("HTTP/1.1 200 OK\r\n"
223 MockRead("Test Content")}; 269 "Content-Length: 12\r\n\r\n"),
224 StaticSocketDataProvider response_socket_data( 270 MockRead("Test Content")};
225 response_reads, arraysize(response_reads), nullptr, 0); 271 StaticSocketDataProvider final_socket_data(
226 socket_factory_.AddSocketDataProvider(&response_socket_data); 272 final_reads, arraysize(final_reads), final_writes,
273 arraysize(final_writes));
274 socket_factory_.AddSocketDataProvider(&final_socket_data);
227 275
228 TestDelegate delegate; 276 TestDelegate delegate;
229 scoped_ptr<URLRequest> request = 277 scoped_ptr<URLRequest> request =
230 context_->CreateRequest(GURL("http://www.redirect.com"), DEFAULT_PRIORITY, 278 context_->CreateRequest(GURL("http://www.redirect.com"), DEFAULT_PRIORITY,
231 &delegate) 279 &delegate)
232 .Pass(); 280 .Pass();
233 281
234 request->Start(); 282 request->Start();
235 ASSERT_TRUE(request->is_pending()); 283 ASSERT_TRUE(request->is_pending());
236 base::RunLoop().RunUntilIdle(); 284 base::RunLoop().RunUntilIdle();
237 285
238 EXPECT_TRUE(request->status().is_success()); 286 EXPECT_TRUE(request->status().is_success());
239 EXPECT_EQ(12, request->received_response_content_length()); 287 EXPECT_EQ(12, request->received_response_content_length());
240 EXPECT_EQ(107, network_delegate_.total_network_bytes_received()); 288 // Should not include the redirect.
289 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)),
290 request->GetTotalSentBytes());
291 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)),
292 request->GetTotalReceivedBytes());
293 // Should include the redirect as well as the final response.
294 EXPECT_EQ(CountReadBytes(redirect_reads, arraysize(redirect_reads)) +
295 CountReadBytes(final_reads, arraysize(final_reads)),
296 network_delegate_.total_network_bytes_received());
241 } 297 }
242 298
243 TEST_F(URLRequestHttpJobWithMockSocketsTest, 299 TEST_F(URLRequestHttpJobWithMockSocketsTest,
244 TestNetworkBytesCancelledAfterHeaders) { 300 TestNetworkBytesCancelledAfterHeaders) {
245 MockRead read("HTTP/1.1 200 OK\r\n\r\n"); 301 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
246 StaticSocketDataProvider socket_data(&read, 1, nullptr, 0); 302 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n\r\n")};
303 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes,
304 arraysize(writes));
247 socket_factory_.AddSocketDataProvider(&socket_data); 305 socket_factory_.AddSocketDataProvider(&socket_data);
248 306
249 TestDelegate delegate; 307 TestDelegate delegate;
250 scoped_ptr<URLRequest> request = 308 scoped_ptr<URLRequest> request =
251 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 309 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
252 &delegate) 310 &delegate)
253 .Pass(); 311 .Pass();
254 312
255 delegate.set_cancel_in_response_started(true); 313 delegate.set_cancel_in_response_started(true);
256 request->Start(); 314 request->Start();
257 base::RunLoop().RunUntilIdle(); 315 base::RunLoop().RunUntilIdle();
258 316
259 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); 317 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status());
260 EXPECT_EQ(19, network_delegate_.total_network_bytes_received()); 318 EXPECT_EQ(0, request->received_response_content_length());
319 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)),
320 request->GetTotalSentBytes());
321 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
322 request->GetTotalReceivedBytes());
323 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
324 network_delegate_.total_network_bytes_received());
261 } 325 }
262 326
263 TEST_F(URLRequestHttpJobWithMockSocketsTest, 327 TEST_F(URLRequestHttpJobWithMockSocketsTest,
264 TestNetworkBytesCancelledImmediately) { 328 TestNetworkBytesCancelledImmediately) {
265 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); 329 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0);
266 socket_factory_.AddSocketDataProvider(&socket_data); 330 socket_factory_.AddSocketDataProvider(&socket_data);
267 331
268 TestDelegate delegate; 332 TestDelegate delegate;
269 scoped_ptr<URLRequest> request = 333 scoped_ptr<URLRequest> request =
270 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 334 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
271 &delegate) 335 &delegate)
272 .Pass(); 336 .Pass();
273 337
274 request->Start(); 338 request->Start();
275 request->Cancel(); 339 request->Cancel();
276 base::RunLoop().RunUntilIdle(); 340 base::RunLoop().RunUntilIdle();
277 341
278 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); 342 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status());
343 EXPECT_EQ(0, request->received_response_content_length());
344 EXPECT_EQ(0, request->GetTotalSentBytes());
345 EXPECT_EQ(0, request->GetTotalReceivedBytes());
279 EXPECT_EQ(0, network_delegate_.total_network_bytes_received()); 346 EXPECT_EQ(0, network_delegate_.total_network_bytes_received());
280 } 347 }
281 348
282 TEST_F(URLRequestHttpJobWithMockSocketsTest, BackoffHeader) { 349 TEST_F(URLRequestHttpJobWithMockSocketsTest, BackoffHeader) {
283 MockWrite writes[] = {MockWrite( 350 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
284 "GET / HTTP/1.1\r\n"
285 "Host: www.example.com\r\n"
286 "Connection: keep-alive\r\n"
287 "User-Agent:\r\n"
288 "Accept-Encoding: gzip, deflate\r\n"
289 "Accept-Language: en-us,fr\r\n\r\n")};
290
291 MockRead reads[] = {MockRead( 351 MockRead reads[] = {MockRead(
292 "HTTP/1.1 200 OK\r\n" 352 "HTTP/1.1 200 OK\r\n"
293 "Backoff: 3600\r\n" 353 "Backoff: 3600\r\n"
294 "Content-Length: 9\r\n\r\n"), 354 "Content-Length: 9\r\n\r\n"),
295 MockRead("test.html")}; 355 MockRead("test.html")};
296 356
297 net::SSLSocketDataProvider ssl_socket_data_provider(net::ASYNC, net::OK); 357 net::SSLSocketDataProvider ssl_socket_data_provider(net::ASYNC, net::OK);
298 ssl_socket_data_provider.SetNextProto(kProtoHTTP11); 358 ssl_socket_data_provider.SetNextProto(kProtoHTTP11);
299 ssl_socket_data_provider.cert = 359 ssl_socket_data_provider.cert =
300 ImportCertFromFile(GetTestCertsDirectory(), "unittest.selfsigned.der"); 360 ImportCertFromFile(GetTestCertsDirectory(), "unittest.selfsigned.der");
(...skipping 26 matching lines...) Expand all
327 request2->Start(); 387 request2->Start();
328 ASSERT_TRUE(request2->is_pending()); 388 ASSERT_TRUE(request2->is_pending());
329 base::RunLoop().Run(); 389 base::RunLoop().Run();
330 390
331 EXPECT_FALSE(request2->status().is_success()); 391 EXPECT_FALSE(request2->status().is_success());
332 EXPECT_EQ(ERR_TEMPORARY_BACKOFF, request2->status().error()); 392 EXPECT_EQ(ERR_TEMPORARY_BACKOFF, request2->status().error());
333 EXPECT_EQ(0, delegate2.received_before_network_start_count()); 393 EXPECT_EQ(0, delegate2.received_before_network_start_count());
334 } 394 }
335 395
336 TEST_F(URLRequestHttpJobWithMockSocketsTest, BackoffHeaderNotSecure) { 396 TEST_F(URLRequestHttpJobWithMockSocketsTest, BackoffHeaderNotSecure) {
337 MockWrite writes[] = {MockWrite( 397 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
338 "GET / HTTP/1.1\r\n"
339 "Host: www.example.com\r\n"
340 "Connection: keep-alive\r\n"
341 "User-Agent:\r\n"
342 "Accept-Encoding: gzip, deflate\r\n"
343 "Accept-Language: en-us,fr\r\n\r\n")};
344 MockRead reads[] = {MockRead( 398 MockRead reads[] = {MockRead(
345 "HTTP/1.1 200 OK\r\n" 399 "HTTP/1.1 200 OK\r\n"
346 "Backoff: 3600\r\n" 400 "Backoff: 3600\r\n"
347 "Content-Length: 9\r\n\r\n"), 401 "Content-Length: 9\r\n\r\n"),
348 MockRead("test.html")}; 402 MockRead("test.html")};
349 403
350 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, 404 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes,
351 arraysize(writes)); 405 arraysize(writes));
352 socket_factory_.AddSocketDataProvider(&socket_data); 406 socket_factory_.AddSocketDataProvider(&socket_data);
353 407
354 TestDelegate delegate; 408 TestDelegate delegate;
355 scoped_ptr<URLRequest> request = 409 scoped_ptr<URLRequest> request =
356 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, 410 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY,
357 &delegate).Pass(); 411 &delegate).Pass();
358 412
359 request->Start(); 413 request->Start();
360 ASSERT_TRUE(request->is_pending()); 414 ASSERT_TRUE(request->is_pending());
361 base::RunLoop().Run(); 415 base::RunLoop().Run();
362 416
363 EXPECT_TRUE(request->status().is_success()); 417 EXPECT_TRUE(request->status().is_success());
364 EXPECT_EQ("test.html", delegate.data_received()); 418 EXPECT_EQ("test.html", delegate.data_received());
365 EXPECT_EQ(1, delegate.received_before_network_start_count()); 419 EXPECT_EQ(1, delegate.received_before_network_start_count());
366 // Backoff logic does not apply to plain HTTP request. 420 // Backoff logic does not apply to plain HTTP request.
367 EXPECT_EQ(0, manager_.GetNumberOfEntriesForTests()); 421 EXPECT_EQ(0, manager_.GetNumberOfEntriesForTests());
368 } 422 }
369 423
370 TEST_F(URLRequestHttpJobWithMockSocketsTest, BackoffHeaderCachedResponse) { 424 TEST_F(URLRequestHttpJobWithMockSocketsTest, BackoffHeaderCachedResponse) {
371 MockWrite writes[] = {MockWrite( 425 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
372 "GET / HTTP/1.1\r\n"
373 "Host: www.example.com\r\n"
374 "Connection: keep-alive\r\n"
375 "User-Agent:\r\n"
376 "Accept-Encoding: gzip, deflate\r\n"
377 "Accept-Language: en-us,fr\r\n\r\n")};
378 MockRead reads[] = {MockRead( 426 MockRead reads[] = {MockRead(
379 "HTTP/1.1 200 OK\r\n" 427 "HTTP/1.1 200 OK\r\n"
380 "Backoff: 3600\r\n" 428 "Backoff: 3600\r\n"
381 "Cache-Control: max-age=120\r\n" 429 "Cache-Control: max-age=120\r\n"
382 "Content-Length: 9\r\n\r\n"), 430 "Content-Length: 9\r\n\r\n"),
383 MockRead("test.html")}; 431 MockRead("test.html")};
384 432
385 net::SSLSocketDataProvider ssl_socket_data_provider(net::ASYNC, net::OK); 433 net::SSLSocketDataProvider ssl_socket_data_provider(net::ASYNC, net::OK);
386 ssl_socket_data_provider.SetNextProto(kProtoHTTP11); 434 ssl_socket_data_provider.SetNextProto(kProtoHTTP11);
387 ssl_socket_data_provider.cert = 435 ssl_socket_data_provider.cert =
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 req_->SetLoadFlags(LOAD_DISABLE_CACHE); 713 req_->SetLoadFlags(LOAD_DISABLE_CACHE);
666 job->Start(); 714 job->Start();
667 base::RunLoop().RunUntilIdle(); 715 base::RunLoop().RunUntilIdle();
668 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); 716 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status());
669 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); 717 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called());
670 } 718 }
671 719
672 } // namespace 720 } // namespace
673 721
674 } // namespace net 722 } // namespace net
OLDNEW
« no previous file with comments | « net/url_request/url_request_http_job.cc ('k') | net/url_request/url_request_job.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698