summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/prefs/session_startup_pref_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/prefs/session_startup_pref_unittest.cc')
-rw-r--r--chromium/chrome/browser/prefs/session_startup_pref_unittest.cc66
1 files changed, 66 insertions, 0 deletions
diff --git a/chromium/chrome/browser/prefs/session_startup_pref_unittest.cc b/chromium/chrome/browser/prefs/session_startup_pref_unittest.cc
new file mode 100644
index 00000000000..69a77f997a5
--- /dev/null
+++ b/chromium/chrome/browser/prefs/session_startup_pref_unittest.cc
@@ -0,0 +1,66 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/prefs/session_startup_pref.h"
+#include "chrome/common/pref_names.h"
+#include "components/pref_registry/pref_registry_syncable.h"
+#include "components/sync_preferences/testing_pref_service_syncable.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+// Unit tests for SessionStartupPref.
+class SessionStartupPrefTest : public testing::Test {
+ public:
+ void SetUp() override {
+ pref_service_.reset(new sync_preferences::TestingPrefServiceSyncable);
+ SessionStartupPref::RegisterProfilePrefs(registry());
+ registry()->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, true);
+ }
+
+ user_prefs::PrefRegistrySyncable* registry() {
+ return pref_service_->registry();
+ }
+
+ std::unique_ptr<sync_preferences::TestingPrefServiceSyncable> pref_service_;
+};
+
+TEST_F(SessionStartupPrefTest, URLListIsFixedUp) {
+ auto url_pref_list = std::make_unique<base::ListValue>();
+ url_pref_list->Set(0, std::make_unique<base::Value>("google.com"));
+ url_pref_list->Set(1, std::make_unique<base::Value>("chromium.org"));
+ pref_service_->SetUserPref(prefs::kURLsToRestoreOnStartup,
+ std::move(url_pref_list));
+
+ SessionStartupPref result =
+ SessionStartupPref::GetStartupPref(pref_service_.get());
+ EXPECT_EQ(2u, result.urls.size());
+ EXPECT_EQ("http://google.com/", result.urls[0].spec());
+ EXPECT_EQ("http://chromium.org/", result.urls[1].spec());
+}
+
+TEST_F(SessionStartupPrefTest, URLListManagedOverridesUser) {
+ auto url_pref_list1 = std::make_unique<base::ListValue>();
+ url_pref_list1->Set(0, std::make_unique<base::Value>("chromium.org"));
+ pref_service_->SetUserPref(prefs::kURLsToRestoreOnStartup,
+ std::move(url_pref_list1));
+
+ auto url_pref_list2 = std::make_unique<base::ListValue>();
+ url_pref_list2->Set(0, std::make_unique<base::Value>("chromium.org"));
+ url_pref_list2->Set(1, std::make_unique<base::Value>("chromium.org"));
+ url_pref_list2->Set(2, std::make_unique<base::Value>("chromium.org"));
+ pref_service_->SetManagedPref(prefs::kURLsToRestoreOnStartup,
+ std::move(url_pref_list2));
+
+ SessionStartupPref result =
+ SessionStartupPref::GetStartupPref(pref_service_.get());
+ EXPECT_EQ(3u, result.urls.size());
+
+ SessionStartupPref override_test =
+ SessionStartupPref(SessionStartupPref::URLS);
+ override_test.urls.push_back(GURL("dev.chromium.org"));
+ SessionStartupPref::SetStartupPref(pref_service_.get(), override_test);
+
+ result = SessionStartupPref::GetStartupPref(pref_service_.get());
+ EXPECT_EQ(3u, result.urls.size());
+}