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

Side by Side Diff: ios/web/public/test/response_providers/html_response_provider_impl.mm

Issue 2898733003: Split up ios/web:test_support. (Closed)
Patch Set: don't break downstream clients Created 3 years, 6 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
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #import "ios/web/public/test/response_providers/html_response_provider_impl.h"
6
7 #import "ios/web/public/test/response_providers/response_provider.h"
8 #include "net/http/http_response_headers.h"
9 #include "net/http/http_status_code.h"
10 #include "url/gurl.h"
11
12 namespace {
13 std::map<GURL, HtmlResponseProviderImpl::Response> BuildResponseMap(
14 const std::map<GURL, std::string>& responses_body,
15 scoped_refptr<net::HttpResponseHeaders> headers) {
16 std::map<GURL, HtmlResponseProviderImpl::Response> responses;
17 for (const std::pair<const GURL, std::string>& pair : responses_body) {
18 responses.insert(std::make_pair(
19 pair.first, HtmlResponseProviderImpl::Response(pair.second, headers)));
20 }
21 return responses;
22 }
23
24 std::map<GURL, HtmlResponseProviderImpl::Response> BuildResponseMap(
25 const std::map<GURL, std::pair<std::string, std::string>>& responses,
26 const std::map<GURL, scoped_refptr<net::HttpResponseHeaders>>& headers) {
27 std::map<GURL, HtmlResponseProviderImpl::Response> response_map;
28 for (const auto& pair : responses) {
29 response_map.insert(std::make_pair(
30 pair.first, HtmlResponseProviderImpl::Response(
31 pair.second.second, headers.at(pair.first))));
32 }
33 return response_map;
34 }
35
36 } // namespace
37
38 HtmlResponseProviderImpl::Response::Response(
39 const std::string& body,
40 const scoped_refptr<net::HttpResponseHeaders>& headers)
41 : body(body), headers(headers) {}
42
43 HtmlResponseProviderImpl::Response::Response(const Response& response)
44 : body(response.body), headers(response.headers) {}
45
46 HtmlResponseProviderImpl::Response::Response() : body(), headers() {}
47
48 HtmlResponseProviderImpl::Response::~Response() {}
49
50 HtmlResponseProviderImpl::HtmlResponseProviderImpl() : responses_() {}
51
52 // static
53 HtmlResponseProviderImpl::Response
54 HtmlResponseProviderImpl::GetRedirectResponse(
55 const GURL& destination_url,
56 const net::HttpStatusCode& http_status) {
57 auto response_headers = web::ResponseProvider::GetRedirectResponseHeaders(
58 destination_url.spec(), http_status);
59 return HtmlResponseProviderImpl::Response("", response_headers);
60 }
61
62 // static
63 HtmlResponseProviderImpl::Response HtmlResponseProviderImpl::GetSimpleResponse(
64 const std::string& body) {
65 auto response_headers =
66 web::ResponseProvider::GetResponseHeaders("text/html", net::HTTP_OK);
67 return HtmlResponseProviderImpl::Response(body, response_headers);
68 }
69
70 HtmlResponseProviderImpl::HtmlResponseProviderImpl(
71 const std::map<GURL, std::string>& responses)
72 : responses_(BuildResponseMap(
73 responses,
74 web::ResponseProvider::GetDefaultResponseHeaders())) {}
75
76 HtmlResponseProviderImpl::HtmlResponseProviderImpl(
77 const std::map<GURL, std::pair<std::string, std::string>>& responses)
78 : responses_(BuildResponseMap(
79 responses,
80 web::ResponseProvider::GetDefaultResponseHeaders(responses))) {}
81
82 HtmlResponseProviderImpl::HtmlResponseProviderImpl(
83 const std::map<GURL, HtmlResponseProviderImpl::Response>& responses)
84 : responses_(responses) {}
85
86 HtmlResponseProviderImpl::~HtmlResponseProviderImpl() {}
87
88 bool HtmlResponseProviderImpl::CanHandleRequest(
89 const web::ResponseProvider::Request& request) {
90 return responses_.find(request.url) != responses_.end();
91 }
92
93 void HtmlResponseProviderImpl::GetResponseHeadersAndBody(
94 const web::ResponseProvider::Request& request,
95 scoped_refptr<net::HttpResponseHeaders>* headers,
96 std::string* response_body) {
97 const Response& response = responses_.at(request.url);
98 *headers = response.headers;
99 *response_body = response.body;
100 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698