Home | History | Annotate | Download | only in first_run
      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 
     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