1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/basictypes.h" 6 #include "base/compiler_specific.h" 7 #include "base/file_util.h" 8 #include "base/path_service.h" 9 #include "base/test/scoped_path_override.h" 10 #include "base/values.h" 11 #include "chrome/browser/first_run/first_run.h" 12 #include "chrome/browser/first_run/first_run_internal.h" 13 #include "chrome/common/chrome_paths.h" 14 #include "chrome/installer/util/master_preferences.h" 15 #include "testing/gtest/include/gtest/gtest.h" 16 17 namespace first_run { 18 19 class FirstRunTest : public testing::Test { 20 protected: 21 FirstRunTest() : user_data_dir_override_(chrome::DIR_USER_DATA) {} 22 virtual ~FirstRunTest() {} 23 24 private: 25 base::ScopedPathOverride user_data_dir_override_; 26 27 DISALLOW_COPY_AND_ASSIGN(FirstRunTest); 28 }; 29 30 TEST_F(FirstRunTest, SetupMasterPrefsFromInstallPrefs_VariationsSeed) { 31 installer::MasterPreferences install_prefs("{ \"variations_seed\":\"xyz\" }"); 32 EXPECT_EQ(1U, install_prefs.master_dictionary().size()); 33 34 MasterPrefs out_prefs; 35 internal::SetupMasterPrefsFromInstallPrefs(install_prefs, &out_prefs); 36 EXPECT_EQ("xyz", out_prefs.variations_seed); 37 // Variations prefs should have been extracted (removed) from the dictionary. 38 EXPECT_TRUE(install_prefs.master_dictionary().empty()); 39 } 40 41 TEST_F(FirstRunTest, SetupMasterPrefsFromInstallPrefs_NoVariationsSeed) { 42 installer::MasterPreferences install_prefs("{ }"); 43 EXPECT_TRUE(install_prefs.master_dictionary().empty()); 44 45 MasterPrefs out_prefs; 46 internal::SetupMasterPrefsFromInstallPrefs(install_prefs, &out_prefs); 47 EXPECT_TRUE(out_prefs.variations_seed.empty()); 48 EXPECT_TRUE(out_prefs.variations_seed_signature.empty()); 49 } 50 51 TEST_F(FirstRunTest, SetupMasterPrefsFromInstallPrefs_VariationsSeedSignature) { 52 installer::MasterPreferences install_prefs( 53 "{ \"variations_seed\":\"xyz\", \"variations_seed_signature\":\"abc\" }"); 54 EXPECT_EQ(2U, install_prefs.master_dictionary().size()); 55 56 MasterPrefs out_prefs; 57 internal::SetupMasterPrefsFromInstallPrefs(install_prefs, &out_prefs); 58 EXPECT_EQ("xyz", out_prefs.variations_seed); 59 EXPECT_EQ("abc", out_prefs.variations_seed_signature); 60 // Variations prefs should have been extracted (removed) from the dictionary. 61 EXPECT_TRUE(install_prefs.master_dictionary().empty()); 62 } 63 64 } // namespace first_run 65