blob: 81bbef4129f2c7a4ec12a03129ab45c76592dd11 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/contextual_cueing/nudge_cap_tracker.h"
#include "base/test/task_environment.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace contextual_cueing {
class ContextualCueingNudgeCapTracker : public testing::Test {
protected:
base::test::TaskEnvironment task_environment_{
base::test::TaskEnvironment::TimeSource::MOCK_TIME};
};
TEST_F(ContextualCueingNudgeCapTracker, NoRestriction) {
NudgeCapTracker tracker(0, base::TimeDelta());
EXPECT_TRUE(tracker.CanShowNudge());
task_environment_.FastForwardBy(base::Minutes(1));
tracker.CueingNudgeShown();
EXPECT_TRUE(tracker.CanShowNudge());
tracker.CueingNudgeShown();
EXPECT_TRUE(tracker.CanShowNudge());
}
TEST_F(ContextualCueingNudgeCapTracker, Basic) {
NudgeCapTracker tracker(3, base::Hours(24));
for (int i = 0; i < 3; i++) {
EXPECT_TRUE(tracker.CanShowNudge());
task_environment_.FastForwardBy(base::Minutes(1));
tracker.CueingNudgeShown();
}
EXPECT_FALSE(tracker.CanShowNudge());
task_environment_.FastForwardBy(base::Hours(25));
EXPECT_TRUE(tracker.CanShowNudge());
}
TEST_F(ContextualCueingNudgeCapTracker, GetMostRecentTime) {
NudgeCapTracker tracker(3, base::Hours(24));
EXPECT_EQ(tracker.GetMostRecentNudgeTime(), std::nullopt);
tracker.CueingNudgeShown();
task_environment_.FastForwardBy(base::Minutes(1));
tracker.CueingNudgeShown();
task_environment_.FastForwardBy(base::Minutes(1));
tracker.CueingNudgeShown();
EXPECT_EQ(tracker.GetMostRecentNudgeTime(), base::TimeTicks::Now());
}
} // namespace contextual_cueing