diff options
author | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-25 16:00:10 +0000 |
---|---|---|
committer | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-25 16:00:10 +0000 |
commit | fa13583bee02fb9e2b02c7d761bfb291e9035abc (patch) | |
tree | a3b14450eae3e1673e77ad1bad05c85e958ed940 /net | |
parent | 45c56d58e1fa736d57fb8bc9deaed44123386ade (diff) | |
download | chromium_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')
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"); |