Chromium Code Reviews| Index: base/test/test_reg_util_win.h |
| =================================================================== |
| --- base/test/test_reg_util_win.h (revision 0) |
| +++ base/test/test_reg_util_win.h (revision 0) |
| @@ -0,0 +1,64 @@ |
| +// Copyright (c) 2011 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 BASE_TEST_TEST_REG_UTIL_H_ |
| +#define BASE_TEST_TEST_REG_UTIL_H_ |
| +#pragma once |
| + |
| +// Registry utility functions used only by tests. |
| + |
| +#include <string> |
| +#include <vector> |
| + |
| +#include "base/basictypes.h" |
| +#include "base/win/registry.h" |
| + |
| +namespace registry_util { |
| + |
| +// Allows a test to easily override registry hives so that it can start from a |
| +// known good state, or make sure to not leave any side effects once the test |
| +// completes. |
| +class RegistryOverrideManager { |
| + // Keeps track of one override. |
|
Paweł Hajdan Jr.
2011/08/23 18:19:05
nit: How about just moving this down to the privat
Roger Tawa OOO till Jul 10th
2011/08/23 18:33:48
Done.
|
| + class ScopedRegistryKeyOverride { |
| + public: |
| + ScopedRegistryKeyOverride(HKEY override, const std::wstring& temp_name); |
| + ~ScopedRegistryKeyOverride(); |
| + |
| + private: |
| + HKEY override_; |
| + base::win::RegKey temp_key_; |
| + std::wstring temp_name_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(ScopedRegistryKeyOverride); |
| + }; |
| + |
| + public: |
| + // All overridden hives will be descendents of this registry path under the |
| + // main HKCU hive. |
| + static const wchar_t kTempTestKeyPath[]; |
| + |
| + RegistryOverrideManager(); |
| + ~RegistryOverrideManager(); |
| + |
| + // Override the given registry hive using a temporary key named by temp_name |
| + // under the temporary test key path. |
| + void OverrideRegistry(HKEY override, const std::wstring& temp_name); |
| + |
| + // Deletes all temporary test keys used by the overrides. |
| + static void DeleteAllTempKeys(); |
| + |
| + // Removes all overrides and deletes all temporary test keys used by the |
| + // overrides. |
| + void RemoveAllOverrides(); |
| + |
| + private: |
| + std::vector<ScopedRegistryKeyOverride*> overrides_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(RegistryOverrideManager); |
| +}; |
| + |
| +} // namespace registry_util |
| + |
| +#endif // BASE_TEST_TEST_REG_UTIL_H_ |
| Property changes on: base\test\test_reg_util_win.h |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |