| // Copyright 2014 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/predictors/loading_predictor_config.h" |
| |
| #include "chrome/browser/preloading/preloading_prefs.h" |
| #include "chrome/common/pref_names.h" |
| #include "chrome/test/base/testing_profile.h" |
| #include "components/prefs/pref_service.h" |
| #include "content/public/test/browser_task_environment.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace predictors { |
| |
| class LoadingPredictorConfigTest : public testing::Test { |
| public: |
| void SetPreference(prefetch::PreloadPagesState value) { |
| prefetch::SetPreloadPagesState(profile_.GetPrefs(), value); |
| } |
| |
| Profile* profile() { return &profile_; } |
| |
| private: |
| content::BrowserTaskEnvironment task_environment_; |
| TestingProfile profile_; |
| }; |
| |
| TEST_F(LoadingPredictorConfigTest, PrefEnabled) { |
| SetPreference(prefetch::PreloadPagesState::kStandardPreloading); |
| |
| EXPECT_TRUE(IsLoadingPredictorEnabled(profile())); |
| EXPECT_TRUE(IsPreconnectAllowed(profile())); |
| } |
| |
| TEST_F(LoadingPredictorConfigTest, PrefDisabled) { |
| SetPreference(prefetch::PreloadPagesState::kNoPreloading); |
| |
| EXPECT_TRUE(IsLoadingPredictorEnabled(profile())); |
| EXPECT_FALSE(IsPreconnectAllowed(profile())); |
| } |
| |
| TEST_F(LoadingPredictorConfigTest, IncognitoProfile) { |
| SetPreference(prefetch::PreloadPagesState::kStandardPreloading); |
| Profile* incognito = |
| profile()->GetPrimaryOTRProfile(/*create_if_needed=*/true); |
| |
| EXPECT_FALSE(IsLoadingPredictorEnabled(incognito)); |
| EXPECT_TRUE(IsPreconnectAllowed(incognito)); |
| } |
| |
| TEST_F(LoadingPredictorConfigTest, NonPrimaryOffTheRecordProfile) { |
| SetPreference(prefetch::PreloadPagesState::kStandardPreloading); |
| Profile* otr_profile = profile()->GetOffTheRecordProfile( |
| Profile::OTRProfileID::CreateUniqueForTesting(), |
| /*create_if_needed=*/true); |
| |
| EXPECT_FALSE(IsLoadingPredictorEnabled(otr_profile)); |
| EXPECT_TRUE(IsPreconnectAllowed(otr_profile)); |
| } |
| |
| } // namespace predictors |