diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-10-07 16:54:29 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-10-07 16:54:29 +0000 |
commit | e8dc1d97cd08ef197dcded3ab6085113817f7f2a (patch) | |
tree | 0f4d08540c8e5fa16bcd0c99cd413fe815560e4b /components/policy/core/common/fake_async_policy_loader.h | |
parent | b4233fd961752b80d42ae68e8b42acfb3e99be57 (diff) | |
parent | 0d51dc717edd4d97116b47bc156e83b8fa193d3d (diff) | |
download | libchrome-e8dc1d97cd08ef197dcded3ab6085113817f7f2a.tar.gz |
Snap for 7803083 from 0d51dc717edd4d97116b47bc156e83b8fa193d3d to mainline-tzdata2-release
Change-Id: I3b7204a704e7e1d0caac8bc7ea40e3b86def3032
Diffstat (limited to 'components/policy/core/common/fake_async_policy_loader.h')
-rw-r--r-- | components/policy/core/common/fake_async_policy_loader.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/components/policy/core/common/fake_async_policy_loader.h b/components/policy/core/common/fake_async_policy_loader.h new file mode 100644 index 0000000000..e1583741fe --- /dev/null +++ b/components/policy/core/common/fake_async_policy_loader.h @@ -0,0 +1,54 @@ +// Copyright 2015 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_FAKE_ASYNC_POLICY_LOADER_H_ +#define COMPONENTS_POLICY_CORE_COMMON_FAKE_ASYNC_POLICY_LOADER_H_ + +#include <memory> + +#include "base/macros.h" +#include "base/memory/ref_counted.h" +#include "components/policy/core/common/async_policy_loader.h" +#include "components/policy/core/common/policy_bundle.h" + +namespace base { +class SequencedTaskRunner; +} // namespace base + +namespace policy { + +// Fake AsyncPolicyLoader for testing with test-controlled policies. +// +// Typical test code would populate the policy contents via calls to +// ClearPolicies and AddPolicies and then notify the rest of the policy +// subsystem of the changes by calling PostReloadOnBackgroundThread. +class FakeAsyncPolicyLoader : public AsyncPolicyLoader { + public: + explicit FakeAsyncPolicyLoader( + const scoped_refptr<base::SequencedTaskRunner>& task_runner); + + // Implementation of virtual methods from AsyncPolicyLoader base class. + std::unique_ptr<PolicyBundle> Load() override; + void InitOnBackgroundThread() override; + + // Provides content for the simulated / faked policies. + void SetPolicies(const PolicyBundle& policy_bundle); + + // Notifies the rest of the policy subsystem that policy contents have + // changed. This simulates / fakes a notification that normally would be + // triggered by a FilePathWatcher or (registry)ObjectWatcher in a real loader. + // + // See AsyncPolicyLoader::Reload method for description of the |force| + // parameter. + void PostReloadOnBackgroundThread(bool force); + + private: + PolicyBundle policy_bundle_; + + DISALLOW_COPY_AND_ASSIGN(FakeAsyncPolicyLoader); +}; + +} // namespace policy + +#endif // COMPONENTS_POLICY_CORE_COMMON_FAKE_ASYNC_POLICY_LOADER_H_ |