1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chromeos/dbus/fake_session_manager_client.h"
6
7 #include "base/bind.h"
8 #include "base/location.h"
9 #include "base/message_loop/message_loop.h"
10 #include "base/strings/string_util.h"
11 #include "chromeos/dbus/cryptohome_client.h"
12
13 namespace chromeos {
14
FakeSessionManagerClient()15 FakeSessionManagerClient::FakeSessionManagerClient()
16 : start_device_wipe_call_count_(0),
17 notify_lock_screen_shown_call_count_(0),
18 notify_lock_screen_dismissed_call_count_(0) {
19 }
20
~FakeSessionManagerClient()21 FakeSessionManagerClient::~FakeSessionManagerClient() {
22 }
23
Init(dbus::Bus * bus)24 void FakeSessionManagerClient::Init(dbus::Bus* bus) {
25 }
26
SetStubDelegate(StubDelegate * delegate)27 void FakeSessionManagerClient::SetStubDelegate(StubDelegate* delegate) {
28 }
29
AddObserver(Observer * observer)30 void FakeSessionManagerClient::AddObserver(Observer* observer) {
31 observers_.AddObserver(observer);
32 }
33
RemoveObserver(Observer * observer)34 void FakeSessionManagerClient::RemoveObserver(Observer* observer) {
35 observers_.RemoveObserver(observer);
36 }
37
HasObserver(Observer * observer)38 bool FakeSessionManagerClient::HasObserver(Observer* observer) {
39 return observers_.HasObserver(observer);
40 }
41
EmitLoginPromptVisible()42 void FakeSessionManagerClient::EmitLoginPromptVisible() {
43 }
44
RestartJob(int pid,const std::string & command_line)45 void FakeSessionManagerClient::RestartJob(int pid,
46 const std::string& command_line) {
47 }
48
StartSession(const std::string & user_email)49 void FakeSessionManagerClient::StartSession(const std::string& user_email) {
50 DCHECK_EQ(0UL, user_sessions_.count(user_email));
51 std::string user_id_hash =
52 CryptohomeClient::GetStubSanitizedUsername(user_email);
53 user_sessions_[user_email] = user_id_hash;
54 }
55
StopSession()56 void FakeSessionManagerClient::StopSession() {
57 }
58
StartDeviceWipe()59 void FakeSessionManagerClient::StartDeviceWipe() {
60 start_device_wipe_call_count_++;
61 }
62
RequestLockScreen()63 void FakeSessionManagerClient::RequestLockScreen() {
64 }
65
NotifyLockScreenShown()66 void FakeSessionManagerClient::NotifyLockScreenShown() {
67 notify_lock_screen_shown_call_count_++;
68 }
69
NotifyLockScreenDismissed()70 void FakeSessionManagerClient::NotifyLockScreenDismissed() {
71 notify_lock_screen_dismissed_call_count_++;
72 }
73
RetrieveActiveSessions(const ActiveSessionsCallback & callback)74 void FakeSessionManagerClient::RetrieveActiveSessions(
75 const ActiveSessionsCallback& callback) {
76 base::MessageLoop::current()->PostTask(
77 FROM_HERE, base::Bind(callback, user_sessions_, true));
78 }
79
RetrieveDevicePolicy(const RetrievePolicyCallback & callback)80 void FakeSessionManagerClient::RetrieveDevicePolicy(
81 const RetrievePolicyCallback& callback) {
82 base::MessageLoop::current()->PostTask(FROM_HERE,
83 base::Bind(callback, device_policy_));
84 }
85
RetrievePolicyForUser(const std::string & username,const RetrievePolicyCallback & callback)86 void FakeSessionManagerClient::RetrievePolicyForUser(
87 const std::string& username,
88 const RetrievePolicyCallback& callback) {
89 base::MessageLoop::current()->PostTask(
90 FROM_HERE, base::Bind(callback, user_policies_[username]));
91 }
92
BlockingRetrievePolicyForUser(const std::string & username)93 std::string FakeSessionManagerClient::BlockingRetrievePolicyForUser(
94 const std::string& username) {
95 return user_policies_[username];
96 }
97
RetrieveDeviceLocalAccountPolicy(const std::string & account_id,const RetrievePolicyCallback & callback)98 void FakeSessionManagerClient::RetrieveDeviceLocalAccountPolicy(
99 const std::string& account_id,
100 const RetrievePolicyCallback& callback) {
101 base::MessageLoop::current()->PostTask(
102 FROM_HERE,
103 base::Bind(callback, device_local_account_policy_[account_id]));
104 }
105
StoreDevicePolicy(const std::string & policy_blob,const StorePolicyCallback & callback)106 void FakeSessionManagerClient::StoreDevicePolicy(
107 const std::string& policy_blob,
108 const StorePolicyCallback& callback) {
109 device_policy_ = policy_blob;
110 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(callback, true));
111 FOR_EACH_OBSERVER(Observer, observers_, PropertyChangeComplete(true));
112 }
113
StorePolicyForUser(const std::string & username,const std::string & policy_blob,const StorePolicyCallback & callback)114 void FakeSessionManagerClient::StorePolicyForUser(
115 const std::string& username,
116 const std::string& policy_blob,
117 const StorePolicyCallback& callback) {
118 user_policies_[username] = policy_blob;
119 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(callback, true));
120 }
121
StoreDeviceLocalAccountPolicy(const std::string & account_id,const std::string & policy_blob,const StorePolicyCallback & callback)122 void FakeSessionManagerClient::StoreDeviceLocalAccountPolicy(
123 const std::string& account_id,
124 const std::string& policy_blob,
125 const StorePolicyCallback& callback) {
126 device_local_account_policy_[account_id] = policy_blob;
127 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(callback, true));
128 }
129
SetFlagsForUser(const std::string & username,const std::vector<std::string> & flags)130 void FakeSessionManagerClient::SetFlagsForUser(
131 const std::string& username,
132 const std::vector<std::string>& flags) {
133 }
134
GetServerBackedStateKeys(const StateKeysCallback & callback)135 void FakeSessionManagerClient::GetServerBackedStateKeys(
136 const StateKeysCallback& callback) {
137 base::MessageLoop::current()->PostTask(
138 FROM_HERE, base::Bind(callback, server_backed_state_keys_));
139 }
140
device_policy() const141 const std::string& FakeSessionManagerClient::device_policy() const {
142 return device_policy_;
143 }
144
set_device_policy(const std::string & policy_blob)145 void FakeSessionManagerClient::set_device_policy(
146 const std::string& policy_blob) {
147 device_policy_ = policy_blob;
148 }
149
user_policy(const std::string & username) const150 const std::string& FakeSessionManagerClient::user_policy(
151 const std::string& username) const {
152 std::map<std::string, std::string>::const_iterator it =
153 user_policies_.find(username);
154 return it == user_policies_.end() ? base::EmptyString() : it->second;
155 }
156
set_user_policy(const std::string & username,const std::string & policy_blob)157 void FakeSessionManagerClient::set_user_policy(const std::string& username,
158 const std::string& policy_blob) {
159 user_policies_[username] = policy_blob;
160 }
161
device_local_account_policy(const std::string & account_id) const162 const std::string& FakeSessionManagerClient::device_local_account_policy(
163 const std::string& account_id) const {
164 std::map<std::string, std::string>::const_iterator entry =
165 device_local_account_policy_.find(account_id);
166 return entry != device_local_account_policy_.end() ? entry->second
167 : base::EmptyString();
168 }
169
set_device_local_account_policy(const std::string & account_id,const std::string & policy_blob)170 void FakeSessionManagerClient::set_device_local_account_policy(
171 const std::string& account_id,
172 const std::string& policy_blob) {
173 device_local_account_policy_[account_id] = policy_blob;
174 }
175
OnPropertyChangeComplete(bool success)176 void FakeSessionManagerClient::OnPropertyChangeComplete(bool success) {
177 FOR_EACH_OBSERVER(Observer, observers_, PropertyChangeComplete(success));
178 }
179
180 } // namespace chromeos
181