blob: eacc6697b94f6ff7c124e17d9e762f8429f84d4c [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_TEST_UTIL_H_
#define CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_TEST_UTIL_H_
#include <string>
#include <vector>
#include "chrome/browser/predictors/resource_prefetch_predictor.h"
#include "chrome/browser/predictors/resource_prefetch_predictor_tables.h"
#include "components/sessions/core/session_id.h"
namespace predictors {
void InitializeResourceData(ResourceData* resource,
const std::string& resource_url,
content::ResourceType resource_type,
int number_of_hits,
int number_of_misses,
int consecutive_misses,
double average_position,
net::RequestPriority priority,
bool has_validators,
bool always_revalidate);
void InitializeRedirectStat(RedirectStat* redirect,
const std::string& url,
int number_of_hits,
int number_of_misses,
int consecutive_misses);
void InitializePrecacheResource(precache::PrecacheResource* resource,
const std::string& url,
double weight_ratio);
PrefetchData CreatePrefetchData(const std::string& primary_key,
uint64_t last_visit_time = 0);
RedirectData CreateRedirectData(const std::string& primary_key,
uint64_t last_visit_time = 0);
NavigationID CreateNavigationID(SessionID::id_type tab_id,
const std::string& main_frame_url);
ResourcePrefetchPredictor::PageRequestSummary CreatePageRequestSummary(
const std::string& main_frame_url,
const std::string& initial_url,
const std::vector<ResourcePrefetchPredictor::URLRequestSummary>&
subresource_requests);
ResourcePrefetchPredictor::URLRequestSummary CreateURLRequestSummary(
SessionID::id_type tab_id,
const std::string& main_frame_url,
const std::string& resource_url = std::string(),
content::ResourceType resource_type = content::RESOURCE_TYPE_MAIN_FRAME,
net::RequestPriority priority = net::MEDIUM,
const std::string& mime_type = std::string(),
bool was_cached = false,
const std::string& redirect_url = std::string(),
bool has_validators = false,
bool always_revalidate = false);
// For printing failures nicely.
std::ostream& operator<<(std::ostream& stream, const PrefetchData& data);
std::ostream& operator<<(std::ostream& stream, const ResourceData& resource);
std::ostream& operator<<(std::ostream& stream, const RedirectData& data);
std::ostream& operator<<(std::ostream& stream, const RedirectStat& redirect);
std::ostream& operator<<(
std::ostream& stream,
const ResourcePrefetchPredictor::PageRequestSummary& summary);
std::ostream& operator<<(
std::ostream& stream,
const ResourcePrefetchPredictor::URLRequestSummary& summary);
std::ostream& operator<<(std::ostream& stream, const NavigationID& id);
bool operator==(const PrefetchData& lhs, const PrefetchData& rhs);
bool operator==(const ResourceData& lhs, const ResourceData& rhs);
bool operator==(const RedirectData& lhs, const RedirectData& rhs);
bool operator==(const RedirectStat& lhs, const RedirectStat& rhs);
bool operator==(const ResourcePrefetchPredictor::PageRequestSummary& lhs,
const ResourcePrefetchPredictor::PageRequestSummary& rhs);
bool operator==(const ResourcePrefetchPredictor::URLRequestSummary& lhs,
const ResourcePrefetchPredictor::URLRequestSummary& rhs);
} // namespace predictors
namespace precache {
std::ostream& operator<<(std::ostream& stream,
const PrecacheManifest& manifest);
std::ostream& operator<<(std::ostream& stream,
const PrecacheResource& resource);
bool operator==(const PrecacheManifest& lhs, const PrecacheManifest& rhs);
bool operator==(const PrecacheResource& lhs, const PrecacheResource& rhs);
} // namespace precache
#endif // CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_TEST_UTIL_H_