Chromium Code Reviews| Index: net/test/embedded_test_server/default_handlers.cc |
| diff --git a/net/test/embedded_test_server/default_handlers.cc b/net/test/embedded_test_server/default_handlers.cc |
| index 16c2487742e2520e2f0d980e06eb8e1965dddc26..530e1084f1523fc4bf3fe7d6649b2d1fd12b367d 100644 |
| --- a/net/test/embedded_test_server/default_handlers.cc |
| +++ b/net/test/embedded_test_server/default_handlers.cc |
| @@ -545,6 +545,37 @@ std::unique_ptr<HttpResponse> HandleClientRedirect(const HttpRequest& request) { |
| return std::move(http_response); |
| } |
| +// /click-redirect?url=URL&echoheader=HEADER |
| +// Returns a href redirect to URL. |
| +// Responds in the message body with the headers echoed on the current request. |
| +std::unique_ptr<HttpResponse> HandleClickRedirect(const HttpRequest& request) { |
|
jbudorick
2017/02/02 00:46:41
I'm not sure that this should be in the default ha
|
| + GURL request_url = request.GetURL(); |
| + RequestQuery query = ParseQuery(request_url); |
| + |
| + std::string url; |
| + if (query.find("url") != query.end()) |
| + url = query.at("url").front(); |
| + std::string header_name; |
| + if (query.find("echoheader") != query.end()) |
| + header_name = query.at("echoheader").front(); |
| + |
| + std::string header_result; |
| + if (request.headers.find(header_name) != request.headers.end()) |
| + header_result = request.headers.at(header_name); |
| + else |
| + header_result = "None"; |
| + |
| + std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse); |
| + http_response->set_content_type("text/html"); |
| + http_response->AddCustomHeader("Cache-Control", "no-cache, no-store"); |
| + |
| + http_response->set_content(base::StringPrintf( |
| + "<html><body><a id=\"click\" href=\"%s\">Click to redirect to %s</a>" |
| + "<b>%s</b></body></html>", |
| + url.c_str(), url.c_str(), header_result.c_str())); |
| + return std::move(http_response); |
| +} |
| + |
| // /defaultresponse |
| // Returns a valid 200 response. |
| std::unique_ptr<HttpResponse> HandleDefaultResponse( |
| @@ -631,6 +662,8 @@ void RegisterDefaultHandlers(EmbeddedTestServer* server) { |
| server->RegisterDefaultHandler( |
| PREFIXED_HANDLER("/client-redirect", &HandleClientRedirect)); |
| server->RegisterDefaultHandler( |
| + PREFIXED_HANDLER("/click-redirect", &HandleClickRedirect)); |
| + server->RegisterDefaultHandler( |
| PREFIXED_HANDLER("/defaultresponse", &HandleDefaultResponse)); |
| server->RegisterDefaultHandler(PREFIXED_HANDLER("/slow", &HandleSlowServer)); |