blob: b30b6b37cb94b4694ab0c5063c0a2625a75fe474 [file] [log] [blame]
// Copyright 2015 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 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/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/mock_tab_matcher.h"
#include "components/omnibox/browser/remote_suggestions_service.h"
#include "components/search_engines/template_url_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"
struct AutocompleteMatch;
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_.get();
}
const TemplateURLService* GetTemplateURLService() const override {
return template_url_service_.get();
}
RemoteSuggestionsService* GetRemoteSuggestionsService(
bool create_if_necessary) const override {
return remote_suggestions_service_.get();
}
DocumentSuggestionsService* GetDocumentSuggestionsService(
bool create_if_necessary) const override {
return document_suggestions_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;
}
query_tiles::TileService* GetQueryTileService() const override {
return nullptr;
}
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_;
}
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(SearchSuggestEnabled, bool());
MOCK_CONST_METHOD0(IsPersonalizedUrlDataCollectionActive, bool());
MOCK_CONST_METHOD0(IsAuthenticated, bool());
MOCK_CONST_METHOD0(IsSyncActive, bool());
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_template_url_service(std::unique_ptr<TemplateURLService> service) {
template_url_service_ = std::move(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());
private:
network::TestURLLoaderFactory test_url_loader_factory_;
scoped_refptr<network::SharedURLLoaderFactory> shared_factory_;
std::unique_ptr<TemplateURLService> template_url_service_;
std::unique_ptr<RemoteSuggestionsService> remote_suggestions_service_;
std::unique_ptr<DocumentSuggestionsService> document_suggestions_service_;
std::unique_ptr<OmniboxPedalProvider> pedal_provider_;
std::unique_ptr<OmniboxTriggeredFeatureService>
omnibox_triggered_feature_service_;
MockTabMatcher tab_matcher_;
raw_ptr<signin::IdentityManager> identity_manager_ = nullptr; // Not owned.
};
#endif // COMPONENTS_OMNIBOX_BROWSER_MOCK_AUTOCOMPLETE_PROVIDER_CLIENT_H_