Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / sync / test / integration / preferences_helper.cc
blob283a7337eb48d0454a7c72d09593f43448f5ef8d
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.
5 #include "chrome/browser/sync/test/integration/preferences_helper.h"
7 #include "base/prefs/pref_service.h"
8 #include "base/prefs/scoped_user_pref_update.h"
9 #include "base/values.h"
10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h"
12 #include "chrome/browser/sync/test/integration/sync_datatype_helper.h"
13 #include "chrome/browser/sync/test/integration/sync_test.h"
15 using sync_datatype_helper::test;
17 namespace preferences_helper {
19 PrefService* GetPrefs(int index) {
20 return test()->GetProfile(index)->GetPrefs();
23 PrefService* GetVerifierPrefs() {
24 return test()->verifier()->GetPrefs();
27 void ChangeBooleanPref(int index, const char* pref_name) {
28 bool new_value = !GetPrefs(index)->GetBoolean(pref_name);
29 GetPrefs(index)->SetBoolean(pref_name, new_value);
30 if (test()->use_verifier())
31 GetVerifierPrefs()->SetBoolean(pref_name, new_value);
34 void ChangeIntegerPref(int index, const char* pref_name, int new_value) {
35 GetPrefs(index)->SetInteger(pref_name, new_value);
36 if (test()->use_verifier())
37 GetVerifierPrefs()->SetInteger(pref_name, new_value);
40 void ChangeInt64Pref(int index, const char* pref_name, int64 new_value) {
41 GetPrefs(index)->SetInt64(pref_name, new_value);
42 if (test()->use_verifier())
43 GetVerifierPrefs()->SetInt64(pref_name, new_value);
46 void ChangeDoublePref(int index, const char* pref_name, double new_value) {
47 GetPrefs(index)->SetDouble(pref_name, new_value);
48 if (test()->use_verifier())
49 GetVerifierPrefs()->SetDouble(pref_name, new_value);
52 void ChangeStringPref(int index,
53 const char* pref_name,
54 const std::string& new_value) {
55 GetPrefs(index)->SetString(pref_name, new_value);
56 if (test()->use_verifier())
57 GetVerifierPrefs()->SetString(pref_name, new_value);
60 void AppendStringPref(int index,
61 const char* pref_name,
62 const std::string& append_value) {
63 ChangeStringPref(index,
64 pref_name,
65 GetPrefs(index)->GetString(pref_name) + append_value);
68 void ChangeFilePathPref(int index,
69 const char* pref_name,
70 const base::FilePath& new_value) {
71 GetPrefs(index)->SetFilePath(pref_name, new_value);
72 if (test()->use_verifier())
73 GetVerifierPrefs()->SetFilePath(pref_name, new_value);
76 void ChangeListPref(int index,
77 const char* pref_name,
78 const base::ListValue& new_value) {
80 ListPrefUpdate update(GetPrefs(index), pref_name);
81 base::ListValue* list = update.Get();
82 for (base::ListValue::const_iterator it = new_value.begin();
83 it != new_value.end();
84 ++it) {
85 list->Append((*it)->DeepCopy());
89 if (test()->use_verifier()) {
90 ListPrefUpdate update_verifier(GetVerifierPrefs(), pref_name);
91 base::ListValue* list_verifier = update_verifier.Get();
92 for (base::ListValue::const_iterator it = new_value.begin();
93 it != new_value.end();
94 ++it) {
95 list_verifier->Append((*it)->DeepCopy());
100 bool BooleanPrefMatches(const char* pref_name) {
101 bool reference_value;
102 if (test()->use_verifier()) {
103 reference_value = GetVerifierPrefs()->GetBoolean(pref_name);
104 } else {
105 reference_value = GetPrefs(0)->GetBoolean(pref_name);
107 for (int i = 0; i < test()->num_clients(); ++i) {
108 if (reference_value != GetPrefs(i)->GetBoolean(pref_name)) {
109 LOG(ERROR) << "Boolean preference " << pref_name << " mismatched in"
110 << " profile " << i << ".";
111 return false;
114 return true;
117 bool IntegerPrefMatches(const char* pref_name) {
118 int reference_value;
119 if (test()->use_verifier()) {
120 reference_value = GetVerifierPrefs()->GetInteger(pref_name);
121 } else {
122 reference_value = GetPrefs(0)->GetInteger(pref_name);
124 for (int i = 0; i < test()->num_clients(); ++i) {
125 if (reference_value != GetPrefs(i)->GetInteger(pref_name)) {
126 LOG(ERROR) << "Integer preference " << pref_name << " mismatched in"
127 << " profile " << i << ".";
128 return false;
131 return true;
134 bool Int64PrefMatches(const char* pref_name) {
135 int64 reference_value;
136 if (test()->use_verifier()) {
137 reference_value = GetVerifierPrefs()->GetInt64(pref_name);
138 } else {
139 reference_value = GetPrefs(0)->GetInt64(pref_name);
141 for (int i = 0; i < test()->num_clients(); ++i) {
142 if (reference_value != GetPrefs(i)->GetInt64(pref_name)) {
143 LOG(ERROR) << "Integer preference " << pref_name << " mismatched in"
144 << " profile " << i << ".";
145 return false;
148 return true;
151 bool DoublePrefMatches(const char* pref_name) {
152 double reference_value;
153 if (test()->use_verifier()) {
154 reference_value = GetVerifierPrefs()->GetDouble(pref_name);
155 } else {
156 reference_value = GetPrefs(0)->GetDouble(pref_name);
158 for (int i = 0; i < test()->num_clients(); ++i) {
159 if (reference_value != GetPrefs(i)->GetDouble(pref_name)) {
160 LOG(ERROR) << "Double preference " << pref_name << " mismatched in"
161 << " profile " << i << ".";
162 return false;
165 return true;
168 bool StringPrefMatches(const char* pref_name) {
169 std::string reference_value;
170 if (test()->use_verifier()) {
171 reference_value = GetVerifierPrefs()->GetString(pref_name);
172 } else {
173 reference_value = GetPrefs(0)->GetString(pref_name);
175 for (int i = 0; i < test()->num_clients(); ++i) {
176 if (reference_value != GetPrefs(i)->GetString(pref_name)) {
177 LOG(ERROR) << "String preference " << pref_name << " mismatched in"
178 << " profile " << i << ".";
179 return false;
182 return true;
185 bool FilePathPrefMatches(const char* pref_name) {
186 base::FilePath reference_value;
187 if (test()->use_verifier()) {
188 reference_value = GetVerifierPrefs()->GetFilePath(pref_name);
189 } else {
190 reference_value = GetPrefs(0)->GetFilePath(pref_name);
192 for (int i = 0; i < test()->num_clients(); ++i) {
193 if (reference_value != GetPrefs(i)->GetFilePath(pref_name)) {
194 LOG(ERROR) << "base::FilePath preference " << pref_name
195 << " mismatched in" << " profile " << i << ".";
196 return false;
199 return true;
202 bool ListPrefMatches(const char* pref_name) {
203 const base::ListValue* reference_value;
204 if (test()->use_verifier()) {
205 reference_value = GetVerifierPrefs()->GetList(pref_name);
206 } else {
207 reference_value = GetPrefs(0)->GetList(pref_name);
209 for (int i = 0; i < test()->num_clients(); ++i) {
210 if (!reference_value->Equals(GetPrefs(i)->GetList(pref_name))) {
211 LOG(ERROR) << "List preference " << pref_name << " mismatched in"
212 << " profile " << i << ".";
213 return false;
216 return true;
219 } // namespace preferences_helper