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/files/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 17namespace first_run { 18 19class 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 30TEST_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 41TEST_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 51TEST_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