summaryrefslogtreecommitdiffstats
path: root/chrome/browser/preferences_mock_mac.cc
blob: 6d0f0a07729d7c8808551062ac63a1a5e14894ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Copyright (c) 2010 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/browser/preferences_mock_mac.h"

MockPreferences::MockPreferences() {
  values_.reset(CFDictionaryCreateMutable(kCFAllocatorDefault,
                                          0,
                                          &kCFTypeDictionaryKeyCallBacks,
                                          &kCFTypeDictionaryValueCallBacks));
  forced_.reset(CFSetCreateMutable(kCFAllocatorDefault,
                                   0,
                                   &kCFTypeSetCallBacks));
}

MockPreferences::~MockPreferences() {
}


CFPropertyListRef MockPreferences::CopyAppValue(CFStringRef key,
                                                CFStringRef applicationID) {
  CFPropertyListRef value;
  Boolean found = CFDictionaryGetValueIfPresent(values_,
                                                key,
                                                &value);
  if (!found || !value)
    return NULL;
  CFRetain(value);
  return value;
}

Boolean MockPreferences::AppValueIsForced(CFStringRef key,
                                          CFStringRef applicationID) {
  return CFSetContainsValue(forced_, key);
}

void MockPreferences::AddTestItem(CFStringRef key,
                                  CFPropertyListRef value,
                                  bool is_forced) {
  CFDictionarySetValue(values_, key, value);
  if (is_forced)
    CFSetAddValue(forced_, key);
}