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

Unified Diff: net/test/embedded_test_server/embedded_test_server.cc

Issue 15505003: GTTF: Convert most tests in content to use EmbeddedTestServer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixes Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: net/test/embedded_test_server/embedded_test_server.cc
diff --git a/net/test/embedded_test_server/embedded_test_server.cc b/net/test/embedded_test_server/embedded_test_server.cc
index deeed7d021efcaad503d0f347866170c91623adc..80a1e7c8f1be6ea5e9b009768d03b360426856b8 100644
--- a/net/test/embedded_test_server/embedded_test_server.cc
+++ b/net/test/embedded_test_server/embedded_test_server.cc
@@ -27,36 +27,31 @@ const int kPort = 8040;
const char kIp[] = "127.0.0.1";
const int kRetries = 10;
-// Callback to handle requests with default predefined response for requests
-// matching the address |url|.
-scoped_ptr<HttpResponse> HandleDefaultRequest(const GURL& url,
- const HttpResponse& response,
- const HttpRequest& request) {
- const GURL request_url = url.Resolve(request.relative_url);
- if (url.path() != request_url.path())
- return scoped_ptr<HttpResponse>(NULL);
- return scoped_ptr<HttpResponse>(new HttpResponse(response));
-}
-
// Handles |request| by serving a file from under |server_root|.
-scoped_ptr<HttpResponse> HandleFileRequest(const base::FilePath& server_root,
- const HttpRequest& request) {
+scoped_ptr<HttpResponseInterface> HandleFileRequest(
+ const base::FilePath& server_root,
+ const HttpRequest& request) {
// This is a test-only server. Ignore I/O thread restrictions.
base::ThreadRestrictions::ScopedAllowIO allow_io;
// Trim the first byte ('/').
std::string request_path(request.relative_url.substr(1));
+ // Remove the query string if present.
+ size_t query_pos = request_path.find('?');
+ if (query_pos != std::string::npos)
+ request_path = request_path.substr(0, query_pos);
+
std::string file_contents;
if (!file_util::ReadFileToString(
server_root.AppendASCII(request_path), &file_contents)) {
- return scoped_ptr<HttpResponse>(NULL);
+ return scoped_ptr<HttpResponseInterface>(NULL);
}
scoped_ptr<HttpResponse> http_response(new HttpResponse);
http_response->set_code(net::test_server::SUCCESS);
http_response->set_content(file_contents);
- return http_response.Pass();
+ return http_response.PassAs<HttpResponseInterface>();
}
} // namespace
@@ -161,20 +156,26 @@ void EmbeddedTestServer::HandleRequest(HttpConnection* connection,
scoped_ptr<HttpRequest> request) {
DCHECK(io_thread_->BelongsToCurrentThread());
+ bool request_handled = false;
+
for (size_t i = 0; i < request_handlers_.size(); ++i) {
- scoped_ptr<HttpResponse> response =
+ scoped_ptr<HttpResponseInterface> response =
request_handlers_[i].Run(*request.get());
if (response.get()) {
connection->SendResponse(response.Pass());
- return;
+ request_handled = true;
+ break;
}
}
- LOG(WARNING) << "Request not handled. Returning 404: "
- << request->relative_url;
- scoped_ptr<HttpResponse> not_found_response(new HttpResponse());
- not_found_response->set_code(NOT_FOUND);
- connection->SendResponse(not_found_response.Pass());
+ if (!request_handled) {
satorux1 2013/05/22 01:54:56 thank you for fixing the bug.
+ LOG(WARNING) << "Request not handled. Returning 404: "
+ << request->relative_url;
+ scoped_ptr<HttpResponse> not_found_response(new HttpResponse);
+ not_found_response->set_code(NOT_FOUND);
+ connection->SendResponse(
+ not_found_response.PassAs<HttpResponseInterface>());
+ }
// Drop the connection, since we do not support multiple requests per
// connection.

Powered by Google App Engine
This is Rietveld 408576698