blob: 78282daccb6c9f82371f5cfae313c92815a114ac [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_FAVICON_MODEL_TEST_FAVICON_LOADER_H_
#define IOS_CHROME_BROWSER_FAVICON_MODEL_TEST_FAVICON_LOADER_H_
#include "ios/chrome/browser/favicon/model/favicon_loader.h"
// A test implementation of FaviconLoader that always return the same
// image for all requests.
class TestFaviconLoader : public FaviconLoader {
public:
TestFaviconLoader();
~TestFaviconLoader() override;
// FaviconLoader implementation.
void FaviconForPageUrl(
const GURL& page_url,
float size_in_points,
float min_size_in_points,
bool fallback_to_google_server,
FaviconAttributesCompletionBlock favicon_block_handler) override;
void FaviconForPageUrlOrHost(
const GURL& page_url,
float size_in_points,
FaviconAttributesCompletionBlock favicon_block_handler) override;
void FaviconForIconUrl(
const GURL& icon_url,
float size_in_points,
float min_size_in_points,
FaviconAttributesCompletionBlock favicon_block_handler) override;
void CancellAllRequests() override;
base::WeakPtr<FaviconLoader> AsWeakPtr() override;
private:
__strong FaviconAttributes* default_attributes_;
base::WeakPtrFactory<TestFaviconLoader> weak_ptr_factory_{this};
};
#endif // IOS_CHROME_BROWSER_FAVICON_MODEL_TEST_FAVICON_LOADER_H_