summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-25 16:00:10 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-25 16:00:10 +0000
commitfa13583bee02fb9e2b02c7d761bfb291e9035abc (patch)
treea3b14450eae3e1673e77ad1bad05c85e958ed940 /net
parent45c56d58e1fa736d57fb8bc9deaed44123386ade (diff)
downloadchromium_src-fa13583bee02fb9e2b02c7d761bfb291e9035abc.zip
chromium_src-fa13583bee02fb9e2b02c7d761bfb291e9035abc.tar.gz
chromium_src-fa13583bee02fb9e2b02c7d761bfb291e9035abc.tar.bz2
Revert 202112 "GTTF: Convert most tests in content to use Embedd..."
> GTTF: Convert most tests in content to use EmbeddedTestServer. > > This eliminates a whole class of problems with SpawnedTestServer > failing to start. > > BUG=96594 > R=avi@chromium.org, satorux@chromium.org > > Review URL: https://codereview.chromium.org/15505003 TBR=phajdan.jr@chromium.org Review URL: https://codereview.chromium.org/15846017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202303 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/test/embedded_test_server/embedded_test_server.cc43
-rw-r--r--net/test/embedded_test_server/embedded_test_server.h4
-rw-r--r--net/test/embedded_test_server/embedded_test_server_unittest.cc4
-rw-r--r--net/test/embedded_test_server/http_response.cc9
-rw-r--r--net/test/embedded_test_server/http_response.h26
-rw-r--r--net/test/embedded_test_server/http_response_unittest.cc2
6 files changed, 35 insertions, 53 deletions
diff --git a/net/test/embedded_test_server/embedded_test_server.cc b/net/test/embedded_test_server/embedded_test_server.cc
index 95ccbcb..ea1d8c5 100644
--- a/net/test/embedded_test_server/embedded_test_server.cc
+++ b/net/test/embedded_test_server/embedded_test_server.cc
@@ -25,31 +25,36 @@ namespace test_server {
namespace {
+// 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<HttpResponse> 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);
}
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ scoped_ptr<HttpResponse> http_response(new HttpResponse);
http_response->set_code(net::test_server::SUCCESS);
http_response->set_content(file_contents);
- return http_response.PassAs<HttpResponse>();
+ return http_response.Pass();
}
} // namespace
@@ -152,26 +157,20 @@ 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 =
request_handlers_[i].Run(*request.get());
if (response.get()) {
connection->SendResponse(response.Pass());
- request_handled = true;
- break;
+ return;
}
}
- if (!request_handled) {
- LOG(WARNING) << "Request not handled. Returning 404: "
- << request->relative_url;
- scoped_ptr<BasicHttpResponse> not_found_response(new BasicHttpResponse);
- not_found_response->set_code(NOT_FOUND);
- connection->SendResponse(
- not_found_response.PassAs<HttpResponse>());
- }
+ 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());
// Drop the connection, since we do not support multiple requests per
// connection.
diff --git a/net/test/embedded_test_server/embedded_test_server.h b/net/test/embedded_test_server/embedded_test_server.h
index 2cf9cb2..6966227 100644
--- a/net/test/embedded_test_server/embedded_test_server.h
+++ b/net/test/embedded_test_server/embedded_test_server.h
@@ -77,8 +77,8 @@ class HttpListenSocket : public TCPListenSocket {
//
class EmbeddedTestServer : public StreamListenSocket::Delegate {
public:
- typedef base::Callback<scoped_ptr<HttpResponse>(
- const HttpRequest& request)> HandleRequestCallback;
+ typedef base::Callback<scoped_ptr<HttpResponse>(const HttpRequest& request)>
+ HandleRequestCallback;
// Creates a http test server. |io_thread| is a task runner
// with IO message loop, used as a backend thread.
diff --git a/net/test/embedded_test_server/embedded_test_server_unittest.cc b/net/test/embedded_test_server/embedded_test_server_unittest.cc
index c0eb4ed..33f1ff4 100644
--- a/net/test/embedded_test_server/embedded_test_server_unittest.cc
+++ b/net/test/embedded_test_server/embedded_test_server_unittest.cc
@@ -91,11 +91,11 @@ class EmbeddedTestServerTest : public testing::Test,
GURL absolute_url = server_->GetURL(request.relative_url);
if (absolute_url.path() == path) {
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ scoped_ptr<HttpResponse> http_response(new HttpResponse);
http_response->set_code(code);
http_response->set_content(content);
http_response->set_content_type(content_type);
- return http_response.PassAs<HttpResponse>();
+ return http_response.Pass();
}
return scoped_ptr<HttpResponse>();
diff --git a/net/test/embedded_test_server/http_response.cc b/net/test/embedded_test_server/http_response.cc
index 4f2bfe8..2c05c06 100644
--- a/net/test/embedded_test_server/http_response.cc
+++ b/net/test/embedded_test_server/http_response.cc
@@ -11,16 +11,13 @@
namespace net {
namespace test_server {
-HttpResponse::~HttpResponse() {
-}
-
-BasicHttpResponse::BasicHttpResponse() : code_(SUCCESS) {
+HttpResponse::HttpResponse() : code_(SUCCESS) {
}
-BasicHttpResponse::~BasicHttpResponse() {
+HttpResponse::~HttpResponse() {
}
-std::string BasicHttpResponse::ToResponseString() const {
+std::string HttpResponse::ToResponseString() const {
// Response line with headers.
std::string response_builder;
diff --git a/net/test/embedded_test_server/http_response.h b/net/test/embedded_test_server/http_response.h
index 141c8cb..b597cce 100644
--- a/net/test/embedded_test_server/http_response.h
+++ b/net/test/embedded_test_server/http_response.h
@@ -9,7 +9,6 @@
#include <string>
#include "base/basictypes.h"
-#include "base/compiler_specific.h"
namespace net {
namespace test_server {
@@ -25,23 +24,12 @@ enum ResponseCode {
ACCESS_DENIED = 500,
};
-// Interface for HTTP response implementations.
-class HttpResponse{
+// Respresents a HTTP response. Since it can be big, it may be better to use
+// scoped_ptr to pass it instead of copying.
+class HttpResponse {
public:
- virtual ~HttpResponse();
-
- // Returns raw contents to be written to the network socket
- // in response. If you intend to make this a valid HTTP response,
- // it should start with "HTTP/x.x" line, followed by response headers.
- virtual std::string ToResponseString() const = 0;
-};
-
-// This class is used to handle basic HTTP responses with commonly used
-// response headers such as "Content-Type".
-class BasicHttpResponse : public HttpResponse {
- public:
- BasicHttpResponse();
- virtual ~BasicHttpResponse();
+ HttpResponse();
+ ~HttpResponse();
// The response code.
ResponseCode code() const { return code_; }
@@ -68,15 +56,13 @@ class BasicHttpResponse : public HttpResponse {
}
// Generates and returns a http response string.
- virtual std::string ToResponseString() const OVERRIDE;
+ std::string ToResponseString() const;
private:
ResponseCode code_;
std::string content_;
std::string content_type_;
std::map<std::string, std::string> custom_headers_;
-
- DISALLOW_COPY_AND_ASSIGN(BasicHttpResponse);
};
} // namespace test_server
diff --git a/net/test/embedded_test_server/http_response_unittest.cc b/net/test/embedded_test_server/http_response_unittest.cc
index 82f5112..a56feee 100644
--- a/net/test/embedded_test_server/http_response_unittest.cc
+++ b/net/test/embedded_test_server/http_response_unittest.cc
@@ -10,7 +10,7 @@ namespace net {
namespace test_server {
TEST(HttpResponseTest, GenerateResponse) {
- BasicHttpResponse response;
+ HttpResponse response;
response.set_code(SUCCESS);
response.set_content("Sample content - Hello world!");
response.set_content_type("text/plain");