1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 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)
5a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "components/policy/core/common/preferences_mock_mac.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockPreferences::MockPreferences() {
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  values_.reset(CFDictionaryCreateMutable(kCFAllocatorDefault,
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          0,
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          &kCFTypeDictionaryKeyCallBacks,
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          &kCFTypeDictionaryValueCallBacks));
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  forced_.reset(CFSetCreateMutable(kCFAllocatorDefault,
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   0,
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   &kCFTypeSetCallBacks));
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockPreferences::~MockPreferences() {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Boolean MockPreferences::AppSynchronize(CFStringRef applicationID) {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)CFPropertyListRef MockPreferences::CopyAppValue(CFStringRef key,
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                CFStringRef applicationID) {
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CFPropertyListRef value;
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Boolean found = CFDictionaryGetValueIfPresent(values_,
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                key,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                &value);
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!found || !value)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return NULL;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CFRetain(value);
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return value;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Boolean MockPreferences::AppValueIsForced(CFStringRef key,
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          CFStringRef applicationID) {
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return CFSetContainsValue(forced_, key);
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockPreferences::AddTestItem(CFStringRef key,
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  CFPropertyListRef value,
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  bool is_forced) {
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CFDictionarySetValue(values_, key, value);
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (is_forced)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    CFSetAddValue(forced_, key);
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
48