blob: 9f75dbc824a145f40444eb1842fbeae299c8caf3 [file] [log] [blame]
[email protected]4bff53d2012-03-08 23:13:101// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[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"
[email protected]4e94ab32011-08-05 05:28:278#include "chrome/common/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) {
22 ASSERT_EQ(0, IncognitoModePrefs::ENABLED);
23 ASSERT_EQ(1, IncognitoModePrefs::DISABLED);
24 ASSERT_EQ(2, IncognitoModePrefs::FORCED);
25
26 IncognitoModePrefs::Availability incognito;
27 EXPECT_TRUE(IncognitoModePrefs::IntToAvailability(0, &incognito));
28 EXPECT_EQ(IncognitoModePrefs::ENABLED, incognito);
29 EXPECT_TRUE(IncognitoModePrefs::IntToAvailability(1, &incognito));
30 EXPECT_EQ(IncognitoModePrefs::DISABLED, incognito);
31 EXPECT_TRUE(IncognitoModePrefs::IntToAvailability(2, &incognito));
32 EXPECT_EQ(IncognitoModePrefs::FORCED, incognito);
33
34 EXPECT_FALSE(IncognitoModePrefs::IntToAvailability(10, &incognito));
35 EXPECT_EQ(IncognitoModePrefs::ENABLED, incognito);
36 EXPECT_FALSE(IncognitoModePrefs::IntToAvailability(-1, &incognito));
37 EXPECT_EQ(IncognitoModePrefs::ENABLED, incognito);
38}
39
40TEST_F(IncognitoModePrefsTest, GetAvailability) {
vabr8684c9a2017-03-29 13:14:5741 prefs_.SetUserPref(
42 prefs::kIncognitoModeAvailability,
Jeremy Romanec48d7a2018-03-01 17:35:0943 std::make_unique<base::Value>(IncognitoModePrefs::ENABLED));
[email protected]4e94ab32011-08-05 05:28:2744 EXPECT_EQ(IncognitoModePrefs::ENABLED,
45 IncognitoModePrefs::GetAvailability(&prefs_));
46
vabr8684c9a2017-03-29 13:14:5747 prefs_.SetUserPref(
48 prefs::kIncognitoModeAvailability,
Jeremy Romanec48d7a2018-03-01 17:35:0949 std::make_unique<base::Value>(IncognitoModePrefs::DISABLED));
[email protected]4e94ab32011-08-05 05:28:2750 EXPECT_EQ(IncognitoModePrefs::DISABLED,
51 IncognitoModePrefs::GetAvailability(&prefs_));
52
53 prefs_.SetUserPref(prefs::kIncognitoModeAvailability,
Jeremy Romanec48d7a2018-03-01 17:35:0954 std::make_unique<base::Value>(IncognitoModePrefs::FORCED));
[email protected]4e94ab32011-08-05 05:28:2755 EXPECT_EQ(IncognitoModePrefs::FORCED,
56 IncognitoModePrefs::GetAvailability(&prefs_));
57}
58
59typedef IncognitoModePrefsTest IncognitoModePrefsDeathTest;
60
[email protected]60875d42014-03-25 16:14:1161TEST_F(IncognitoModePrefsDeathTest, GetAvailabilityBadValue) {
vabr8684c9a2017-03-29 13:14:5762 prefs_.SetUserPref(prefs::kIncognitoModeAvailability,
Jeremy Romanec48d7a2018-03-01 17:35:0963 std::make_unique<base::Value>(-1));
wez976ae7d2017-01-17 17:51:0264 EXPECT_DCHECK_DEATH({
[email protected]20960e072011-09-20 20:59:0165 IncognitoModePrefs::Availability availability =
66 IncognitoModePrefs::GetAvailability(&prefs_);
67 EXPECT_EQ(IncognitoModePrefs::ENABLED, availability);
wez976ae7d2017-01-17 17:51:0268 });
[email protected]4e94ab32011-08-05 05:28:2769}