blob: 70292851a3e441a1c183b09878b642581196269b [file] [log] [blame] [edit]
// 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 "ash/scanner/scanner_disclaimer.h"
#include "ash/constants/ash_pref_names.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/testing_pref_service.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace ash {
namespace {
void RegisterPrefs(PrefRegistrySimple& registry) {
registry.RegisterBooleanPref(prefs::kScannerConsentDisclaimerAccepted, false);
registry.RegisterBooleanPref(
prefs::kScannerEntryPointDisclaimerAckSmartActionsButton, false);
registry.RegisterBooleanPref(
prefs::kScannerEntryPointDisclaimerAckSunfishSession, false);
}
TEST(ScannerDisclaimerTest, InitialValues) {
TestingPrefServiceSimple prefs;
RegisterPrefs(*prefs.registry());
EXPECT_EQ(
GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSmartActionsButton),
ScannerDisclaimerType::kFull);
EXPECT_EQ(GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSunfishSession),
ScannerDisclaimerType::kFull);
}
TEST(ScannerDisclaimerTest, AfterSmartActionsButtonAcknowledge) {
TestingPrefServiceSimple prefs;
RegisterPrefs(*prefs.registry());
SetScannerDisclaimerAcked(prefs, ScannerEntryPoint::kSmartActionsButton);
EXPECT_EQ(
GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSmartActionsButton),
ScannerDisclaimerType::kNone);
EXPECT_EQ(GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSunfishSession),
ScannerDisclaimerType::kReminder);
}
TEST(ScannerDisclaimerTest, AfterSunfishSessionAcknowledge) {
TestingPrefServiceSimple prefs;
RegisterPrefs(*prefs.registry());
SetScannerDisclaimerAcked(prefs, ScannerEntryPoint::kSunfishSession);
EXPECT_EQ(
GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSmartActionsButton),
ScannerDisclaimerType::kReminder);
EXPECT_EQ(GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSunfishSession),
ScannerDisclaimerType::kNone);
}
TEST(ScannerDisclaimerTest,
AfterSmartActionsButtonThenSunfishSessionAcknowledge) {
TestingPrefServiceSimple prefs;
RegisterPrefs(*prefs.registry());
SetScannerDisclaimerAcked(prefs, ScannerEntryPoint::kSmartActionsButton);
SetScannerDisclaimerAcked(prefs, ScannerEntryPoint::kSunfishSession);
EXPECT_EQ(
GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSmartActionsButton),
ScannerDisclaimerType::kNone);
EXPECT_EQ(GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSunfishSession),
ScannerDisclaimerType::kNone);
}
TEST(ScannerDisclaimerTest,
AfterSunfishSessionThenSmartActionsButtonAcknowledge) {
TestingPrefServiceSimple prefs;
RegisterPrefs(*prefs.registry());
SetScannerDisclaimerAcked(prefs, ScannerEntryPoint::kSunfishSession);
SetScannerDisclaimerAcked(prefs, ScannerEntryPoint::kSmartActionsButton);
EXPECT_EQ(
GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSmartActionsButton),
ScannerDisclaimerType::kNone);
EXPECT_EQ(GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSunfishSession),
ScannerDisclaimerType::kNone);
}
TEST(ScannerDisclaimerTest, AcknowledgeIsIdempotent) {
TestingPrefServiceSimple prefs;
RegisterPrefs(*prefs.registry());
SetScannerDisclaimerAcked(prefs, ScannerEntryPoint::kSmartActionsButton);
SetScannerDisclaimerAcked(prefs, ScannerEntryPoint::kSmartActionsButton);
EXPECT_EQ(
GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSmartActionsButton),
ScannerDisclaimerType::kNone);
EXPECT_EQ(GetScannerDisclaimerType(prefs, ScannerEntryPoint::kSunfishSession),
ScannerDisclaimerType::kReminder);
}
} // namespace
} // namespace ash