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

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

Issue 2511143002: Implement GenericURLRequestJob::GetLoadTimingInfo (Closed)
Patch Set: Added a TODO Created 4 years, 1 month 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 | « headless/public/util/generic_url_request_job.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 reply_dictionary->GetDictionary("headers", &reply_headers_dictionary)); 79 reply_dictionary->GetDictionary("headers", &reply_headers_dictionary));
80 scoped_refptr<net::HttpResponseHeaders> response_headers( 80 scoped_refptr<net::HttpResponseHeaders> response_headers(
81 new net::HttpResponseHeaders("")); 81 new net::HttpResponseHeaders(""));
82 for (base::DictionaryValue::Iterator it(*reply_headers_dictionary); 82 for (base::DictionaryValue::Iterator it(*reply_headers_dictionary);
83 !it.IsAtEnd(); it.Advance()) { 83 !it.IsAtEnd(); it.Advance()) {
84 std::string value; 84 std::string value;
85 ASSERT_TRUE(it.value().GetAsString(&value)); 85 ASSERT_TRUE(it.value().GetAsString(&value));
86 response_headers->AddHeader( 86 response_headers->AddHeader(
87 base::StringPrintf("%s: %s", it.key().c_str(), value.c_str())); 87 base::StringPrintf("%s: %s", it.key().c_str(), value.c_str()));
88 } 88 }
89
89 result_listener->OnFetchComplete( 90 result_listener->OnFetchComplete(
90 GURL(final_url), http_response_code, std::move(response_headers), 91 GURL(final_url), http_response_code, std::move(response_headers),
91 response_data_.c_str(), response_data_.size()); 92 response_data_.c_str(), response_data_.size());
92 } 93 }
93 94
94 private: 95 private:
95 std::unique_ptr<base::Value> fetch_reply_; 96 std::unique_ptr<base::Value> fetch_reply_;
96 base::DictionaryValue* fetch_request_; // NOT OWNED 97 base::DictionaryValue* fetch_request_; // NOT OWNED
97 std::string response_data_; // Here to ensure the required lifetime. 98 std::string response_data_; // Here to ensure the required lifetime.
98 }; 99 };
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 234
234 std::unique_ptr<net::URLRequest> request( 235 std::unique_ptr<net::URLRequest> request(
235 CreateAndCompleteJob(GURL("https://example.com"), reply)); 236 CreateAndCompleteJob(GURL("https://example.com"), reply));
236 237
237 const int kBufferSize = 256; 238 const int kBufferSize = 256;
238 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kBufferSize)); 239 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kBufferSize));
239 int bytes_read; 240 int bytes_read;
240 EXPECT_TRUE(request->Read(buffer.get(), kBufferSize, &bytes_read)); 241 EXPECT_TRUE(request->Read(buffer.get(), kBufferSize, &bytes_read));
241 EXPECT_EQ(5, bytes_read); 242 EXPECT_EQ(5, bytes_read);
242 EXPECT_EQ("Reply", std::string(buffer->data(), 5)); 243 EXPECT_EQ("Reply", std::string(buffer->data(), 5));
244
245 net::LoadTimingInfo load_timing_info;
246 request->GetLoadTimingInfo(&load_timing_info);
247 EXPECT_FALSE(load_timing_info.receive_headers_end.is_null());
243 } 248 }
244 249
245 TEST_F(GenericURLRequestJobTest, ReadInParts) { 250 TEST_F(GenericURLRequestJobTest, ReadInParts) {
246 std::string reply = 251 std::string reply =
247 "{\"url\":\"https://example.com\"," 252 "{\"url\":\"https://example.com\","
248 " \"http_response_code\":200," 253 " \"http_response_code\":200,"
249 " \"data\":\"Reply\"," 254 " \"data\":\"Reply\","
250 " \"headers\":{\"Content-Type\":\"text/html; charset=UTF-8\"}}"; 255 " \"headers\":{\"Content-Type\":\"text/html; charset=UTF-8\"}}";
251 256
252 std::unique_ptr<net::URLRequest> request( 257 std::unique_ptr<net::URLRequest> request(
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 job_delegate_.SetShouldBlock(true); 362 job_delegate_.SetShouldBlock(true);
358 363
359 std::unique_ptr<net::URLRequest> request( 364 std::unique_ptr<net::URLRequest> request(
360 CreateAndCompleteJob(GURL("https://example.com"), reply)); 365 CreateAndCompleteJob(GURL("https://example.com"), reply));
361 366
362 EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status()); 367 EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
363 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request->status().error()); 368 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request->status().error());
364 } 369 }
365 370
366 } // namespace headless 371 } // namespace headless
OLDNEW
« no previous file with comments | « headless/public/util/generic_url_request_job.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698