| // 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_ |