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

Side by Side Diff: headless/public/util/generic_url_request_job_test.cc

Issue 2824813002: Remove URLRequestJob::GetResponseCode implementations. (Closed)
Patch Set: Fix more stuff Created 3 years, 8 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "headless/public/util/generic_url_request_job.h" 5 #include "headless/public/util/generic_url_request_job.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 84
85 // Return the canned response. 85 // Return the canned response.
86 std::unique_ptr<base::Value> fetch_reply( 86 std::unique_ptr<base::Value> fetch_reply(
87 base::JSONReader::Read(find_it->second, base::JSON_PARSE_RFC)); 87 base::JSONReader::Read(find_it->second, base::JSON_PARSE_RFC));
88 CHECK(fetch_reply) << "Invalid json: " << find_it->second; 88 CHECK(fetch_reply) << "Invalid json: " << find_it->second;
89 89
90 base::DictionaryValue* reply_dictionary; 90 base::DictionaryValue* reply_dictionary;
91 ASSERT_TRUE(fetch_reply->GetAsDictionary(&reply_dictionary)); 91 ASSERT_TRUE(fetch_reply->GetAsDictionary(&reply_dictionary));
92 std::string final_url; 92 std::string final_url;
93 ASSERT_TRUE(reply_dictionary->GetString("url", &final_url)); 93 ASSERT_TRUE(reply_dictionary->GetString("url", &final_url));
94 int http_response_code;
95 ASSERT_TRUE(reply_dictionary->GetInteger("http_response_code",
96 &http_response_code));
97 ASSERT_TRUE(reply_dictionary->GetString("data", &response_data_)); 94 ASSERT_TRUE(reply_dictionary->GetString("data", &response_data_));
98 base::DictionaryValue* reply_headers_dictionary; 95 base::DictionaryValue* reply_headers_dictionary;
99 ASSERT_TRUE( 96 ASSERT_TRUE(
100 reply_dictionary->GetDictionary("headers", &reply_headers_dictionary)); 97 reply_dictionary->GetDictionary("headers", &reply_headers_dictionary));
101 scoped_refptr<net::HttpResponseHeaders> response_headers( 98 scoped_refptr<net::HttpResponseHeaders> response_headers(
102 new net::HttpResponseHeaders("")); 99 new net::HttpResponseHeaders(""));
103 for (base::DictionaryValue::Iterator it(*reply_headers_dictionary); 100 for (base::DictionaryValue::Iterator it(*reply_headers_dictionary);
104 !it.IsAtEnd(); it.Advance()) { 101 !it.IsAtEnd(); it.Advance()) {
105 std::string value; 102 std::string value;
106 ASSERT_TRUE(it.value().GetAsString(&value)); 103 ASSERT_TRUE(it.value().GetAsString(&value));
107 response_headers->AddHeader( 104 response_headers->AddHeader(
108 base::StringPrintf("%s: %s", it.key().c_str(), value.c_str())); 105 base::StringPrintf("%s: %s", it.key().c_str(), value.c_str()));
109 } 106 }
110 107
111 result_listener->OnFetchComplete( 108 result_listener->OnFetchComplete(
112 GURL(final_url), http_response_code, std::move(response_headers), 109 GURL(final_url), std::move(response_headers), response_data_.c_str(),
113 response_data_.c_str(), response_data_.size()); 110 response_data_.size());
114 } 111 }
115 112
116 private: 113 private:
117 std::map<std::string, std::string>* json_fetch_reply_map_; // NOT OWNED 114 std::map<std::string, std::string>* json_fetch_reply_map_; // NOT OWNED
118 base::DictionaryValue* fetch_request_; // NOT OWNED 115 base::DictionaryValue* fetch_request_; // NOT OWNED
119 std::string response_data_; // Here to ensure the required lifetime. 116 std::string response_data_; // Here to ensure the required lifetime.
120 }; 117 };
121 118
122 class MockProtocolHandler : public net::URLRequestJobFactory::ProtocolHandler { 119 class MockProtocolHandler : public net::URLRequestJobFactory::ProtocolHandler {
123 public: 120 public:
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 base::DictionaryValue fetch_request_; // The request sent to MockFetcher. 183 base::DictionaryValue fetch_request_; // The request sent to MockFetcher.
187 std::map<std::string, std::string> 184 std::map<std::string, std::string>
188 json_fetch_reply_map_; // Replies to be sent by MockFetcher. 185 json_fetch_reply_map_; // Replies to be sent by MockFetcher.
189 MockDelegate job_delegate_; 186 MockDelegate job_delegate_;
190 }; 187 };
191 188
192 TEST_F(GenericURLRequestJobTest, BasicGetRequestParams) { 189 TEST_F(GenericURLRequestJobTest, BasicGetRequestParams) {
193 json_fetch_reply_map_["https://example.com/"] = R"( 190 json_fetch_reply_map_["https://example.com/"] = R"(
194 { 191 {
195 "url": "https://example.com", 192 "url": "https://example.com",
196 "http_response_code": 200,
197 "data": "Reply", 193 "data": "Reply",
198 "headers": { 194 "headers": {
199 "Content-Type": "text/html; charset=UTF-8" 195 "Content-Type": "text/html; charset=UTF-8"
200 } 196 }
201 })"; 197 })";
202 198
203 std::unique_ptr<net::URLRequest> request(url_request_context_.CreateRequest( 199 std::unique_ptr<net::URLRequest> request(url_request_context_.CreateRequest(
204 GURL("https://example.com"), net::DEFAULT_PRIORITY, &request_delegate_)); 200 GURL("https://example.com"), net::DEFAULT_PRIORITY, &request_delegate_));
205 request->SetReferrer("https://referrer.example.com"); 201 request->SetReferrer("https://referrer.example.com");
206 request->SetExtraRequestHeaderByName("Extra-Header", "Value", true); 202 request->SetExtraRequestHeaderByName("Extra-Header", "Value", true);
(...skipping 15 matching lines...) Expand all
222 } 218 }
223 })"; 219 })";
224 220
225 EXPECT_THAT(fetch_request_, MatchesJson(expected_request_json)); 221 EXPECT_THAT(fetch_request_, MatchesJson(expected_request_json));
226 } 222 }
227 223
228 TEST_F(GenericURLRequestJobTest, BasicPostRequestParams) { 224 TEST_F(GenericURLRequestJobTest, BasicPostRequestParams) {
229 json_fetch_reply_map_["https://example.com/"] = R"( 225 json_fetch_reply_map_["https://example.com/"] = R"(
230 { 226 {
231 "url": "https://example.com", 227 "url": "https://example.com",
232 "http_response_code": 200,
233 "data": "Reply", 228 "data": "Reply",
234 "headers": { 229 "headers": {
235 "Content-Type": "text/html; charset=UTF-8" 230 "Content-Type": "text/html; charset=UTF-8"
236 } 231 }
237 })"; 232 })";
238 233
239 std::unique_ptr<net::URLRequest> request(url_request_context_.CreateRequest( 234 std::unique_ptr<net::URLRequest> request(url_request_context_.CreateRequest(
240 GURL("https://example.com"), net::DEFAULT_PRIORITY, &request_delegate_)); 235 GURL("https://example.com"), net::DEFAULT_PRIORITY, &request_delegate_));
241 request->SetReferrer("https://referrer.example.com"); 236 request->SetReferrer("https://referrer.example.com");
242 request->SetExtraRequestHeaderByName("Extra-Header", "Value", true); 237 request->SetExtraRequestHeaderByName("Extra-Header", "Value", true);
(...skipping 23 matching lines...) Expand all
266 } 261 }
267 })"; 262 })";
268 263
269 EXPECT_THAT(fetch_request_, MatchesJson(expected_request_json)); 264 EXPECT_THAT(fetch_request_, MatchesJson(expected_request_json));
270 } 265 }
271 266
272 TEST_F(GenericURLRequestJobTest, BasicRequestProperties) { 267 TEST_F(GenericURLRequestJobTest, BasicRequestProperties) {
273 std::string reply = R"( 268 std::string reply = R"(
274 { 269 {
275 "url": "https://example.com", 270 "url": "https://example.com",
276 "http_response_code": 200,
277 "data": "Reply", 271 "data": "Reply",
278 "headers": { 272 "headers": {
279 "Content-Type": "text/html; charset=UTF-8" 273 "Content-Type": "text/html; charset=UTF-8"
280 } 274 }
281 })"; 275 })";
282 276
283 std::unique_ptr<net::URLRequest> request( 277 std::unique_ptr<net::URLRequest> request(
284 CreateAndCompleteGetJob(GURL("https://example.com"), reply)); 278 CreateAndCompleteGetJob(GURL("https://example.com"), reply));
285 279
286 EXPECT_EQ(200, request->GetResponseCode()); 280 EXPECT_EQ(200, request->GetResponseCode());
287 281
288 std::string mime_type; 282 std::string mime_type;
289 request->GetMimeType(&mime_type); 283 request->GetMimeType(&mime_type);
290 EXPECT_EQ("text/html", mime_type); 284 EXPECT_EQ("text/html", mime_type);
291 285
292 std::string charset; 286 std::string charset;
293 request->GetCharset(&charset); 287 request->GetCharset(&charset);
294 EXPECT_EQ("utf-8", charset); 288 EXPECT_EQ("utf-8", charset);
295 289
296 std::string content_type; 290 std::string content_type;
297 EXPECT_TRUE(request->response_info().headers->GetNormalizedHeader( 291 EXPECT_TRUE(request->response_info().headers->GetNormalizedHeader(
298 "Content-Type", &content_type)); 292 "Content-Type", &content_type));
299 EXPECT_EQ("text/html; charset=UTF-8", content_type); 293 EXPECT_EQ("text/html; charset=UTF-8", content_type);
300 } 294 }
301 295
302 TEST_F(GenericURLRequestJobTest, BasicRequestContents) { 296 TEST_F(GenericURLRequestJobTest, BasicRequestContents) {
303 std::string reply = R"( 297 std::string reply = R"(
304 { 298 {
305 "url": "https://example.com", 299 "url": "https://example.com",
306 "http_response_code": 200,
307 "data": "Reply", 300 "data": "Reply",
308 "headers": { 301 "headers": {
309 "Content-Type": "text/html; charset=UTF-8" 302 "Content-Type": "text/html; charset=UTF-8"
310 } 303 }
311 })"; 304 })";
312 305
313 std::unique_ptr<net::URLRequest> request( 306 std::unique_ptr<net::URLRequest> request(
314 CreateAndCompleteGetJob(GURL("https://example.com"), reply)); 307 CreateAndCompleteGetJob(GURL("https://example.com"), reply));
315 308
316 const int kBufferSize = 256; 309 const int kBufferSize = 256;
317 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kBufferSize)); 310 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kBufferSize));
318 int bytes_read; 311 int bytes_read;
319 EXPECT_TRUE(request->Read(buffer.get(), kBufferSize, &bytes_read)); 312 EXPECT_TRUE(request->Read(buffer.get(), kBufferSize, &bytes_read));
320 EXPECT_EQ(5, bytes_read); 313 EXPECT_EQ(5, bytes_read);
321 EXPECT_EQ("Reply", std::string(buffer->data(), 5)); 314 EXPECT_EQ("Reply", std::string(buffer->data(), 5));
322 315
323 net::LoadTimingInfo load_timing_info; 316 net::LoadTimingInfo load_timing_info;
324 request->GetLoadTimingInfo(&load_timing_info); 317 request->GetLoadTimingInfo(&load_timing_info);
325 EXPECT_FALSE(load_timing_info.receive_headers_end.is_null()); 318 EXPECT_FALSE(load_timing_info.receive_headers_end.is_null());
326 } 319 }
327 320
328 TEST_F(GenericURLRequestJobTest, ReadInParts) { 321 TEST_F(GenericURLRequestJobTest, ReadInParts) {
329 std::string reply = R"( 322 std::string reply = R"(
330 { 323 {
331 "url": "https://example.com", 324 "url": "https://example.com",
332 "http_response_code": 200,
333 "data": "Reply", 325 "data": "Reply",
334 "headers": { 326 "headers": {
335 "Content-Type": "text/html; charset=UTF-8" 327 "Content-Type": "text/html; charset=UTF-8"
336 } 328 }
337 })"; 329 })";
338 330
339 std::unique_ptr<net::URLRequest> request( 331 std::unique_ptr<net::URLRequest> request(
340 CreateAndCompleteGetJob(GURL("https://example.com"), reply)); 332 CreateAndCompleteGetJob(GURL("https://example.com"), reply));
341 333
342 const int kBufferSize = 3; 334 const int kBufferSize = 3;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 cookies->push_back(*net::CanonicalCookie::Create( 401 cookies->push_back(*net::CanonicalCookie::Create(
410 GURL("https://example.com"), "bad_path_cookie", "7", "example.com", 402 GURL("https://example.com"), "bad_path_cookie", "7", "example.com",
411 "/gadgets", base::Time(), base::Time(), 403 "/gadgets", base::Time(), base::Time(),
412 /* secure */ false, 404 /* secure */ false,
413 /* http_only */ false, net::CookieSameSite::NO_RESTRICTION, 405 /* http_only */ false, net::CookieSameSite::NO_RESTRICTION,
414 net::COOKIE_PRIORITY_DEFAULT)); 406 net::COOKIE_PRIORITY_DEFAULT));
415 407
416 std::string reply = R"( 408 std::string reply = R"(
417 { 409 {
418 "url": "https://example.com", 410 "url": "https://example.com",
419 "http_response_code": 200,
420 "data": "Reply", 411 "data": "Reply",
421 "headers": { 412 "headers": {
422 "Content-Type": "text/html; charset=UTF-8" 413 "Content-Type": "text/html; charset=UTF-8"
423 } 414 }
424 })"; 415 })";
425 416
426 std::unique_ptr<net::URLRequest> request( 417 std::unique_ptr<net::URLRequest> request(
427 CreateAndCompleteGetJob(GURL("https://example.com"), reply)); 418 CreateAndCompleteGetJob(GURL("https://example.com"), reply));
428 419
429 std::string expected_request_json = R"( 420 std::string expected_request_json = R"(
430 { 421 {
431 "url": "https://example.com/", 422 "url": "https://example.com/",
432 "method": "GET", 423 "method": "GET",
433 "headers": { 424 "headers": {
434 "Cookie": "basic_cookie=1; secure_cookie=2; http_only_cookie=3", 425 "Cookie": "basic_cookie=1; secure_cookie=2; http_only_cookie=3",
435 "Referer": "" 426 "Referer": ""
436 } 427 }
437 })"; 428 })";
438 429
439 EXPECT_THAT(fetch_request_, MatchesJson(expected_request_json)); 430 EXPECT_THAT(fetch_request_, MatchesJson(expected_request_json));
440 } 431 }
441 432
442 TEST_F(GenericURLRequestJobTest, DelegateBlocksLoading) { 433 TEST_F(GenericURLRequestJobTest, DelegateBlocksLoading) {
443 std::string reply = R"( 434 std::string reply = R"(
444 { 435 {
445 "url": "https://example.com", 436 "url": "https://example.com",
446 "http_response_code": 200,
447 "data": "Reply", 437 "data": "Reply",
448 "headers": { 438 "headers": {
449 "Content-Type": "text/html; charset=UTF-8" 439 "Content-Type": "text/html; charset=UTF-8"
450 } 440 }
451 })"; 441 })";
452 442
453 job_delegate_.SetPolicy(base::Bind([](PendingRequest* pending_request) { 443 job_delegate_.SetPolicy(base::Bind([](PendingRequest* pending_request) {
454 pending_request->BlockRequest(net::ERR_FILE_NOT_FOUND); 444 pending_request->BlockRequest(net::ERR_FILE_NOT_FOUND);
455 })); 445 }));
456 446
457 std::unique_ptr<net::URLRequest> request( 447 std::unique_ptr<net::URLRequest> request(
458 CreateAndCompleteGetJob(GURL("https://example.com"), reply)); 448 CreateAndCompleteGetJob(GURL("https://example.com"), reply));
459 449
460 EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status()); 450 EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
461 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request->status().error()); 451 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request->status().error());
462 } 452 }
463 453
464 TEST_F(GenericURLRequestJobTest, DelegateModifiesRequest) { 454 TEST_F(GenericURLRequestJobTest, DelegateModifiesRequest) {
465 json_fetch_reply_map_["https://example.com/"] = R"( 455 json_fetch_reply_map_["https://example.com/"] = R"(
466 { 456 {
467 "url": "https://example.com", 457 "url": "https://example.com",
468 "http_response_code": 200,
469 "data": "Welcome to example.com", 458 "data": "Welcome to example.com",
470 "headers": { 459 "headers": {
471 "Content-Type": "text/html; charset=UTF-8" 460 "Content-Type": "text/html; charset=UTF-8"
472 } 461 }
473 })"; 462 })";
474 463
475 json_fetch_reply_map_["https://othersite.com/"] = R"( 464 json_fetch_reply_map_["https://othersite.com/"] = R"(
476 { 465 {
477 "url": "https://example.com", 466 "url": "https://example.com",
478 "http_response_code": 200,
479 "data": "Welcome to othersite.com", 467 "data": "Welcome to othersite.com",
480 "headers": { 468 "headers": {
481 "Content-Type": "text/html; charset=UTF-8" 469 "Content-Type": "text/html; charset=UTF-8"
482 } 470 }
483 })"; 471 })";
484 472
485 // Turn the GET into a POST to a different site. 473 // Turn the GET into a POST to a different site.
486 job_delegate_.SetPolicy(base::Bind([](PendingRequest* pending_request) { 474 job_delegate_.SetPolicy(base::Bind([](PendingRequest* pending_request) {
487 net::HttpRequestHeaders headers; 475 net::HttpRequestHeaders headers;
488 headers.SetHeader("TestHeader", "Hello"); 476 headers.SetHeader("TestHeader", "Hello");
(...skipping 29 matching lines...) Expand all
518 EXPECT_TRUE(request->Read(buffer.get(), kBufferSize, &bytes_read)); 506 EXPECT_TRUE(request->Read(buffer.get(), kBufferSize, &bytes_read));
519 EXPECT_EQ(24, bytes_read); 507 EXPECT_EQ(24, bytes_read);
520 EXPECT_EQ("Welcome to othersite.com", 508 EXPECT_EQ("Welcome to othersite.com",
521 std::string(buffer->data(), bytes_read)); 509 std::string(buffer->data(), bytes_read));
522 } 510 }
523 511
524 TEST_F(GenericURLRequestJobTest, DelegateMocks404Response) { 512 TEST_F(GenericURLRequestJobTest, DelegateMocks404Response) {
525 std::string reply = R"( 513 std::string reply = R"(
526 { 514 {
527 "url": "https://example.com", 515 "url": "https://example.com",
528 "http_response_code": 200,
529 "data": "Reply", 516 "data": "Reply",
530 "headers": { 517 "headers": {
531 "Content-Type": "text/html; charset=UTF-8" 518 "Content-Type": "text/html; charset=UTF-8"
532 } 519 }
533 })"; 520 })";
534 521
535 job_delegate_.SetPolicy(base::Bind([](PendingRequest* pending_request) { 522 job_delegate_.SetPolicy(base::Bind([](PendingRequest* pending_request) {
536 std::unique_ptr<GenericURLRequestJob::MockResponseData> mock_response_data( 523 std::unique_ptr<GenericURLRequestJob::MockResponseData> mock_response_data(
537 new GenericURLRequestJob::MockResponseData()); 524 new GenericURLRequestJob::MockResponseData());
538 mock_response_data->http_response_code = 404;
539 mock_response_data->response_data = "HTTP/1.1 404 Not Found\r\n\r\n"; 525 mock_response_data->response_data = "HTTP/1.1 404 Not Found\r\n\r\n";
540 pending_request->MockResponse(std::move(mock_response_data)); 526 pending_request->MockResponse(std::move(mock_response_data));
541 })); 527 }));
542 528
543 std::unique_ptr<net::URLRequest> request( 529 std::unique_ptr<net::URLRequest> request(
544 CreateAndCompleteGetJob(GURL("https://example.com"), reply)); 530 CreateAndCompleteGetJob(GURL("https://example.com"), reply));
545 531
546 EXPECT_EQ(404, request->GetResponseCode()); 532 EXPECT_EQ(404, request->GetResponseCode());
547 } 533 }
548 534
549 TEST_F(GenericURLRequestJobTest, DelegateMocks302Response) { 535 TEST_F(GenericURLRequestJobTest, DelegateMocks302Response) {
550 job_delegate_.SetPolicy(base::Bind([](PendingRequest* pending_request) { 536 job_delegate_.SetPolicy(base::Bind([](PendingRequest* pending_request) {
551 if (pending_request->GetRequest()->GetURLRequest()->url().spec() == 537 if (pending_request->GetRequest()->GetURLRequest()->url().spec() ==
552 "https://example.com/") { 538 "https://example.com/") {
553 std::unique_ptr<GenericURLRequestJob::MockResponseData> 539 std::unique_ptr<GenericURLRequestJob::MockResponseData>
554 mock_response_data(new GenericURLRequestJob::MockResponseData()); 540 mock_response_data(new GenericURLRequestJob::MockResponseData());
555 mock_response_data->http_response_code = 302;
556 mock_response_data->response_data = 541 mock_response_data->response_data =
557 "HTTP/1.1 302 Found\r\n" 542 "HTTP/1.1 302 Found\r\n"
558 "Location: https://foo.com/\r\n\r\n"; 543 "Location: https://foo.com/\r\n\r\n";
559 pending_request->MockResponse(std::move(mock_response_data)); 544 pending_request->MockResponse(std::move(mock_response_data));
560 } else { 545 } else {
561 pending_request->AllowRequest(); 546 pending_request->AllowRequest();
562 } 547 }
563 })); 548 }));
564 549
565 json_fetch_reply_map_["https://example.com/"] = R"( 550 json_fetch_reply_map_["https://example.com/"] = R"(
566 { 551 {
567 "url": "https://example.com", 552 "url": "https://example.com",
568 "http_response_code": 200,
569 "data": "Welcome to example.com", 553 "data": "Welcome to example.com",
570 "headers": { 554 "headers": {
571 "Content-Type": "text/html; charset=UTF-8" 555 "Content-Type": "text/html; charset=UTF-8"
572 } 556 }
573 })"; 557 })";
574 558
575 json_fetch_reply_map_["https://foo.com/"] = R"( 559 json_fetch_reply_map_["https://foo.com/"] = R"(
576 { 560 {
577 "url": "https://example.com", 561 "url": "https://example.com",
578 "http_response_code": 200,
579 "data": "Welcome to foo.com", 562 "data": "Welcome to foo.com",
580 "headers": { 563 "headers": {
581 "Content-Type": "text/html; charset=UTF-8" 564 "Content-Type": "text/html; charset=UTF-8"
582 } 565 }
583 })"; 566 })";
584 567
585 std::unique_ptr<net::URLRequest> request(url_request_context_.CreateRequest( 568 std::unique_ptr<net::URLRequest> request(url_request_context_.CreateRequest(
586 GURL("https://example.com"), net::DEFAULT_PRIORITY, &request_delegate_)); 569 GURL("https://example.com"), net::DEFAULT_PRIORITY, &request_delegate_));
587 request->Start(); 570 request->Start();
588 base::RunLoop().RunUntilIdle(); 571 base::RunLoop().RunUntilIdle();
(...skipping 14 matching lines...) Expand all
603 OnResourceLoadFailed(_, net::ERR_ADDRESS_UNREACHABLE)); 586 OnResourceLoadFailed(_, net::ERR_ADDRESS_UNREACHABLE));
604 587
605 std::unique_ptr<net::URLRequest> request(url_request_context_.CreateRequest( 588 std::unique_ptr<net::URLRequest> request(url_request_context_.CreateRequest(
606 GURL("https://i-dont-exist.com"), net::DEFAULT_PRIORITY, 589 GURL("https://i-dont-exist.com"), net::DEFAULT_PRIORITY,
607 &request_delegate_)); 590 &request_delegate_));
608 request->Start(); 591 request->Start();
609 base::RunLoop().RunUntilIdle(); 592 base::RunLoop().RunUntilIdle();
610 } 593 }
611 594
612 } // namespace headless 595 } // namespace headless
OLDNEW
« no previous file with comments | « headless/public/util/generic_url_request_job.cc ('k') | headless/public/util/http_url_fetcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698