preferences_helper.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/preferences_helper.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/prefs/pref_service.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/prefs/scoped_user_pref_update.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/sync/profile_sync_service_harness.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/sync_test.h" 137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/sync/test/integration/sync_datatype_helper.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using sync_datatype_helper::test; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace preferences_helper { 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PrefService* GetPrefs(int index) { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return test()->GetProfile(index)->GetPrefs(); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PrefService* GetVerifierPrefs() { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return test()->verifier()->GetPrefs(); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ChangeBooleanPref(int index, const char* pref_name) { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool new_value = !GetPrefs(index)->GetBoolean(pref_name); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetPrefs(index)->SetBoolean(pref_name, new_value); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (test()->use_verifier()) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetVerifierPrefs()->SetBoolean(pref_name, new_value); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ChangeIntegerPref(int index, const char* pref_name, int new_value) { 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetPrefs(index)->SetInteger(pref_name, new_value); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (test()->use_verifier()) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetVerifierPrefs()->SetInteger(pref_name, new_value); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ChangeInt64Pref(int index, const char* pref_name, int64 new_value) { 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) GetPrefs(index)->SetInt64(pref_name, new_value); 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (test()->use_verifier()) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetVerifierPrefs()->SetInt64(pref_name, new_value); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 46558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochvoid ChangeDoublePref(int index, const char* pref_name, double new_value) { 4768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) GetPrefs(index)->SetDouble(pref_name, new_value); 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (test()->use_verifier()) 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) GetVerifierPrefs()->SetDouble(pref_name, new_value); 500f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)} 5168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ChangeStringPref(int index, 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* pref_name, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& new_value) { 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetPrefs(index)->SetString(pref_name, new_value); 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (test()->use_verifier()) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetVerifierPrefs()->SetString(pref_name, new_value); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void AppendStringPref(int index, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* pref_name, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& append_value) { 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ChangeStringPref(index, 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pref_name, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetPrefs(index)->GetString(pref_name) + append_value); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ChangeFilePathPref(int index, 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* pref_name, 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FilePath& new_value) { 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetPrefs(index)->SetFilePath(pref_name, new_value); 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (test()->use_verifier()) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetVerifierPrefs()->SetFilePath(pref_name, new_value); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ChangeListPref(int index, 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* pref_name, 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ListValue& new_value) { 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ListPrefUpdate update(GetPrefs(index), pref_name); 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ListValue* list = update.Get(); 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (ListValue::const_iterator it = new_value.begin(); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) it != new_value.end(); 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ++it) { 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list->Append((*it)->DeepCopy()); 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (test()->use_verifier()) { 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ListPrefUpdate update_verifier(GetVerifierPrefs(), pref_name); 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ListValue* list_verifier = update_verifier.Get(); 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (ListValue::const_iterator it = new_value.begin(); 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) it != new_value.end(); 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ++it) { 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list_verifier->Append((*it)->DeepCopy()); 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool BooleanPrefMatches(const char* pref_name) { 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool reference_value; 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (test()->use_verifier()) { 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reference_value = GetVerifierPrefs()->GetBoolean(pref_name); 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } else { 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reference_value = GetPrefs(0)->GetBoolean(pref_name); 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (int i = 0; i < test()->num_clients(); ++i) { 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (reference_value != GetPrefs(i)->GetBoolean(pref_name)) { 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LOG(ERROR) << "Boolean preference " << pref_name << " mismatched in" 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) << " profile " << i << "."; 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return false; 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool IntegerPrefMatches(const char* pref_name) { 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int reference_value; 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (test()->use_verifier()) { 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reference_value = GetVerifierPrefs()->GetInteger(pref_name); 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } else { 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reference_value = GetPrefs(0)->GetInteger(pref_name); 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (int i = 0; i < test()->num_clients(); ++i) { 1257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (reference_value != GetPrefs(i)->GetInteger(pref_name)) { 126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) LOG(ERROR) << "Integer preference " << pref_name << " mismatched in" 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) << " profile " << i << "."; 128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 132c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 134c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool Int64PrefMatches(const char* pref_name) { 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int64 reference_value; 136c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (test()->use_verifier()) { 1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) reference_value = GetVerifierPrefs()->GetInt64(pref_name); 138c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } else { 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) reference_value = GetPrefs(0)->GetInt64(pref_name); 140c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (int i = 0; i < test()->num_clients(); ++i) { 142c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (reference_value != GetPrefs(i)->GetInt64(pref_name)) { 1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LOG(ERROR) << "Integer preference " << pref_name << " mismatched in" 144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) << " profile " << i << "."; 1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 148c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return true; 1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool DoublePrefMatches(const char* pref_name) { 152c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) double reference_value; 1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (test()->use_verifier()) { 154c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) reference_value = GetVerifierPrefs()->GetDouble(pref_name); 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } else { 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reference_value = GetPrefs(0)->GetDouble(pref_name); 157c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 158c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) for (int i = 0; i < test()->num_clients(); ++i) { 159c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (reference_value != GetPrefs(i)->GetDouble(pref_name)) { 160c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) LOG(ERROR) << "Double preference " << pref_name << " mismatched in" 161c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) << " profile " << i << "."; 162c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 163c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 165c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return true; 166c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 167c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 168c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool StringPrefMatches(const char* pref_name) { 169c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::string reference_value; 170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (test()->use_verifier()) { 171c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) reference_value = GetVerifierPrefs()->GetString(pref_name); 172c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } else { 173c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) reference_value = GetPrefs(0)->GetString(pref_name); 174c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 175c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) for (int i = 0; i < test()->num_clients(); ++i) { 176c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (reference_value != GetPrefs(i)->GetString(pref_name)) { 177c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) LOG(ERROR) << "String preference " << pref_name << " mismatched in" 178c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) << " profile " << i << "."; 179c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 180c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 181c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 182c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return true; 183c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 184c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 185c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FilePathPrefMatches(const char* pref_name) { 186c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FilePath reference_value; 187c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (test()->use_verifier()) { 188c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) reference_value = GetVerifierPrefs()->GetFilePath(pref_name); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } else { 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reference_value = GetPrefs(0)->GetFilePath(pref_name); 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (int i = 0; i < test()->num_clients(); ++i) { 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (reference_value != GetPrefs(i)->GetFilePath(pref_name)) { 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LOG(ERROR) << "FilePath preference " << pref_name << " mismatched in" 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) << " profile " << i << "."; 1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool ListPrefMatches(const char* pref_name) { 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const ListValue* reference_value; 2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (test()->use_verifier()) { 2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) reference_value = GetVerifierPrefs()->GetList(pref_name); 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) reference_value = GetPrefs(0)->GetList(pref_name); 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (int i = 0; i < test()->num_clients(); ++i) { 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!reference_value->Equals(GetPrefs(i)->GetList(pref_name))) { 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LOG(ERROR) << "List preference " << pref_name << " mismatched in" 2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) << " profile " << i << "."; 2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 2152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace preferences_helper 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)