blob: 25fe2f735f408027ca733f14a45633cdbdce67ac [file] [log] [blame]
// Copyright 2017 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_FEATURE_ENGAGEMENT_TEST_MOCK_TRACKER_H_
#define COMPONENTS_FEATURE_ENGAGEMENT_TEST_MOCK_TRACKER_H_
#include <memory>
#include <optional>
#include <string>
#include "build/build_config.h"
#include "components/feature_engagement/public/tracker.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace base {
class Clock;
}
namespace feature_engagement {
namespace test {
class MockTracker : public Tracker {
public:
MockTracker();
MockTracker(const MockTracker&) = delete;
MockTracker& operator=(const MockTracker&) = delete;
~MockTracker() override;
// Tracker implementation.
MOCK_METHOD1(NotifyEvent, void(const std::string& event));
#if !BUILDFLAG(IS_ANDROID)
MOCK_METHOD1(NotifyUsedEvent, void(const base::Feature& feature));
MOCK_METHOD1(ClearEventData, void(const base::Feature& feature));
MOCK_CONST_METHOD1(ListEvents, EventList(const base::Feature& feature));
#endif
MOCK_METHOD1(ShouldTriggerHelpUI, bool(const base::Feature& feature));
MOCK_METHOD1(ShouldTriggerHelpUIWithSnooze,
TriggerDetails(const base::Feature& feature));
MOCK_CONST_METHOD1(WouldTriggerHelpUI, bool(const base::Feature& feature));
MOCK_CONST_METHOD2(HasEverTriggered,
bool(const base::Feature& feature, bool from_window));
MOCK_CONST_METHOD1(GetTriggerState,
Tracker::TriggerState(const base::Feature& feature));
MOCK_CONST_METHOD0(IsInitialized, bool());
MOCK_METHOD1(Dismissed, void(const base::Feature& feature));
MOCK_METHOD2(DismissedWithSnooze,
void(const base::Feature& feature,
std::optional<SnoozeAction> snooze_action));
MOCK_METHOD0(AcquireDisplayLock, std::unique_ptr<DisplayLockHandle>());
MOCK_METHOD1(SetPriorityNotification, void(const base::Feature&));
MOCK_METHOD0(GetPendingPriorityNotification, std::optional<std::string>());
MOCK_METHOD2(RegisterPriorityNotificationHandler,
void(const base::Feature&, base::OnceClosure));
MOCK_METHOD1(UnregisterPriorityNotificationHandler,
void(const base::Feature&));
MOCK_METHOD1(AddOnInitializedCallback, void(OnInitializedCallback callback));
#if BUILDFLAG(IS_CHROMEOS)
MOCK_METHOD2(UpdateConfig,
void(const base::Feature& feature,
const ConfigurationProvider* provider));
#endif
MOCK_CONST_METHOD0(GetConfigurationForTesting, const Configuration*());
MOCK_METHOD2(SetClockForTesting,
void(const base::Clock& clock, base::Time initial_now));
MOCK_CONST_METHOD0(IsInFeatureTestMode, bool());
};
} // namespace test
} // namespace feature_engagement
#endif // COMPONENTS_FEATURE_ENGAGEMENT_TEST_MOCK_TRACKER_H_