OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/predictors/resource_prefetch_predictor_test_util.h" | 5 #include "chrome/browser/predictors/resource_prefetch_predictor_test_util.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
| 8 #include "net/http/http_response_headers.h" |
8 | 9 |
9 namespace { | 10 namespace { |
10 | 11 |
11 bool AlmostEqual(const double x, const double y) { | 12 bool AlmostEqual(const double x, const double y) { |
12 return std::fabs(x - y) <= 1e-6; // Arbitrary but close enough. | 13 return std::fabs(x - y) <= 1e-6; // Arbitrary but close enough. |
13 } | 14 } |
14 | 15 |
15 } // namespace | 16 } // namespace |
16 | 17 |
17 namespace predictors { | 18 namespace predictors { |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 config->max_consecutive_misses = 2; | 186 config->max_consecutive_misses = 2; |
186 config->max_redirect_consecutive_misses = 2; | 187 config->max_redirect_consecutive_misses = 2; |
187 config->min_resource_confidence_to_trigger_prefetch = 0.5; | 188 config->min_resource_confidence_to_trigger_prefetch = 0.5; |
188 } | 189 } |
189 config->is_url_learning_enabled = true; | 190 config->is_url_learning_enabled = true; |
190 config->is_manifests_enabled = true; | 191 config->is_manifests_enabled = true; |
191 config->is_origin_learning_enabled = true; | 192 config->is_origin_learning_enabled = true; |
192 config->mode = LoadingPredictorConfig::LEARNING; | 193 config->mode = LoadingPredictorConfig::LEARNING; |
193 } | 194 } |
194 | 195 |
| 196 scoped_refptr<net::HttpResponseHeaders> MakeResponseHeaders( |
| 197 const char* headers) { |
| 198 return make_scoped_refptr(new net::HttpResponseHeaders( |
| 199 net::HttpUtil::AssembleRawHeaders(headers, strlen(headers)))); |
| 200 } |
| 201 |
| 202 MockURLRequestJob::MockURLRequestJob(net::URLRequest* request, |
| 203 const net::HttpResponseInfo& response_info, |
| 204 const std::string& mime_type) |
| 205 : net::URLRequestJob(request, nullptr), |
| 206 response_info_(response_info), |
| 207 mime_type_(mime_type) {} |
| 208 |
| 209 bool MockURLRequestJob::GetMimeType(std::string* mime_type) const { |
| 210 *mime_type = mime_type_; |
| 211 return true; |
| 212 } |
| 213 |
| 214 void MockURLRequestJob::Start() { |
| 215 NotifyHeadersComplete(); |
| 216 } |
| 217 void MockURLRequestJob::GetResponseInfo(net::HttpResponseInfo* info) { |
| 218 *info = response_info_; |
| 219 } |
| 220 |
| 221 MockURLRequestJobFactory::MockURLRequestJobFactory() {} |
| 222 MockURLRequestJobFactory::~MockURLRequestJobFactory() {} |
| 223 |
| 224 net::URLRequestJob* MockURLRequestJobFactory::MaybeCreateJobWithProtocolHandler( |
| 225 const std::string& scheme, |
| 226 net::URLRequest* request, |
| 227 net::NetworkDelegate* network_delegate) const { |
| 228 return new MockURLRequestJob(request, response_info_, mime_type_); |
| 229 } |
| 230 |
| 231 net::URLRequestJob* MockURLRequestJobFactory::MaybeInterceptRedirect( |
| 232 net::URLRequest* request, |
| 233 net::NetworkDelegate* network_delegate, |
| 234 const GURL& location) const { |
| 235 return nullptr; |
| 236 } |
| 237 |
| 238 net::URLRequestJob* MockURLRequestJobFactory::MaybeInterceptResponse( |
| 239 net::URLRequest* request, |
| 240 net::NetworkDelegate* network_delegate) const { |
| 241 return nullptr; |
| 242 } |
| 243 |
| 244 bool MockURLRequestJobFactory::IsHandledProtocol( |
| 245 const std::string& scheme) const { |
| 246 return true; |
| 247 } |
| 248 |
| 249 bool MockURLRequestJobFactory::IsSafeRedirectTarget( |
| 250 const GURL& location) const { |
| 251 return true; |
| 252 } |
| 253 |
| 254 void MockURLRequestJobFactory::set_response_info( |
| 255 const net::HttpResponseInfo& response_info) { |
| 256 response_info_ = response_info; |
| 257 } |
| 258 |
| 259 void MockURLRequestJobFactory::set_mime_type(const std::string& mime_type) { |
| 260 mime_type_ = mime_type; |
| 261 } |
| 262 |
195 std::ostream& operator<<(std::ostream& os, const PrefetchData& data) { | 263 std::ostream& operator<<(std::ostream& os, const PrefetchData& data) { |
196 os << "[" << data.primary_key() << "," << data.last_visit_time() << "]" | 264 os << "[" << data.primary_key() << "," << data.last_visit_time() << "]" |
197 << std::endl; | 265 << std::endl; |
198 for (const ResourceData& resource : data.resources()) | 266 for (const ResourceData& resource : data.resources()) |
199 os << "\t\t" << resource << std::endl; | 267 os << "\t\t" << resource << std::endl; |
200 return os; | 268 return os; |
201 } | 269 } |
202 | 270 |
203 std::ostream& operator<<(std::ostream& os, const ResourceData& resource) { | 271 std::ostream& operator<<(std::ostream& os, const ResourceData& resource) { |
204 return os << "[" << resource.resource_url() << "," << resource.resource_type() | 272 return os << "[" << resource.resource_url() << "," << resource.resource_type() |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 | 445 |
378 return equal; | 446 return equal; |
379 } | 447 } |
380 | 448 |
381 bool operator==(const PrecacheResource& lhs, const PrecacheResource& rhs) { | 449 bool operator==(const PrecacheResource& lhs, const PrecacheResource& rhs) { |
382 return lhs.url() == rhs.url() && | 450 return lhs.url() == rhs.url() && |
383 AlmostEqual(lhs.weight_ratio(), rhs.weight_ratio()); | 451 AlmostEqual(lhs.weight_ratio(), rhs.weight_ratio()); |
384 } | 452 } |
385 | 453 |
386 } // namespace precache | 454 } // namespace precache |
OLD | NEW |