blob: 5fb2545c884c2bac03f50db80e73815a080e3763 [file] [log] [blame]
Avi Drissman4a8573c2022-09-09 19:35:541// Copyright 2012 The Chromium Authors
[email protected]4e94ab32011-08-05 05:28:272// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/prefs/incognito_mode_prefs.h"
6
wez976ae7d2017-01-17 17:51:027#include "base/test/gtest_util.h"
Ali Jumafb67b2c92023-03-22 19:15:268#include "components/policy/core/common/policy_pref_names.h"
maxbogueea16ff412016-10-28 16:35:299#include "components/sync_preferences/testing_pref_service_syncable.h"
[email protected]4e94ab32011-08-05 05:28:2710#include "testing/gtest/include/gtest/gtest.h"
11
12class IncognitoModePrefsTest : public testing::Test {
13 protected:
dchenge1bc7982014-10-30 00:32:4014 void SetUp() override {
[email protected]37ca3fe02013-07-05 15:32:4415 IncognitoModePrefs::RegisterProfilePrefs(prefs_.registry());
[email protected]4e94ab32011-08-05 05:28:2716 }
17
maxbogueea16ff412016-10-28 16:35:2918 sync_preferences::TestingPrefServiceSyncable prefs_;
[email protected]4e94ab32011-08-05 05:28:2719};
20
21TEST_F(IncognitoModePrefsTest, IntToAvailability) {
Duong Dac437731a2023-03-28 12:33:2522 ASSERT_EQ(0, static_cast<int>(policy::IncognitoModeAvailability::kEnabled));
23 ASSERT_EQ(1, static_cast<int>(policy::IncognitoModeAvailability::kDisabled));
24 ASSERT_EQ(2, static_cast<int>(policy::IncognitoModeAvailability::kForced));
[email protected]4e94ab32011-08-05 05:28:2725
Duong Dac437731a2023-03-28 12:33:2526 policy::IncognitoModeAvailability incognito;
[email protected]4e94ab32011-08-05 05:28:2727 EXPECT_TRUE(IncognitoModePrefs::IntToAvailability(0, &incognito));
Duong Dac437731a2023-03-28 12:33:2528 EXPECT_EQ(policy::IncognitoModeAvailability::kEnabled, incognito);
[email protected]4e94ab32011-08-05 05:28:2729 EXPECT_TRUE(IncognitoModePrefs::IntToAvailability(1, &incognito));
Duong Dac437731a2023-03-28 12:33:2530 EXPECT_EQ(policy::IncognitoModeAvailability::kDisabled, incognito);
[email protected]4e94ab32011-08-05 05:28:2731 EXPECT_TRUE(IncognitoModePrefs::IntToAvailability(2, &incognito));
Duong Dac437731a2023-03-28 12:33:2532 EXPECT_EQ(policy::IncognitoModeAvailability::kForced, incognito);
[email protected]4e94ab32011-08-05 05:28:2733
34 EXPECT_FALSE(IncognitoModePrefs::IntToAvailability(10, &incognito));
Ian Vollick381389a62019-06-26 16:49:4035 EXPECT_EQ(IncognitoModePrefs::kDefaultAvailability, incognito);
[email protected]4e94ab32011-08-05 05:28:2736 EXPECT_FALSE(IncognitoModePrefs::IntToAvailability(-1, &incognito));
Ian Vollick381389a62019-06-26 16:49:4037 EXPECT_EQ(IncognitoModePrefs::kDefaultAvailability, incognito);
[email protected]4e94ab32011-08-05 05:28:2738}
39
40TEST_F(IncognitoModePrefsTest, GetAvailability) {
Ali Jumafb67b2c92023-03-22 19:15:2641 prefs_.SetUserPref(policy::policy_prefs::kIncognitoModeAvailability,
Peter Kasting858dba02021-09-17 15:12:2342 std::make_unique<base::Value>(static_cast<int>(
Duong Dac437731a2023-03-28 12:33:2543 policy::IncognitoModeAvailability::kEnabled)));
44 EXPECT_EQ(policy::IncognitoModeAvailability::kEnabled,
[email protected]4e94ab32011-08-05 05:28:2745 IncognitoModePrefs::GetAvailability(&prefs_));
46
Ali Jumafb67b2c92023-03-22 19:15:2647 prefs_.SetUserPref(policy::policy_prefs::kIncognitoModeAvailability,
Peter Kasting858dba02021-09-17 15:12:2348 std::make_unique<base::Value>(static_cast<int>(
Duong Dac437731a2023-03-28 12:33:2549 policy::IncognitoModeAvailability::kDisabled)));
50 EXPECT_EQ(policy::IncognitoModeAvailability::kDisabled,
Peter Kasting858dba02021-09-17 15:12:2351 IncognitoModePrefs::GetAvailability(&prefs_));
52
Ali Jumafb67b2c92023-03-22 19:15:2653 prefs_.SetUserPref(policy::policy_prefs::kIncognitoModeAvailability,
Peter Kasting858dba02021-09-17 15:12:2354 std::make_unique<base::Value>(static_cast<int>(
Duong Dac437731a2023-03-28 12:33:2555 policy::IncognitoModeAvailability::kForced)));
56 EXPECT_EQ(policy::IncognitoModeAvailability::kForced,
[email protected]4e94ab32011-08-05 05:28:2757 IncognitoModePrefs::GetAvailability(&prefs_));
58}
59
60typedef IncognitoModePrefsTest IncognitoModePrefsDeathTest;
61
Guido Urdanetae37ef5cb2023-10-25 16:29:0562#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
63#define MAYBE_GetAvailabilityBadValue DISABLED_GetAvailabilityBadValue
64#else
65#define MAYBE_GetAvailabilityBadValue GetAvailabilityBadValue
66#endif
67TEST_F(IncognitoModePrefsDeathTest, MAYBE_GetAvailabilityBadValue) {
Ali Jumafb67b2c92023-03-22 19:15:2668 prefs_.SetUserPref(policy::policy_prefs::kIncognitoModeAvailability,
Jeremy Romanec48d7a2018-03-01 17:35:0969 std::make_unique<base::Value>(-1));
wez976ae7d2017-01-17 17:51:0270 EXPECT_DCHECK_DEATH({
Duong Dac437731a2023-03-28 12:33:2571 policy::IncognitoModeAvailability availability =
[email protected]20960e072011-09-20 20:59:0172 IncognitoModePrefs::GetAvailability(&prefs_);
Duong Dac437731a2023-03-28 12:33:2573 EXPECT_EQ(policy::IncognitoModeAvailability::kEnabled, availability);
wez976ae7d2017-01-17 17:51:0274 });
[email protected]4e94ab32011-08-05 05:28:2775}