| Index: chrome/browser/protector/protected_prefs_watcher_unittest.cc | 
| diff --git a/chrome/browser/protector/protected_prefs_watcher_unittest.cc b/chrome/browser/protector/protected_prefs_watcher_unittest.cc | 
| deleted file mode 100644 | 
| index ba7807c6336f65e6c9bc7aa96377155a872a559d..0000000000000000000000000000000000000000 | 
| --- a/chrome/browser/protector/protected_prefs_watcher_unittest.cc | 
| +++ /dev/null | 
| @@ -1,291 +0,0 @@ | 
| -// 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 "base/message_loop.h" | 
| -#include "base/values.h" | 
| -#include "chrome/browser/extensions/extension_pref_value_map.h" | 
| -#include "chrome/browser/extensions/extension_pref_value_map_factory.h" | 
| -#include "chrome/browser/extensions/extension_prefs.h" | 
| -#include "chrome/browser/extensions/extension_service.h" | 
| -#include "chrome/browser/prefs/pref_service.h" | 
| -#include "chrome/browser/prefs/scoped_user_pref_update.h" | 
| -#include "chrome/browser/protector/protected_prefs_watcher.h" | 
| -#include "chrome/browser/protector/protector_service_factory.h" | 
| -#include "chrome/browser/protector/protector_service.h" | 
| -#include "chrome/common/extensions/extension_constants.h" | 
| -#include "chrome/common/pref_names.h" | 
| -#include "chrome/test/base/testing_profile.h" | 
| -#include "content/public/test/test_browser_thread.h" | 
| -#include "testing/gtest/include/gtest/gtest.h" | 
| - | 
| -namespace protector { | 
| - | 
| -namespace { | 
| - | 
| -const char kBackupSignature[] = "backup._signature"; | 
| -const char kNewHomePage[] = "http://example.com"; | 
| - | 
| -} | 
| - | 
| -class ProtectedPrefsWatcherTest : public testing::Test { | 
| - public: | 
| -  virtual void SetUp() OVERRIDE { | 
| -    prefs_watcher_ = | 
| -        ProtectorServiceFactory::GetForProfile(&profile_)->GetPrefsWatcher(); | 
| -    prefs_ = profile_.GetPrefs(); | 
| -  } | 
| - | 
| -  bool IsSignatureValid() { | 
| -    return prefs_watcher_->IsSignatureValid(); | 
| -  } | 
| - | 
| -  bool HasBackup() { | 
| -    return prefs_watcher_->HasBackup(); | 
| -  } | 
| - | 
| -  void RevalidateBackup() { | 
| -    prefs_watcher_->ValidateBackup(); | 
| -  } | 
| - | 
| -  void ForceUpdateSignature(ProtectedPrefsWatcher* prefs_watcher) { | 
| -    prefs_watcher->UpdateBackupSignature(); | 
| -  } | 
| - | 
| - protected: | 
| -  ProtectedPrefsWatcher* prefs_watcher_; | 
| -  TestingProfile profile_; | 
| -  PrefService* prefs_; | 
| -}; | 
| - | 
| -TEST_F(ProtectedPrefsWatcherTest, ValidOnCleanProfile) { | 
| -  EXPECT_TRUE(HasBackup()); | 
| -  EXPECT_TRUE(prefs_watcher_->is_backup_valid()); | 
| -} | 
| - | 
| -TEST_F(ProtectedPrefsWatcherTest, ValidAfterPrefChange) { | 
| -  // Signature is still valid after a protected pref has been changed. | 
| -  base::StringValue new_homepage(kNewHomePage); | 
| -  EXPECT_NE(prefs_->GetString(prefs::kHomePage), kNewHomePage); | 
| -  EXPECT_FALSE(new_homepage.Equals( | 
| -      prefs_watcher_->GetBackupForPref(prefs::kHomePage))); | 
| - | 
| -  prefs_->SetString(prefs::kHomePage, kNewHomePage); | 
| - | 
| -  EXPECT_TRUE(HasBackup()); | 
| -  EXPECT_TRUE(prefs_watcher_->is_backup_valid()); | 
| -  EXPECT_EQ(prefs_->GetString(prefs::kHomePage), kNewHomePage); | 
| -  // Backup is updated accordingly. | 
| -  EXPECT_TRUE(new_homepage.Equals( | 
| -      prefs_watcher_->GetBackupForPref(prefs::kHomePage))); | 
| -} | 
| - | 
| -TEST_F(ProtectedPrefsWatcherTest, InvalidSignature) { | 
| -  // Make backup invalid by changing one of its members directly. | 
| -  prefs_->SetString("backup.homepage", kNewHomePage); | 
| -  RevalidateBackup(); | 
| -  EXPECT_TRUE(HasBackup()); | 
| -  EXPECT_FALSE(prefs_watcher_->is_backup_valid()); | 
| -  // No backup values available. | 
| -  EXPECT_FALSE(prefs_watcher_->GetBackupForPref(prefs::kHomePage)); | 
| - | 
| -  // Now change the corresponding protected prefernce: backup should be signed | 
| -  // again but still invalid. | 
| -  prefs_->SetString(prefs::kHomePage, kNewHomePage); | 
| -  EXPECT_TRUE(IsSignatureValid()); | 
| -  EXPECT_FALSE(prefs_watcher_->is_backup_valid()); | 
| -  EXPECT_FALSE(prefs_watcher_->GetBackupForPref(prefs::kHomePage)); | 
| -} | 
| - | 
| -TEST_F(ProtectedPrefsWatcherTest, ExtensionPrefChange) { | 
| -  // Changes to extensions data (but not to extension IDs) do not update | 
| -  // the backup and its signature. | 
| -  MessageLoopForUI message_loop; | 
| -  content::TestBrowserThread ui_thread(content::BrowserThread::UI, | 
| -                                       &message_loop); | 
| - | 
| -  FilePath extensions_install_dir = | 
| -      profile_.GetPath().AppendASCII(ExtensionService::kInstallDirectoryName); | 
| -  scoped_ptr<extensions::ExtensionPrefs> extension_prefs = | 
| -      extensions::ExtensionPrefs::Create( | 
| -          profile_.GetPrefs(), | 
| -          extensions_install_dir, | 
| -          ExtensionPrefValueMapFactory::GetForProfile(&profile_), | 
| -          false);  // extensions_disabled | 
| -  std::string sample_id = extension_misc::kWebStoreAppId; | 
| -  // Flip a pref value of an extension (this will actually add it to the list). | 
| -  extension_prefs->SetAppNotificationDisabled( | 
| -      sample_id, !extension_prefs->IsAppNotificationDisabled(sample_id)); | 
| - | 
| -  // Backup is still valid. | 
| -  EXPECT_TRUE(prefs_watcher_->is_backup_valid()); | 
| - | 
| -  // Make signature invalid by changing it directly. | 
| -  prefs_->SetString(kBackupSignature, "INVALID"); | 
| -  EXPECT_FALSE(IsSignatureValid()); | 
| - | 
| -  // Flip another pref value of that extension. | 
| -  extension_prefs->SetExtensionRunning( | 
| -      sample_id, !extension_prefs->IsExtensionRunning(sample_id)); | 
| - | 
| -  // No changes to the backup and signature. | 
| -  EXPECT_FALSE(IsSignatureValid()); | 
| - | 
| -  // Blacklisting the extension does update the backup and signature. | 
| -  extension_prefs->SetExtensionBlacklisted(sample_id, true); | 
| - | 
| -  EXPECT_TRUE(IsSignatureValid()); | 
| -} | 
| - | 
| -// Verify that version bigger than 1 is included in the signature. | 
| -TEST_F(ProtectedPrefsWatcherTest, VersionIsSigned) { | 
| -  // Reset version to 1. | 
| -  prefs_->ClearPref("backup._version"); | 
| -  // This should make the backup invalid. | 
| -  EXPECT_FALSE(IsSignatureValid()); | 
| - | 
| -  // "Migrate" the backup back to the latest version. | 
| -  RevalidateBackup(); | 
| - | 
| -  EXPECT_FALSE(prefs_watcher_->is_backup_valid()); | 
| -  EXPECT_EQ(ProtectedPrefsWatcher::kCurrentVersionNumber, | 
| -            prefs_->GetInteger("backup._version")); | 
| -} | 
| - | 
| -// Verify that backup for "pinned_tabs" is added during version 2 migration. | 
| -TEST_F(ProtectedPrefsWatcherTest, MigrationToVersion2) { | 
| -  // Add a pinned tab. | 
| -  { | 
| -    ListPrefUpdate pinned_tabs_update(prefs_, prefs::kPinnedTabs); | 
| -    base::ListValue* pinned_tabs = pinned_tabs_update.Get(); | 
| -    pinned_tabs->Clear(); | 
| -    base::DictionaryValue* tab = new base::DictionaryValue; | 
| -    tab->SetString("url", "http://example.com/"); | 
| -    pinned_tabs->Append(tab); | 
| -  } | 
| -  EXPECT_TRUE(prefs_watcher_->is_backup_valid()); | 
| - | 
| -  scoped_ptr<base::Value> pinned_tabs_copy( | 
| -      prefs_->GetList(prefs::kPinnedTabs)->DeepCopy()); | 
| - | 
| -  // Reset version to 1, remove "pinned_tabs" and overwrite the signature. | 
| -  // Store the old signature (without "pinned_tabs"). | 
| -  prefs_->ClearPref("backup._version"); | 
| -  prefs_->ClearPref("backup.pinned_tabs"); | 
| -  ForceUpdateSignature(prefs_watcher_); | 
| -  EXPECT_TRUE(IsSignatureValid()); | 
| - | 
| -  // This will migrate backup to the latest version. | 
| -  RevalidateBackup(); | 
| - | 
| -  // Now the backup should be valid and "pinned_tabs" is added back. | 
| -  EXPECT_TRUE(prefs_watcher_->is_backup_valid()); | 
| -  EXPECT_TRUE(pinned_tabs_copy->Equals(prefs_->GetList("backup.pinned_tabs"))); | 
| -  EXPECT_TRUE(pinned_tabs_copy->Equals(prefs_->GetList(prefs::kPinnedTabs))); | 
| -  EXPECT_FALSE(prefs_watcher_->DidPrefChange(prefs::kPinnedTabs)); | 
| -  EXPECT_EQ(ProtectedPrefsWatcher::kCurrentVersionNumber, | 
| -            prefs_->GetInteger("backup._version")); | 
| -} | 
| - | 
| -// Verify that SessionStartupPref migration doesn't trigger Protector | 
| -// (version 3 migration). | 
| -TEST_F(ProtectedPrefsWatcherTest, MigrationToVersion3) { | 
| -  EXPECT_TRUE(prefs_watcher_->is_backup_valid()); | 
| - | 
| -  // Bring startup prefs to an old (pre-migration) version. | 
| -  prefs_->SetBoolean(prefs::kHomePageIsNewTabPage, false); | 
| -  prefs_->SetString(prefs::kHomePage, kNewHomePage); | 
| -  prefs_->ClearPref(prefs::kRestoreOnStartupMigrated); | 
| - | 
| -  // Reset version to 2 and overwrite the signature. | 
| -  prefs_->SetInteger("backup._version", 2); | 
| -  ForceUpdateSignature(prefs_watcher_); | 
| -  EXPECT_TRUE(IsSignatureValid()); | 
| - | 
| -  // Take down the old instance and create a new ProtectedPrefsWatcher from | 
| -  // current prefs. | 
| -  ProtectorServiceFactory::GetForProfile(&profile_)-> | 
| -      StopWatchingPrefsForTesting(); | 
| -  scoped_ptr<ProtectedPrefsWatcher> prefs_watcher2( | 
| -      new ProtectedPrefsWatcher(&profile_)); | 
| -  EXPECT_TRUE(prefs_watcher2->is_backup_valid()); | 
| - | 
| -  // Startup settings shouldn't be reported as changed. | 
| -  EXPECT_FALSE(prefs_watcher2->DidPrefChange(prefs::kRestoreOnStartup)); | 
| -  EXPECT_FALSE(prefs_watcher2->DidPrefChange(prefs::kURLsToRestoreOnStartup)); | 
| -  EXPECT_EQ(ProtectedPrefsWatcher::kCurrentVersionNumber, | 
| -            prefs_->GetInteger("backup._version")); | 
| -} | 
| - | 
| -// Verify that migration to version 4 removes backups with default values. | 
| -TEST_F(ProtectedPrefsWatcherTest, MigrationToVersion4) { | 
| -  EXPECT_TRUE(prefs_watcher_->is_backup_valid()); | 
| - | 
| -  prefs_->SetString(prefs::kHomePage, kNewHomePage); | 
| -  EXPECT_TRUE(prefs_->HasPrefPath("backup.homepage")); | 
| - | 
| -  // Reset version to 3 and overwrite the signature. | 
| -  prefs_->SetInteger("backup._version", 3); | 
| -  ForceUpdateSignature(prefs_watcher_); | 
| -  EXPECT_TRUE(IsSignatureValid()); | 
| - | 
| -  ProtectorServiceFactory::GetForProfile(&profile_)-> | 
| -      StopWatchingPrefsForTesting(); | 
| - | 
| -  // Restore |kHomePage| to default value. | 
| -  prefs_->ClearPref(prefs::kHomePage); | 
| - | 
| -  scoped_ptr<ProtectedPrefsWatcher> prefs_watcher2( | 
| -      new ProtectedPrefsWatcher(&profile_)); | 
| -  EXPECT_TRUE(prefs_watcher2->is_backup_valid()); | 
| - | 
| -  // Backup for |kHomePage| should now be restored to the default value, too. | 
| -  EXPECT_FALSE(prefs_->HasPrefPath("backup.homepage")); | 
| -  EXPECT_FALSE(prefs_watcher2->DidPrefChange(prefs::kHomePage)); | 
| -  EXPECT_EQ(ProtectedPrefsWatcher::kCurrentVersionNumber, | 
| -            prefs_->GetInteger("backup._version")); | 
| -} | 
| - | 
| -// Verify handling of default values of protected prefs. | 
| -TEST_F(ProtectedPrefsWatcherTest, DefaultValues) { | 
| -  EXPECT_TRUE(prefs_watcher_->is_backup_valid()); | 
| - | 
| -  EXPECT_FALSE(prefs_->HasPrefPath(prefs::kHomePage)); | 
| -  EXPECT_FALSE(prefs_watcher_->DidPrefChange(prefs::kHomePage)); | 
| -  prefs_->SetString(prefs::kHomePage, kNewHomePage); | 
| -  EXPECT_FALSE(prefs_watcher_->DidPrefChange(prefs::kHomePage)); | 
| - | 
| -  ProtectorServiceFactory::GetForProfile(&profile_)-> | 
| -      StopWatchingPrefsForTesting(); | 
| - | 
| -  // Restore |kHomePage| to default value. | 
| -  prefs_->ClearPref(prefs::kHomePage); | 
| - | 
| -  scoped_ptr<ProtectedPrefsWatcher> prefs_watcher2( | 
| -      new ProtectedPrefsWatcher(&profile_)); | 
| -  EXPECT_TRUE(prefs_watcher2->is_backup_valid()); | 
| -  EXPECT_TRUE(prefs_watcher2->DidPrefChange(prefs::kHomePage)); | 
| - | 
| -  prefs_->ClearPref("backup.homepage"); | 
| -  ForceUpdateSignature(prefs_watcher2.get()); | 
| - | 
| -  EXPECT_TRUE(prefs_watcher2->is_backup_valid()); | 
| -  EXPECT_FALSE(prefs_watcher2->DidPrefChange(prefs::kHomePage)); | 
| -} | 
| - | 
| -TEST_F(ProtectedPrefsWatcherTest, CheckPrefNames) { | 
| -  // If any of these preference names change, add corresponding migration code | 
| -  // to ProtectedPrefsWatcher. | 
| -  // DO NOT simply fix these literals! | 
| -  EXPECT_EQ("homepage", std::string(prefs::kHomePage)); | 
| -  EXPECT_EQ("homepage_is_newtabpage", | 
| -            std::string(prefs::kHomePageIsNewTabPage)); | 
| -  EXPECT_EQ("browser.show_home_button", std::string(prefs::kShowHomeButton)); | 
| -  EXPECT_EQ("session.restore_on_startup", | 
| -            std::string(prefs::kRestoreOnStartup)); | 
| -  EXPECT_EQ("session.urls_to_restore_on_startup", | 
| -            std::string(prefs::kURLsToRestoreOnStartup)); | 
| -  EXPECT_EQ("pinned_tabs", std::string(prefs::kPinnedTabs)); | 
| -} | 
| - | 
| -}  // namespace protector | 
|  |