Commit 2a7266e6 authored by Mattias Nissler's avatar Mattias Nissler Committed by Commit Bot

Generate callbacks for StubCrosSettingsProvider::PrepareTrustedValues

The contract of the function requires the CrosSettingsProvider
implementation to call back PrepareTrusteValues() consumers when in
TEMPORARILY_UNTRUSTED state. StubCrosSettingsProvider now implements
this behavior so tests observe more accurate behavior.

BUG=chromium:780817
TEST=None

Change-Id: I31542123f78d901e93a30256c81e1ba8f71d8fe0
Reviewed-on: https://chromium-review.googlesource.com/840011
Commit-Queue: Mattias Nissler <mnissler@chromium.org>
Reviewed-by: default avatarJulian Pastarmov <pastarmovj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536782}
parent 515f341a
...@@ -38,6 +38,8 @@ const base::Value* StubCrosSettingsProvider::Get( ...@@ -38,6 +38,8 @@ const base::Value* StubCrosSettingsProvider::Get(
CrosSettingsProvider::TrustedStatus CrosSettingsProvider::TrustedStatus
StubCrosSettingsProvider::PrepareTrustedValues(const base::Closure& cb) { StubCrosSettingsProvider::PrepareTrustedValues(const base::Closure& cb) {
if (trusted_status_ == TEMPORARILY_UNTRUSTED)
callbacks_.push_back(cb);
return trusted_status_; return trusted_status_;
} }
...@@ -47,6 +49,11 @@ bool StubCrosSettingsProvider::HandlesSetting(const std::string& path) const { ...@@ -47,6 +49,11 @@ bool StubCrosSettingsProvider::HandlesSetting(const std::string& path) const {
void StubCrosSettingsProvider::SetTrustedStatus(TrustedStatus status) { void StubCrosSettingsProvider::SetTrustedStatus(TrustedStatus status) {
trusted_status_ = status; trusted_status_ = status;
if (trusted_status_ != TEMPORARILY_UNTRUSTED) {
std::vector<base::Closure> callbacks_to_invoke = std::move(callbacks_);
for (base::Closure cb : callbacks_to_invoke)
cb.Run();
}
} }
void StubCrosSettingsProvider::SetCurrentUserIsOwner(bool owner) { void StubCrosSettingsProvider::SetCurrentUserIsOwner(bool owner) {
......
...@@ -6,7 +6,9 @@ ...@@ -6,7 +6,9 @@
#define CHROME_BROWSER_CHROMEOS_SETTINGS_STUB_CROS_SETTINGS_PROVIDER_H_ #define CHROME_BROWSER_CHROMEOS_SETTINGS_STUB_CROS_SETTINGS_PROVIDER_H_
#include <string> #include <string>
#include <vector>
#include "base/callback.h"
#include "base/macros.h" #include "base/macros.h"
#include "chromeos/settings/cros_settings_provider.h" #include "chromeos/settings/cros_settings_provider.h"
#include "components/prefs/pref_value_map.h" #include "components/prefs/pref_value_map.h"
...@@ -46,6 +48,9 @@ class StubCrosSettingsProvider : public CrosSettingsProvider { ...@@ -46,6 +48,9 @@ class StubCrosSettingsProvider : public CrosSettingsProvider {
TrustedStatus trusted_status_ = CrosSettingsProvider::TRUSTED; TrustedStatus trusted_status_ = CrosSettingsProvider::TRUSTED;
// Pending callbacks to invoke when switching away from TEMPORARILY_UNTRUSTED.
std::vector<base::Closure> callbacks_;
DISALLOW_COPY_AND_ASSIGN(StubCrosSettingsProvider); DISALLOW_COPY_AND_ASSIGN(StubCrosSettingsProvider);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment