diff options
author | dconnelly@chromium.org <dconnelly@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-05 13:13:46 +0000 |
---|---|---|
committer | dconnelly@chromium.org <dconnelly@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-05 13:13:46 +0000 |
commit | 4a9ab5173f4c1ea61f695ddcf59f05b9e4ab6c20 (patch) | |
tree | 7d182b01248dee53bb8b4104dfe37c1b0933c583 /components/policy/core/common | |
parent | dde3e9cb5128757e35ba5b9fa71cdf2abe01041d (diff) | |
download | chromium_src-4a9ab5173f4c1ea61f695ddcf59f05b9e4ab6c20.zip chromium_src-4a9ab5173f4c1ea61f695ddcf59f05b9e4ab6c20.tar.gz chromium_src-4a9ab5173f4c1ea61f695ddcf59f05b9e4ab6c20.tar.bz2 |
Move PreferencesMac to components/policy/.
This is a re-land of https://codereview.chromium.org/78603003/
BUG=271392
R=joaodasilva,jochen
Review URL: https://codereview.chromium.org/104373002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238960 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/policy/core/common')
-rw-r--r-- | components/policy/core/common/preferences_mac.cc | 19 | ||||
-rw-r--r-- | components/policy/core/common/preferences_mac.h | 35 | ||||
-rw-r--r-- | components/policy/core/common/preferences_mock_mac.cc | 47 | ||||
-rw-r--r-- | components/policy/core/common/preferences_mock_mac.h | 34 |
4 files changed, 135 insertions, 0 deletions
diff --git a/components/policy/core/common/preferences_mac.cc b/components/policy/core/common/preferences_mac.cc new file mode 100644 index 0000000..e65b162 --- /dev/null +++ b/components/policy/core/common/preferences_mac.cc @@ -0,0 +1,19 @@ +// Copyright 2013 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 "components/policy/core/common/preferences_mac.h" + +Boolean MacPreferences::AppSynchronize(CFStringRef applicationID) { + return CFPreferencesAppSynchronize(applicationID); +} + +CFPropertyListRef MacPreferences::CopyAppValue(CFStringRef key, + CFStringRef applicationID) { + return CFPreferencesCopyAppValue(key, applicationID); +} + +Boolean MacPreferences::AppValueIsForced(CFStringRef key, + CFStringRef applicationID) { + return CFPreferencesAppValueIsForced(key, applicationID); +} diff --git a/components/policy/core/common/preferences_mac.h b/components/policy/core/common/preferences_mac.h new file mode 100644 index 0000000..5bb14c0 --- /dev/null +++ b/components/policy/core/common/preferences_mac.h @@ -0,0 +1,35 @@ +// Copyright 2013 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. + +#ifndef COMPONENTS_POLICY_CORE_COMMON_PREFERENCES_MAC_H_ +#define COMPONENTS_POLICY_CORE_COMMON_PREFERENCES_MAC_H_ + +#include <CoreFoundation/CoreFoundation.h> + +#include "base/basictypes.h" +#include "components/policy/policy_export.h" + +// Wraps a small part of the CFPreferences API surface in a very thin layer, to +// allow it to be mocked out for testing. + +// See CFPreferences documentation for function documentation, as these call +// through directly to their CFPreferences equivalents (Foo -> +// CFPreferencesFoo). +class POLICY_EXPORT MacPreferences { + public: + MacPreferences() {} + virtual ~MacPreferences() {} + + virtual Boolean AppSynchronize(CFStringRef applicationID); + + virtual CFPropertyListRef CopyAppValue(CFStringRef key, + CFStringRef applicationID); + + virtual Boolean AppValueIsForced(CFStringRef key, CFStringRef applicationID); + + private: + DISALLOW_COPY_AND_ASSIGN(MacPreferences); +}; + +#endif // COMPONENTS_POLICY_CORE_COMMON_PREFERENCES_MAC_H_ diff --git a/components/policy/core/common/preferences_mock_mac.cc b/components/policy/core/common/preferences_mock_mac.cc new file mode 100644 index 0000000..bc51c9a --- /dev/null +++ b/components/policy/core/common/preferences_mock_mac.cc @@ -0,0 +1,47 @@ +// Copyright 2013 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 "components/policy/core/common/preferences_mock_mac.h" + +MockPreferences::MockPreferences() { + values_.reset(CFDictionaryCreateMutable(kCFAllocatorDefault, + 0, + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks)); + forced_.reset(CFSetCreateMutable(kCFAllocatorDefault, + 0, + &kCFTypeSetCallBacks)); +} + +MockPreferences::~MockPreferences() { +} + +Boolean MockPreferences::AppSynchronize(CFStringRef applicationID) { + return true; +} + +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); +} diff --git a/components/policy/core/common/preferences_mock_mac.h b/components/policy/core/common/preferences_mock_mac.h new file mode 100644 index 0000000..f28f8fe --- /dev/null +++ b/components/policy/core/common/preferences_mock_mac.h @@ -0,0 +1,34 @@ +// Copyright 2013 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. + +#ifndef COMPONENTS_POLICY_CORE_COMMON_PREFERENCES_MOCK_MAC_H_ +#define COMPONENTS_POLICY_CORE_COMMON_PREFERENCES_MOCK_MAC_H_ + +#include "base/mac/scoped_cftyperef.h" +#include "components/policy/core/common/preferences_mac.h" +#include "components/policy/policy_export.h" + +// Mock preferences wrapper for testing code that interacts with CFPreferences. +class POLICY_EXPORT MockPreferences : public MacPreferences { + public: + MockPreferences(); + virtual ~MockPreferences(); + + virtual Boolean AppSynchronize(CFStringRef applicationID) OVERRIDE; + + virtual CFPropertyListRef CopyAppValue(CFStringRef key, + CFStringRef applicationID) OVERRIDE; + + virtual Boolean AppValueIsForced(CFStringRef key, + CFStringRef applicationID) OVERRIDE; + + // Adds a preference item with the given info to the test set. + void AddTestItem(CFStringRef key, CFPropertyListRef value, bool is_forced); + + private: + base::ScopedCFTypeRef<CFMutableDictionaryRef> values_; + base::ScopedCFTypeRef<CFMutableSetRef> forced_; +}; + +#endif // COMPONENTS_POLICY_CORE_COMMON_PREFERENCES_MOCK_MAC_H_ |