blob: 4541d90eaa30a08066a2159388a74313ea789c0e [file] [log] [blame]
// Copyright 2015 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_OMNIBOX_BROWSER_MOCK_AUTOCOMPLETE_PROVIDER_CLIENT_H_
#define COMPONENTS_OMNIBOX_BROWSER_MOCK_AUTOCOMPLETE_PROVIDER_CLIENT_H_
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "base/memory/raw_ptr.h"
#include "components/history/core/browser/top_sites.h"
#include "components/omnibox/browser/actions/omnibox_pedal_provider.h"
#include "components/omnibox/browser/autocomplete_provider_client.h"
#include "components/omnibox/browser/autocomplete_scheme_classifier.h"
#include "components/omnibox/browser/document_suggestions_service.h"
#include "components/omnibox/browser/keyword_extensions_delegate.h"
#include "components/omnibox/browser/mock_tab_matcher.h"
#include "components/omnibox/browser/remote_suggestions_service.h"
#include "components/omnibox/browser/shortcuts_backend.h"
#include "components/omnibox/browser/unscoped_extension_provider_delegate.h"
#include "components/omnibox/browser/zero_suggest_cache_service.h"
#include "components/saved_tab_groups/public/tab_group_sync_service.h"
#include "components/saved_tab_groups/test_support/mock_tab_group_sync_service.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
#include "services/network/test/test_url_loader_factory.h"
#include "testing/gmock/include/gmock/gmock.h"
class AutocompleteScoringModelService;
class OnDeviceTailModelService;
class OmniboxTriggeredFeatureService;
struct AutocompleteMatch;
struct ProviderStateService;
class MockAutocompleteProviderClient
: public testing::NiceMock<AutocompleteProviderClient> {
public:
MockAutocompleteProviderClient();
~MockAutocompleteProviderClient();
MockAutocompleteProviderClient(const MockAutocompleteProviderClient&) =
delete;
MockAutocompleteProviderClient& operator=(
const MockAutocompleteProviderClient&) = delete;
// AutocompleteProviderClient:
MOCK_CONST_METHOD0(GetPrefs, PrefService*());
MOCK_METHOD0(GetLocalState, PrefService*());
MOCK_CONST_METHOD0(GetApplicationLocale, std::string());
MOCK_CONST_METHOD0(GetSchemeClassifier,
const AutocompleteSchemeClassifier&());
MOCK_METHOD0(GetAutocompleteClassifier, AutocompleteClassifier*());
MOCK_METHOD0(GetHistoryService, history::HistoryService*());
scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory()
override {
return shared_factory_;
}
scoped_refptr<history::TopSites> GetTopSites() override { return nullptr; }
MOCK_METHOD0(GetBookmarkModel, bookmarks::BookmarkModel*());
MOCK_METHOD0(GetInMemoryDatabase, history::URLDatabase*());
MOCK_METHOD0(GetInMemoryURLIndex, InMemoryURLIndex*());
TemplateURLService* GetTemplateURLService() override {
return template_url_service_;
}
const TemplateURLService* GetTemplateURLService() const override {
return template_url_service_;
}
RemoteSuggestionsService* GetRemoteSuggestionsService(
bool create_if_necessary) const override {
return remote_suggestions_service_.get();
}
ZeroSuggestCacheService* GetZeroSuggestCacheService() override {
return zero_suggest_cache_service_.get();
}
const ZeroSuggestCacheService* GetZeroSuggestCacheService() const override {
return zero_suggest_cache_service_.get();
}
OmniboxPedalProvider* GetPedalProvider() const override {
return pedal_provider_.get();
}
// Can't mock scoped_refptr :\.
scoped_refptr<ShortcutsBackend> GetShortcutsBackend() override {
return nullptr;
}
scoped_refptr<ShortcutsBackend> GetShortcutsBackendIfExists() override {
return nullptr;
}
std::unique_ptr<KeywordExtensionsDelegate> GetKeywordExtensionsDelegate(
KeywordProvider* keyword_provider) override {
return nullptr;
}
std::unique_ptr<UnscopedExtensionProviderDelegate>
GetUnscopedExtensionProviderDelegate(
UnscopedExtensionProvider* unscoped_extension_provider) override {
return std::move(unscoped_extension_provider_delegate_);
}
OmniboxTriggeredFeatureService* GetOmniboxTriggeredFeatureService()
const override {
return omnibox_triggered_feature_service_.get();
}
component_updater::ComponentUpdateService* GetComponentUpdateService()
override {
return nullptr;
}
const TabMatcher& GetTabMatcher() const override { return tab_matcher_; }
signin::IdentityManager* GetIdentityManager() const override {
return identity_manager_;
}
AutocompleteScoringModelService* GetAutocompleteScoringModelService()
const override {
return nullptr;
}
OnDeviceTailModelService* GetOnDeviceTailModelService() const override {
return nullptr;
}
ProviderStateService* GetProviderStateService() const override {
return provider_state_service_.get();
}
bool in_background_state() const override { return in_background_state_; }
void set_in_background_state(bool in_background_state) override {
in_background_state_ = in_background_state;
}
tab_groups::TabGroupSyncService* GetTabGroupSyncService() const override {
return mock_tab_group_sync_service_.get();
}
AimEligibilityService* GetAimEligibilityService() const override {
return nullptr;
}
MOCK_CONST_METHOD0(GetAcceptLanguages, std::string());
MOCK_CONST_METHOD0(GetEmbedderRepresentationOfAboutScheme, std::string());
MOCK_METHOD0(GetBuiltinURLs, std::vector<std::u16string>());
MOCK_METHOD0(GetBuiltinsToProvideAsUserTypes, std::vector<std::u16string>());
MOCK_CONST_METHOD0(IsOffTheRecord, bool());
MOCK_CONST_METHOD0(IsIncognitoProfile, bool());
MOCK_CONST_METHOD0(IsGuestSession, bool());
MOCK_CONST_METHOD0(SearchSuggestEnabled, bool());
MOCK_CONST_METHOD0(IsUrlDataCollectionActive, bool());
MOCK_CONST_METHOD0(IsPersonalizedUrlDataCollectionActive, bool());
MOCK_CONST_METHOD0(IsAuthenticated, bool());
MOCK_CONST_METHOD0(IsSyncActive, bool());
MOCK_CONST_METHOD0(IsHistoryEmbeddingsEnabled, bool());
MOCK_CONST_METHOD0(IsHistoryEmbeddingsSettingVisible, bool());
MOCK_CONST_METHOD0(IsLensEnabled, bool());
MOCK_CONST_METHOD0(AreLensEntrypointsVisible, bool());
MOCK_CONST_METHOD0(IsPagePaywalled, std::optional<bool>());
MOCK_CONST_METHOD1(GetLensSuggestInputsWhenReady,
base::CallbackListSubscription(
LensOverlaySuggestInputsCallback callback));
MOCK_METHOD(bool, IsAimEligible, (), (const));
MOCK_METHOD6(
Classify,
void(const std::u16string& text,
bool prefer_keyword,
bool allow_exact_keyword_match,
metrics::OmniboxEventProto::PageClassification page_classification,
AutocompleteMatch* match,
GURL* alternate_nav_url));
MOCK_METHOD2(DeleteMatchingURLsForKeywordFromHistory,
void(history::KeywordID keyword_id, const std::u16string& term));
MOCK_METHOD1(PrefetchImage, void(const GURL& url));
void set_pedal_provider(
std::unique_ptr<OmniboxPedalProvider> pedal_provider) {
pedal_provider_ = std::move(pedal_provider);
}
void set_unscoped_extension_provider_delegate(
std::unique_ptr<UnscopedExtensionProviderDelegate> delegate) {
unscoped_extension_provider_delegate_ = std::move(delegate);
}
void set_template_url_service(TemplateURLService* template_url_service) {
template_url_service_ = template_url_service;
}
void set_identity_manager(signin::IdentityManager* identity_manager) {
identity_manager_ = identity_manager;
}
network::TestURLLoaderFactory* test_url_loader_factory() {
return &test_url_loader_factory_;
}
MOCK_METHOD0(OpenSharingHub, void());
MOCK_METHOD0(NewIncognitoWindow, void());
MOCK_METHOD0(OpenIncognitoClearBrowsingDataDialog, void());
MOCK_METHOD0(CloseIncognitoWindows, void());
MOCK_METHOD0(PromptPageTranslation, void());
MOCK_METHOD1(OpenLensOverlay, void(bool));
MOCK_METHOD3(IssueContextualSearchRequest,
void(const GURL& destination_url,
AutocompleteMatchType::Type match_type,
bool is_zero_prefix_suggestion));
private:
network::TestURLLoaderFactory test_url_loader_factory_;
scoped_refptr<network::SharedURLLoaderFactory> shared_factory_;
bool in_background_state_ = false;
raw_ptr<TemplateURLService> template_url_service_;
std::unique_ptr<DocumentSuggestionsService> document_suggestions_service_;
std::unique_ptr<RemoteSuggestionsService> remote_suggestions_service_;
std::unique_ptr<ZeroSuggestCacheService> zero_suggest_cache_service_;
std::unique_ptr<OmniboxPedalProvider> pedal_provider_;
std::unique_ptr<OmniboxTriggeredFeatureService>
omnibox_triggered_feature_service_;
std::unique_ptr<ProviderStateService> provider_state_service_;
std::unique_ptr<UnscopedExtensionProviderDelegate>
unscoped_extension_provider_delegate_;
MockTabMatcher tab_matcher_;
raw_ptr<signin::IdentityManager> identity_manager_ = nullptr; // Not owned.
std::unique_ptr<tab_groups::MockTabGroupSyncService>
mock_tab_group_sync_service_;
};
#endif // COMPONENTS_OMNIBOX_BROWSER_MOCK_AUTOCOMPLETE_PROVIDER_CLIENT_H_