chromium/components/user_education/test/feature_promo_session_mocks.h

// Copyright 2023 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_USER_EDUCATION_TEST_FEATURE_PROMO_SESSION_MOCKS_H_
#define COMPONENTS_USER_EDUCATION_TEST_FEATURE_PROMO_SESSION_MOCKS_H_

#include "components/user_education/common/feature_promo_idle_observer.h"
#include "components/user_education/common/feature_promo_idle_policy.h"
#include "components/user_education/common/feature_promo_session_manager.h"

#include "testing/gmock/include/gmock/gmock.h"

namespace user_education::test {

// Version of `IdleObserver` that returns a provided state and which sends state
// updates only when `UpdateState()` is called.
class TestIdleObserver : public FeaturePromoIdleObserver {};

// Mock version of `IdlePolicy` that allows specific queries to be intercepted.
class MockIdlePolicy : public FeaturePromoIdlePolicy {};

// Mock version of `FeaturePromoSessionManager` that can monitor when updates or
// new sessions happen.
class MockFeaturePromoSessionManager : public FeaturePromoSessionManager {};

}  // namespace user_education::test

#endif  // COMPONENTS_USER_EDUCATION_TEST_FEATURE_PROMO_SESSION_MOCKS_H_