blob: 0de8e4208444c716070f08713b487aa953455544 [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_SAFE_SEARCH_API_FAKE_URL_CHECKER_CLIENT_H_
#define COMPONENTS_SAFE_SEARCH_API_FAKE_URL_CHECKER_CLIENT_H_
#include "base/functional/callback.h"
#include "components/safe_search_api/url_checker_client.h"
namespace safe_search_api {
// Helper class with fake URLCheckerClient for use with URLChecker. This
// lets tests control the response the URLChecker will receive from the
// URLCheckerClient. Used to test URLChecker.
class FakeURLCheckerClient : public URLCheckerClient {
public:
FakeURLCheckerClient();
FakeURLCheckerClient(const FakeURLCheckerClient&) = delete;
FakeURLCheckerClient& operator=(const FakeURLCheckerClient&) = delete;
~FakeURLCheckerClient() override;
// Fake override that simply holds references of |url| and |callback|.
//
// See RunCallback() method documentation below on how to run the callback.
void CheckURL(const GURL& url, ClientCheckCallback callback) override;
// Runs the callback function input by the last call of CheckURL() with the
// result input with the last call of SetResult().
void RunCallback(ClientClassification classification);
// Asynchronous version of RunCallback().
void RunCallbackAsync(ClientClassification classification);
private:
ClientCheckCallback callback_;
GURL url_;
};
} // namespace safe_search_api
#endif // COMPONENTS_SAFE_SEARCH_API_FAKE_URL_CHECKER_CLIENT_H_