15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/prefs/session_startup_pref.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/pref_names.h" 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/test/base/testing_pref_service_syncable.h" 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "components/pref_registry/pref_registry_syncable.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gmock/include/gmock/gmock.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/cocoa/window_restore_utils.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Unit tests for SessionStartupPref. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SessionStartupPrefTest : public testing::Test { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetUp() { 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) pref_service_.reset(new TestingPrefServiceSyncable); 217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch SessionStartupPref::RegisterProfilePrefs(registry()); 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) registry()->RegisterBooleanPref( 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs::kHomePageIsNewTabPage, 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) true, 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Make the tests independent of the Mac startup pref migration (see 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // SessionStartupPref::MigrateMacDefaultPrefIfNecessary). 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) registry()->RegisterStringPref( 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs::kProfileCreatedByVersion, 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) "22.0.0.0", 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool IsUseLastOpenDefault() { 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // On ChromeOS, the default SessionStartupPref is LAST. 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_CHROMEOS) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return false; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) user_prefs::PrefRegistrySyncable* registry() { 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return pref_service_->registry(); 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<TestingPrefServiceSyncable> pref_service_; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(SessionStartupPrefTest, URLListIsFixedUp) { 515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::ListValue* url_pref_list = new base::ListValue; 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) url_pref_list->Set(0, new base::StringValue("google.com")); 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) url_pref_list->Set(1, new base::StringValue("chromium.org")); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetUserPref(prefs::kURLsToRestoreOnStartup, url_pref_list); 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref result = 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref::GetStartupPref(pref_service_.get()); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(2u, result.urls.size()); 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ("http://google.com/", result.urls[0].spec()); 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ("http://chromium.org/", result.urls[1].spec()); 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(SessionStartupPrefTest, URLListManagedOverridesUser) { 645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::ListValue* url_pref_list1 = new base::ListValue; 655f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) url_pref_list1->Set(0, new base::StringValue("chromium.org")); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetUserPref(prefs::kURLsToRestoreOnStartup, url_pref_list1); 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::ListValue* url_pref_list2 = new base::ListValue; 695f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) url_pref_list2->Set(0, new base::StringValue("chromium.org")); 705f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) url_pref_list2->Set(1, new base::StringValue("chromium.org")); 715f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) url_pref_list2->Set(2, new base::StringValue("chromium.org")); 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetManagedPref(prefs::kURLsToRestoreOnStartup, 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) url_pref_list2); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref result = 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref::GetStartupPref(pref_service_.get()); 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(3u, result.urls.size()); 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref override_test = 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref(SessionStartupPref::URLS); 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) override_test.urls.push_back(GURL("dev.chromium.org")); 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref::SetStartupPref(pref_service_.get(), override_test); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) result = SessionStartupPref::GetStartupPref(pref_service_.get()); 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(3u, result.urls.size()); 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks to make sure that if the user had previously not selected anything 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// (so that, in effect, the default value "Open the homepage" was selected), 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// their preferences are migrated on upgrade to m19. 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(SessionStartupPrefTest, DefaultMigration) { 92c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) registry()->RegisterStringPref( 93c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs::kHomePage, 94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) "http://google.com/", 95c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(pref_service_->HasPrefPath(prefs::kRestoreOnStartup)); 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref pref = SessionStartupPref::GetStartupPref( 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_.get()); 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (IsUseLastOpenDefault()) { 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(SessionStartupPref::LAST, pref.type); 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(0U, pref.urls.size()); 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } else { 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(SessionStartupPref::URLS, pref.type); 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(1U, pref.urls.size()); 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]); 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks to make sure that if the user had previously not selected anything 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// (so that, in effect, the default value "Open the homepage" was selected), 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and the NTP is being used for the homepage, their preferences are migrated 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to "Open the New Tab Page" on upgrade to M19. 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(SessionStartupPrefTest, DefaultMigrationHomepageIsNTP) { 119c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) registry()->RegisterStringPref( 120c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs::kHomePage, 121c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) "http://google.com/", 122c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true); 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(pref_service_->HasPrefPath(prefs::kRestoreOnStartup)); 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref pref = SessionStartupPref::GetStartupPref( 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_.get()); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (IsUseLastOpenDefault()) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(SessionStartupPref::LAST, pref.type); 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(SessionStartupPref::DEFAULT, pref.type); 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The "URLs to restore on startup" shouldn't get migrated. 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(0U, pref.urls.size()); 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks to make sure that if the user had previously selected "Open the 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// "homepage", their preferences are migrated on upgrade to M19. 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(SessionStartupPrefTest, HomePageMigration) { 143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) registry()->RegisterStringPref( 144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs::kHomePage, 145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) "http://google.com/", 146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // By design, it's impossible to set the 'restore on startup' pref to 0 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // using the pref service directly. 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0); 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false); 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref pref = SessionStartupPref::GetStartupPref( 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_.get()); 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(SessionStartupPref::URLS, pref.type); 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(1U, pref.urls.size()); 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]); 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks to make sure that if the user had previously selected "Open the 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// "homepage", and the NTP is being used for the homepage, their preferences 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// are migrated on upgrade to M19. 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(SessionStartupPrefTest, HomePageMigrationHomepageIsNTP) { 167c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) registry()->RegisterStringPref( 168c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs::kHomePage, 169c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) "http://google.com/", 170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // By design, it's impossible to set the 'restore on startup' pref to 0 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // using the pref service directly. 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0); 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true); 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref pref = SessionStartupPref::GetStartupPref( 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_.get()); 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(SessionStartupPref::DEFAULT, pref.type); 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// See SessionStartupPref::MigrateMacDefaultPrefIfNecessary. 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(SessionStartupPrefTest, MacDefaultStartupPrefMigration) { 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!restore_utils::IsWindowRestoreEnabled()) 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return; 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Use an old profile. 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_->SetString(prefs::kProfileCreatedByVersion, "19.0.0.0"); 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SessionStartupPref::TypeIsDefault(pref_service_.get())); 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Trigger the migration. 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SessionStartupPref pref = SessionStartupPref::GetStartupPref( 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_service_.get()); 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The pref is now explicit. 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(SessionStartupPref::LAST, pref.type); 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(SessionStartupPref::TypeIsDefault(pref_service_.get())); 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 204