OLD | NEW |
---|---|
(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. | |
baxley
2016/04/15 23:57:48
This file is being moved upstream so it can be use
| |
4 | |
5 #include "ios/web/public/test/response_providers/html_response_provider.h" | |
6 | |
7 namespace { | |
8 std::map<GURL, HtmlResponseProviderImpl::Response> BuildResponseMap( | |
9 const std::map<GURL, std::string>& responses_body, | |
10 scoped_refptr<net::HttpResponseHeaders> headers) { | |
11 std::map<GURL, HtmlResponseProviderImpl::Response> responses; | |
12 for (const std::pair<const GURL, std::string>& pair : responses_body) { | |
13 responses.insert(std::make_pair( | |
14 pair.first, HtmlResponseProviderImpl::Response(pair.second, headers))); | |
15 } | |
16 return responses; | |
17 } | |
18 } // namespace | |
19 | |
20 HtmlResponseProviderImpl::Response::Response( | |
21 const std::string& body, | |
22 const scoped_refptr<net::HttpResponseHeaders>& headers) | |
23 : body(body), headers(headers) {} | |
24 | |
25 HtmlResponseProviderImpl::Response::Response() : body(), headers() {} | |
26 | |
27 HtmlResponseProviderImpl::Response::~Response() {} | |
28 | |
29 HtmlResponseProviderImpl::HtmlResponseProviderImpl() : responses_() {} | |
30 | |
31 // static | |
32 HtmlResponseProviderImpl::Response | |
33 HtmlResponseProviderImpl::GetRedirectResponse( | |
34 const GURL& destination_url, | |
35 const net::HttpStatusCode& http_status) { | |
36 auto response_headers = web::ResponseProvider::GetRedirectResponseHeaders( | |
37 destination_url.spec(), http_status); | |
38 return HtmlResponseProviderImpl::Response("", response_headers); | |
39 } | |
40 | |
41 // static | |
42 HtmlResponseProviderImpl::Response HtmlResponseProviderImpl::GetSimpleResponse( | |
43 const std::string& body) { | |
44 auto response_headers = | |
45 web::ResponseProvider::GetResponseHeaders("text/html", net::HTTP_OK); | |
46 return HtmlResponseProviderImpl::Response(body, response_headers); | |
47 } | |
48 | |
49 HtmlResponseProviderImpl::HtmlResponseProviderImpl( | |
50 const std::map<GURL, std::string>& responses) | |
51 : responses_(BuildResponseMap( | |
52 responses, | |
53 web::ResponseProvider::GetDefaultResponseHeaders())) {} | |
54 | |
55 HtmlResponseProviderImpl::HtmlResponseProviderImpl( | |
56 const std::map<GURL, HtmlResponseProviderImpl::Response>& responses) | |
57 : responses_(responses) {} | |
58 | |
59 HtmlResponseProviderImpl::~HtmlResponseProviderImpl() {} | |
60 | |
61 bool HtmlResponseProviderImpl::CanHandleRequest( | |
62 const web::ResponseProvider::Request& request) { | |
63 return responses_.find(request.url) != responses_.end(); | |
64 } | |
65 | |
66 void HtmlResponseProviderImpl::GetResponseHeadersAndBody( | |
67 const web::ResponseProvider::Request& request, | |
68 scoped_refptr<net::HttpResponseHeaders>* headers, | |
69 std::string* response_body) { | |
70 const Response& response = responses_.at(request.url); | |
71 *headers = response.headers; | |
72 *response_body = response.body; | |
73 } | |
74 | |
75 HtmlResponseProvider::HtmlResponseProvider() | |
76 : response_provider_impl_(new HtmlResponseProviderImpl()) {} | |
77 | |
78 HtmlResponseProvider::HtmlResponseProvider( | |
79 const std::map<GURL, std::string>& responses) | |
80 : response_provider_impl_(new HtmlResponseProviderImpl(responses)) {} | |
81 | |
82 HtmlResponseProvider::HtmlResponseProvider( | |
83 const std::map<GURL, HtmlResponseProviderImpl::Response>& responses) | |
84 : response_provider_impl_(new HtmlResponseProviderImpl(responses)) {} | |
85 | |
86 HtmlResponseProvider::~HtmlResponseProvider() {} | |
87 | |
88 bool HtmlResponseProvider::CanHandleRequest( | |
89 const web::ResponseProvider::Request& request) { | |
90 return response_provider_impl_->CanHandleRequest(request); | |
91 } | |
92 | |
93 void HtmlResponseProvider::GetResponseHeadersAndBody( | |
94 const Request& request, | |
95 scoped_refptr<net::HttpResponseHeaders>* headers, | |
96 std::string* response_body) { | |
97 response_provider_impl_->GetResponseHeadersAndBody(request, headers, | |
98 response_body); | |
99 } | |
OLD | NEW |