blob: 74b98824c8cac20b4c78f349cb2e2fd992081049 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_PRIVACY_SANDBOX_MOCK_PRIVACY_SANDBOX_SERVICE_H_
#define CHROME_BROWSER_PRIVACY_SANDBOX_MOCK_PRIVACY_SANDBOX_SERVICE_H_
#include <memory>
#include "chrome/browser/privacy_sandbox/mock_queue_manager.h"
#include "chrome/browser/privacy_sandbox/privacy_sandbox_countries.h"
#include "chrome/browser/privacy_sandbox/privacy_sandbox_service.h"
#include "testing/gmock/include/gmock/gmock.h"
#if !BUILDFLAG(IS_ANDROID)
#include "chrome/browser/privacy_sandbox/privacy_sandbox_queue_manager.h"
#endif // !BUILDFLAG(IS_ANDROID)
namespace content {
class BrowserContext;
}
namespace views {
class Widget;
}
class KeyedService;
class MockPrivacySandboxService : public PrivacySandboxService {
public:
MockPrivacySandboxService();
~MockPrivacySandboxService() override;
MOCK_METHOD(PrivacySandboxService::PromptType,
GetRequiredPromptType,
(PrivacySandboxService::SurfaceType),
(override));
MOCK_METHOD(void,
PromptActionOccurred,
(PrivacySandboxService::PromptAction,
PrivacySandboxService::SurfaceType),
(override));
#if !BUILDFLAG(IS_ANDROID)
MOCK_METHOD(void,
PromptOpenedForBrowser,
(BrowserWindowInterface*, views::Widget*),
(override));
MOCK_METHOD(void,
PromptClosedForBrowser,
(BrowserWindowInterface*),
(override));
MOCK_METHOD(bool,
IsPromptOpenForBrowser,
(BrowserWindowInterface*),
(override));
MOCK_METHOD(privacy_sandbox::PrivacySandboxQueueManager&,
GetPrivacySandboxNoticeQueueManager,
(),
(override));
#endif // !BUILDFLAG(IS_ANDROID)
MOCK_METHOD(void, ForceChromeBuildForTests, (bool), (override));
// Mock this method to enable opening the settings page in tests.
MOCK_METHOD(bool, IsPrivacySandboxRestricted, (), (override));
MOCK_METHOD(bool, IsRestrictedNoticeEnabled, (), (override));
MOCK_METHOD(void, SetRelatedWebsiteSetsDataAccessEnabled, (bool), (override));
MOCK_METHOD(bool,
IsRelatedWebsiteSetsDataAccessEnabled,
(),
(const, override));
MOCK_METHOD(bool,
IsRelatedWebsiteSetsDataAccessManaged,
(),
(const, override));
MOCK_METHOD(std::optional<net::SchemefulSite>,
GetRelatedWebsiteSetOwner,
(const GURL& site_url),
(const, override));
MOCK_METHOD(std::optional<std::u16string>,
GetRelatedWebsiteSetOwnerForDisplay,
(const GURL& site_url),
(const, override));
MOCK_METHOD(bool,
IsPartOfManagedRelatedWebsiteSet,
(const net::SchemefulSite& site),
(const, override));
MOCK_METHOD(void,
GetFledgeJoiningEtldPlusOneForDisplay,
(base::OnceCallback<void(std::vector<std::string>)>),
(override));
MOCK_METHOD(std::vector<std::string>,
GetBlockedFledgeJoiningTopFramesForDisplay,
(),
(const, override));
MOCK_METHOD(void,
SetFledgeJoiningAllowed,
((const std::string&), bool),
(const, override));
MOCK_METHOD(std::vector<privacy_sandbox::CanonicalTopic>,
GetCurrentTopTopics,
(),
(const, override));
MOCK_METHOD(std::vector<privacy_sandbox::CanonicalTopic>,
GetFirstLevelTopics,
(),
(const, override));
MOCK_METHOD(std::vector<privacy_sandbox::CanonicalTopic>,
GetChildTopicsCurrentlyAssigned,
(const privacy_sandbox::CanonicalTopic& topic),
(const, override));
MOCK_METHOD(std::vector<privacy_sandbox::CanonicalTopic>,
GetBlockedTopics,
(),
(const, override));
MOCK_METHOD(void,
SetTopicAllowed,
(privacy_sandbox::CanonicalTopic, bool),
(override));
MOCK_METHOD(bool,
PrivacySandboxPrivacyGuideShouldShowAdTopicsCard,
(),
(override));
MOCK_METHOD(bool, ShouldUsePrivacyPolicyChinaDomain, (), (override));
MOCK_METHOD(void, TopicsToggleChanged, (bool), (const, override));
MOCK_METHOD(bool, TopicsConsentRequired, (), (override));
MOCK_METHOD(bool, TopicsHasActiveConsent, (), (const, override));
MOCK_METHOD(privacy_sandbox::TopicsConsentUpdateSource,
TopicsConsentLastUpdateSource,
(),
(const, override));
MOCK_METHOD(base::Time, TopicsConsentLastUpdateTime, (), (const, override));
MOCK_METHOD(std::string, TopicsConsentLastUpdateText, (), (const, override));
MOCK_METHOD(void, UpdateTopicsApiResult, (bool), (override));
MOCK_METHOD(void, UpdateProtectedAudienceApiResult, (bool), (override));
MOCK_METHOD(void, UpdateMeasurementApiResult, (bool), (override));
MOCK_METHOD(privacy_sandbox::EligibilityLevel,
GetTopicsApiEligibility,
(),
(override));
MOCK_METHOD(privacy_sandbox::EligibilityLevel,
GetProtectedAudienceApiEligibility,
(),
(override));
MOCK_METHOD(privacy_sandbox::EligibilityLevel,
GetAdMeasurementApiEligibility,
(),
(override));
private:
std::unique_ptr<privacy_sandbox::MockPrivacySandboxQueueManager>
mock_queue_manager_;
};
std::unique_ptr<KeyedService> BuildMockPrivacySandboxService(
content::BrowserContext* context);
#endif // CHROME_BROWSER_PRIVACY_SANDBOX_MOCK_PRIVACY_SANDBOX_SERVICE_H_