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

Side by Side Diff: net/test/embedded_test_server/request_handler_util.cc

Issue 1893083002: Change scoped_ptr to std::unique_ptr in //net. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: scopedptr-net-all: iwyu Created 4 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
« no previous file with comments | « net/test/embedded_test_server/request_handler_util.h ('k') | net/test/python_utils.cc » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/test/embedded_test_server/request_handler_util.h" 5 #include "net/test/embedded_test_server/request_handler_util.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8
8 #include <ctime> 9 #include <ctime>
9 #include <sstream> 10 #include <sstream>
10 #include <utility> 11 #include <utility>
11 12
12 #include "base/base64.h" 13 #include "base/base64.h"
13 #include "base/files/file_util.h" 14 #include "base/files/file_util.h"
14 #include "base/format_macros.h" 15 #include "base/format_macros.h"
16 #include "base/memory/ptr_util.h"
15 #include "base/strings/string_util.h" 17 #include "base/strings/string_util.h"
16 #include "base/strings/stringprintf.h" 18 #include "base/strings/stringprintf.h"
17 #include "base/threading/thread_restrictions.h" 19 #include "base/threading/thread_restrictions.h"
18 #include "net/base/escape.h" 20 #include "net/base/escape.h"
19 #include "net/base/url_util.h" 21 #include "net/base/url_util.h"
20 #include "net/http/http_byte_range.h" 22 #include "net/http/http_byte_range.h"
21 #include "net/http/http_util.h" 23 #include "net/http/http_util.h"
22 #include "net/test/embedded_test_server/http_request.h" 24 #include "net/test/embedded_test_server/http_request.h"
23 #include "url/gurl.h" 25 #include "url/gurl.h"
24 26
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 70
69 } // namespace 71 } // namespace
70 72
71 bool ShouldHandle(const HttpRequest& request, const std::string& path_prefix) { 73 bool ShouldHandle(const HttpRequest& request, const std::string& path_prefix) {
72 GURL url = request.GetURL(); 74 GURL url = request.GetURL();
73 return url.path() == path_prefix || 75 return url.path() == path_prefix ||
74 base::StartsWith(url.path(), path_prefix + "/", 76 base::StartsWith(url.path(), path_prefix + "/",
75 base::CompareCase::SENSITIVE); 77 base::CompareCase::SENSITIVE);
76 } 78 }
77 79
78 scoped_ptr<HttpResponse> HandlePrefixedRequest( 80 std::unique_ptr<HttpResponse> HandlePrefixedRequest(
79 const std::string& prefix, 81 const std::string& prefix,
80 const EmbeddedTestServer::HandleRequestCallback& handler, 82 const EmbeddedTestServer::HandleRequestCallback& handler,
81 const HttpRequest& request) { 83 const HttpRequest& request) {
82 if (ShouldHandle(request, prefix)) 84 if (ShouldHandle(request, prefix))
83 return handler.Run(request); 85 return handler.Run(request);
84 return nullptr; 86 return nullptr;
85 } 87 }
86 88
87 RequestQuery ParseQuery(const GURL& url) { 89 RequestQuery ParseQuery(const GURL& url) {
88 RequestQuery queries; 90 RequestQuery queries;
(...skipping 22 matching lines...) Expand all
111 new_file_path += "replace_text="; 113 new_file_path += "replace_text=";
112 new_file_path += base64_old; 114 new_file_path += base64_old;
113 new_file_path += ":"; 115 new_file_path += ":";
114 new_file_path += base64_new; 116 new_file_path += base64_new;
115 } 117 }
116 118
117 *replacement_path = new_file_path; 119 *replacement_path = new_file_path;
118 } 120 }
119 121
120 // Handles |request| by serving a file from under |server_root|. 122 // Handles |request| by serving a file from under |server_root|.
121 scoped_ptr<HttpResponse> HandleFileRequest(const base::FilePath& server_root, 123 std::unique_ptr<HttpResponse> HandleFileRequest(
122 const HttpRequest& request) { 124 const base::FilePath& server_root,
125 const HttpRequest& request) {
123 // This is a test-only server. Ignore I/O thread restrictions. 126 // This is a test-only server. Ignore I/O thread restrictions.
124 // TODO(svaldez): Figure out why thread is I/O restricted in the first place. 127 // TODO(svaldez): Figure out why thread is I/O restricted in the first place.
125 base::ThreadRestrictions::ScopedAllowIO allow_io; 128 base::ThreadRestrictions::ScopedAllowIO allow_io;
126 129
127 // A proxy request will have an absolute path. Simulate the proxy by stripping 130 // A proxy request will have an absolute path. Simulate the proxy by stripping
128 // the scheme, host, and port. 131 // the scheme, host, and port.
129 GURL request_url = request.GetURL(); 132 GURL request_url = request.GetURL();
130 std::string relative_path(request_url.path()); 133 std::string relative_path(request_url.path());
131 134
132 std::string post_prefix("/post/"); 135 std::string post_prefix("/post/");
133 if (base::StartsWith(relative_path, post_prefix, 136 if (base::StartsWith(relative_path, post_prefix,
134 base::CompareCase::SENSITIVE)) { 137 base::CompareCase::SENSITIVE)) {
135 if (request.method != METHOD_POST) 138 if (request.method != METHOD_POST)
136 return nullptr; 139 return nullptr;
137 relative_path = relative_path.substr(post_prefix.size() - 1); 140 relative_path = relative_path.substr(post_prefix.size() - 1);
138 } 141 }
139 142
140 RequestQuery query = ParseQuery(request_url); 143 RequestQuery query = ParseQuery(request_url);
141 144
142 scoped_ptr<BasicHttpResponse> failed_response(new BasicHttpResponse); 145 std::unique_ptr<BasicHttpResponse> failed_response(new BasicHttpResponse);
143 failed_response->set_code(HTTP_NOT_FOUND); 146 failed_response->set_code(HTTP_NOT_FOUND);
144 147
145 if (query.find("expected_body") != query.end()) { 148 if (query.find("expected_body") != query.end()) {
146 if (request.content.find(query["expected_body"].front()) == 149 if (request.content.find(query["expected_body"].front()) ==
147 std::string::npos) { 150 std::string::npos) {
148 return std::move(failed_response); 151 return std::move(failed_response);
149 } 152 }
150 } 153 }
151 154
152 if (query.find("expected_headers") != query.end()) { 155 if (query.find("expected_headers") != query.end()) {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 193
191 base::FilePath headers_path( 194 base::FilePath headers_path(
192 file_path.AddExtension(FILE_PATH_LITERAL("mock-http-headers"))); 195 file_path.AddExtension(FILE_PATH_LITERAL("mock-http-headers")));
193 196
194 if (base::PathExists(headers_path)) { 197 if (base::PathExists(headers_path)) {
195 std::string headers_contents; 198 std::string headers_contents;
196 199
197 if (!base::ReadFileToString(headers_path, &headers_contents)) 200 if (!base::ReadFileToString(headers_path, &headers_contents))
198 return nullptr; 201 return nullptr;
199 202
200 return make_scoped_ptr( 203 return base::WrapUnique(
201 new RawHttpResponse(headers_contents, file_contents)); 204 new RawHttpResponse(headers_contents, file_contents));
202 } 205 }
203 206
204 scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse); 207 std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
205 http_response->set_code(HTTP_OK); 208 http_response->set_code(HTTP_OK);
206 209
207 if (request.headers.find("Range") != request.headers.end()) { 210 if (request.headers.find("Range") != request.headers.end()) {
208 std::vector<HttpByteRange> ranges; 211 std::vector<HttpByteRange> ranges;
209 212
210 if (HttpUtil::ParseRangeHeader(request.headers.at("Range"), &ranges) && 213 if (HttpUtil::ParseRangeHeader(request.headers.at("Range"), &ranges) &&
211 ranges.size() == 1) { 214 ranges.size() == 1) {
212 ranges[0].ComputeBounds(file_contents.size()); 215 ranges[0].ComputeBounds(file_contents.size());
213 size_t start = ranges[0].first_byte_position(); 216 size_t start = ranges[0].first_byte_position();
214 size_t end = ranges[0].last_byte_position(); 217 size_t end = ranges[0].last_byte_position();
(...skipping 10 matching lines...) Expand all
225 228
226 http_response->set_content_type(GetContentType(file_path)); 229 http_response->set_content_type(GetContentType(file_path));
227 http_response->AddCustomHeader("Accept-Ranges", "bytes"); 230 http_response->AddCustomHeader("Accept-Ranges", "bytes");
228 http_response->AddCustomHeader("ETag", "'" + file_path.MaybeAsASCII() + "'"); 231 http_response->AddCustomHeader("ETag", "'" + file_path.MaybeAsASCII() + "'");
229 http_response->set_content(file_contents); 232 http_response->set_content(file_contents);
230 return std::move(http_response); 233 return std::move(http_response);
231 } 234 }
232 235
233 } // namespace test_server 236 } // namespace test_server
234 } // namespace net 237 } // namespace net
OLDNEW
« no previous file with comments | « net/test/embedded_test_server/request_handler_util.h ('k') | net/test/python_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698