Index: chrome/test/live_sync/preferences_helper.cc |
diff --git a/chrome/test/live_sync/preferences_helper.cc b/chrome/test/live_sync/preferences_helper.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4f5f779becd17ae10f105549f17fa6704327bccc |
--- /dev/null |
+++ b/chrome/test/live_sync/preferences_helper.cc |
@@ -0,0 +1,239 @@ |
+// Copyright (c) 2011 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 "chrome/test/live_sync/preferences_helper.h" |
+ |
+#include "base/values.h" |
+#include "chrome/browser/prefs/pref_service.h" |
+#include "chrome/browser/prefs/scoped_user_pref_update.h" |
+#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/sync/profile_sync_service_harness.h" |
+#include "chrome/test/live_sync/live_sync_test.h" |
+ |
+PreferencesHelper::PreferencesHelper() {} |
+ |
+PreferencesHelper::~PreferencesHelper() {} |
+ |
+// static |
+void PreferencesHelper::AssociateWithTest(LiveSyncTest* test) { |
+ ASSERT_TRUE(test != NULL) << "Cannot associate with null test."; |
+ ASSERT_TRUE(test_ == NULL) << "Already associated with a test."; |
+ test_ = test; |
+} |
+ |
+// static |
+LiveSyncTest* PreferencesHelper::test() { |
+ EXPECT_TRUE(test_ != NULL) << "Must call AssociateWithTest first."; |
+ return test_; |
+} |
+ |
+// static |
+PrefService* PreferencesHelper::GetPrefs(int index) { |
+ return test()->GetProfile(index)->GetPrefs(); |
+} |
+ |
+// static |
+PrefService* PreferencesHelper::GetVerifierPrefs() { |
+ return test()->verifier()->GetPrefs(); |
+} |
+ |
+// static |
+void PreferencesHelper::ChangeBooleanPref(int index, const char* pref_name) { |
+ bool new_value = !GetPrefs(index)->GetBoolean(pref_name); |
+ GetPrefs(index)->SetBoolean(pref_name, new_value); |
+ if (test()->use_verifier_prefs()) |
+ GetVerifierPrefs()->SetBoolean(pref_name, new_value); |
+} |
+ |
+// static |
+void PreferencesHelper::ChangeIntegerPref(int index, |
+ const char* pref_name, |
+ int new_value) { |
+ GetPrefs(index)->SetInteger(pref_name, new_value); |
+ if (test()->use_verifier_prefs()) |
+ GetVerifierPrefs()->SetInteger(pref_name, new_value); |
+} |
+ |
+// static |
+void PreferencesHelper::ChangeDoublePref(int index, |
+ const char* pref_name, |
+ double new_value) { |
+ GetPrefs(index)->SetDouble(pref_name, new_value); |
+ if (test()->use_verifier_prefs()) |
+ GetVerifierPrefs()->SetDouble(pref_name, new_value); |
+} |
+ |
+// static |
+void PreferencesHelper::ChangeStringPref(int index, |
+ const char* pref_name, |
+ const std::string& new_value) { |
+ GetPrefs(index)->SetString(pref_name, new_value); |
+ if (test()->use_verifier_prefs()) |
+ GetVerifierPrefs()->SetString(pref_name, new_value); |
+} |
+ |
+// static |
+void PreferencesHelper::AppendStringPref(int index, |
+ const char* pref_name, |
+ const std::string& append_value) { |
+ ChangeStringPref(index, |
+ pref_name, |
+ GetPrefs(index)->GetString(pref_name) + append_value); |
+} |
+ |
+// static |
+void PreferencesHelper::ChangeFilePathPref(int index, |
+ const char* pref_name, |
+ const FilePath& new_value) { |
+ GetPrefs(index)->SetFilePath(pref_name, new_value); |
+ if (test()->use_verifier_prefs()) |
+ GetVerifierPrefs()->SetFilePath(pref_name, new_value); |
+} |
+ |
+// static |
+void PreferencesHelper::ChangeListPref(int index, |
+ const char* pref_name, |
+ const ListValue& new_value) { |
+ { |
+ ListPrefUpdate update(GetPrefs(index), pref_name); |
+ ListValue* list = update.Get(); |
+ for (ListValue::const_iterator it = new_value.begin(); |
+ it != new_value.end(); |
+ ++it) { |
+ list->Append((*it)->DeepCopy()); |
+ } |
+ } |
+ |
+ if (test()->use_verifier_prefs()) { |
+ ListPrefUpdate update_verifier(GetVerifierPrefs(), pref_name); |
+ ListValue* list_verifier = update_verifier.Get(); |
+ for (ListValue::const_iterator it = new_value.begin(); |
+ it != new_value.end(); |
+ ++it) { |
+ list_verifier->Append((*it)->DeepCopy()); |
+ } |
+ } |
+} |
+ |
+// static |
+bool PreferencesHelper::BooleanPrefMatches(const char* pref_name) { |
+ bool reference_value; |
+ if (test()->use_verifier_prefs()) { |
+ reference_value = GetVerifierPrefs()->GetBoolean(pref_name); |
+ } else { |
+ reference_value = GetPrefs(0)->GetBoolean(pref_name); |
+ } |
+ for (int i = 0; i < test()->num_clients(); ++i) { |
+ if (reference_value != GetPrefs(i)->GetBoolean(pref_name)) { |
+ LOG(ERROR) << "Boolean preference " << pref_name << " mismatched in" |
+ << " profile " << i << "."; |
+ return false; |
+ } |
+ } |
+ return true; |
+} |
+ |
+// static |
+bool PreferencesHelper::IntegerPrefMatches(const char* pref_name) { |
+ int reference_value; |
+ if (test()->use_verifier_prefs()) { |
+ reference_value = GetVerifierPrefs()->GetInteger(pref_name); |
+ } else { |
+ reference_value = GetPrefs(0)->GetInteger(pref_name); |
+ } |
+ for (int i = 0; i < test()->num_clients(); ++i) { |
+ if (reference_value != GetPrefs(i)->GetInteger(pref_name)) { |
+ LOG(ERROR) << "Integer preference " << pref_name << " mismatched in" |
+ << " profile " << i << "."; |
+ return false; |
+ } |
+ } |
+ return true; |
+} |
+ |
+// static |
+bool PreferencesHelper::DoublePrefMatches(const char* pref_name) { |
+ double reference_value; |
+ if (test()->use_verifier_prefs()) { |
+ reference_value = GetVerifierPrefs()->GetDouble(pref_name); |
+ } else { |
+ reference_value = GetPrefs(0)->GetDouble(pref_name); |
+ } |
+ for (int i = 0; i < test()->num_clients(); ++i) { |
+ if (reference_value != GetPrefs(i)->GetDouble(pref_name)) { |
+ LOG(ERROR) << "Double preference " << pref_name << " mismatched in" |
+ << " profile " << i << "."; |
+ return false; |
+ } |
+ } |
+ return true; |
+} |
+ |
+// static |
+bool PreferencesHelper::StringPrefMatches(const char* pref_name) { |
+ std::string reference_value; |
+ if (test()->use_verifier_prefs()) { |
+ reference_value = GetVerifierPrefs()->GetString(pref_name); |
+ } else { |
+ reference_value = GetPrefs(0)->GetString(pref_name); |
+ } |
+ for (int i = 0; i < test()->num_clients(); ++i) { |
+ if (reference_value != GetPrefs(i)->GetString(pref_name)) { |
+ LOG(ERROR) << "String preference " << pref_name << " mismatched in" |
+ << " profile " << i << "."; |
+ return false; |
+ } |
+ } |
+ return true; |
+} |
+ |
+// static |
+bool PreferencesHelper::FilePathPrefMatches(const char* pref_name) { |
+ FilePath reference_value; |
+ if (test()->use_verifier_prefs()) { |
+ reference_value = GetVerifierPrefs()->GetFilePath(pref_name); |
+ } else { |
+ reference_value = GetPrefs(0)->GetFilePath(pref_name); |
+ } |
+ for (int i = 0; i < test()->num_clients(); ++i) { |
+ if (reference_value != GetPrefs(i)->GetFilePath(pref_name)) { |
+ LOG(ERROR) << "FilePath preference " << pref_name << " mismatched in" |
+ << " profile " << i << "."; |
+ return false; |
+ } |
+ } |
+ return true; |
+} |
+ |
+// static |
+bool PreferencesHelper::ListPrefMatches(const char* pref_name) { |
+ const ListValue* reference_value; |
+ if (test()->use_verifier_prefs()) { |
+ reference_value = GetVerifierPrefs()->GetList(pref_name); |
+ } else { |
+ reference_value = GetPrefs(0)->GetList(pref_name); |
+ } |
+ for (int i = 0; i < test()->num_clients(); ++i) { |
+ if (!reference_value->Equals(GetPrefs(i)->GetList(pref_name))) { |
+ LOG(ERROR) << "List preference " << pref_name << " mismatched in" |
+ << " profile " << i << "."; |
+ return false; |
+ } |
+ } |
+ return true; |
+} |
+ |
+// static |
+bool PreferencesHelper::EnableEncryption(int index) { |
+ return test()->GetClient(index)->EnableEncryptionForType( |
+ syncable::PREFERENCES); |
+} |
+ |
+// static |
+bool PreferencesHelper::IsEncrypted(int index) { |
+ return test()->GetClient(index)->IsTypeEncrypted(syncable::PREFERENCES); |
+} |
+ |
+// static |
+LiveSyncTest* PreferencesHelper::test_ = NULL; |