| // 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 CHROMEOS_DBUS_FAKE_SESSION_MANAGER_CLIENT_H_ |
| #define CHROMEOS_DBUS_FAKE_SESSION_MANAGER_CLIENT_H_ |
| |
| #include <map> |
| #include <string> |
| |
| #include "base/basictypes.h" |
| #include "base/compiler_specific.h" |
| #include "base/observer_list.h" |
| #include "chromeos/dbus/session_manager_client.h" |
| |
| namespace chromeos { |
| |
| // A fake implementation of session_manager. Accepts policy blobs to be set and |
| // returns them unmodified. |
| class FakeSessionManagerClient : public SessionManagerClient { |
| public: |
| FakeSessionManagerClient(); |
| virtual ~FakeSessionManagerClient(); |
| |
| // SessionManagerClient overrides |
| virtual void Init(dbus::Bus* bus) OVERRIDE; |
| virtual void AddObserver(Observer* observer) OVERRIDE; |
| virtual void RemoveObserver(Observer* observer) OVERRIDE; |
| virtual bool HasObserver(Observer* observer) OVERRIDE; |
| virtual void EmitLoginPromptReady() OVERRIDE; |
| virtual void EmitLoginPromptVisible() OVERRIDE; |
| virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE; |
| virtual void StartSession(const std::string& user_email) OVERRIDE; |
| virtual void StopSession() OVERRIDE; |
| virtual void StartDeviceWipe() OVERRIDE; |
| virtual void RequestLockScreen() OVERRIDE; |
| virtual void NotifyLockScreenShown() OVERRIDE; |
| virtual void NotifyLockScreenDismissed() OVERRIDE; |
| virtual void RetrieveActiveSessions( |
| const ActiveSessionsCallback& callback) OVERRIDE; |
| virtual void RetrieveDevicePolicy( |
| const RetrievePolicyCallback& callback) OVERRIDE; |
| virtual void RetrievePolicyForUser( |
| const std::string& username, |
| const RetrievePolicyCallback& callback) OVERRIDE; |
| virtual std::string BlockingRetrievePolicyForUser( |
| const std::string& username) OVERRIDE; |
| virtual void RetrieveDeviceLocalAccountPolicy( |
| const std::string& account_id, |
| const RetrievePolicyCallback& callback) OVERRIDE; |
| virtual void StoreDevicePolicy(const std::string& policy_blob, |
| const StorePolicyCallback& callback) OVERRIDE; |
| virtual void StorePolicyForUser(const std::string& username, |
| const std::string& policy_blob, |
| const std::string& policy_key, |
| const StorePolicyCallback& callback) OVERRIDE; |
| virtual void StoreDeviceLocalAccountPolicy( |
| const std::string& account_id, |
| const std::string& policy_blob, |
| const StorePolicyCallback& callback) OVERRIDE; |
| virtual void SetFlagsForUser(const std::string& username, |
| const std::vector<std::string>& flags) OVERRIDE; |
| |
| const std::string& device_policy() const; |
| void set_device_policy(const std::string& policy_blob); |
| |
| const std::string& user_policy(const std::string& username) const; |
| void set_user_policy(const std::string& username, |
| const std::string& policy_blob); |
| |
| const std::string& device_local_account_policy( |
| const std::string& account_id) const; |
| void set_device_local_account_policy(const std::string& account_id, |
| const std::string& policy_blob); |
| |
| // Notify observers about a property change completion. |
| void OnPropertyChangeComplete(bool success); |
| |
| // Returns how many times EmitLoginPromptReady() is called. |
| int emit_login_prompt_ready_call_count() const { |
| return emit_login_prompt_ready_call_count_; |
| } |
| |
| int start_device_wipe_call_count() const { |
| return start_device_wipe_call_count_; |
| } |
| |
| // Returns how many times LockScreenShown() was called. |
| int notify_lock_screen_shown_call_count() const { |
| return notify_lock_screen_shown_call_count_; |
| } |
| |
| // Returns how many times LockScreenDismissed() was called. |
| int notify_lock_screen_dismissed_call_count() const { |
| return notify_lock_screen_dismissed_call_count_; |
| } |
| |
| private: |
| std::string device_policy_; |
| std::map<std::string, std::string> user_policies_; |
| std::map<std::string, std::string> device_local_account_policy_; |
| ObserverList<Observer> observers_; |
| SessionManagerClient::ActiveSessionsMap user_sessions_; |
| |
| int emit_login_prompt_ready_call_count_; |
| int start_device_wipe_call_count_; |
| int notify_lock_screen_shown_call_count_; |
| int notify_lock_screen_dismissed_call_count_; |
| |
| DISALLOW_COPY_AND_ASSIGN(FakeSessionManagerClient); |
| }; |
| |
| } // namespace chromeos |
| |
| #endif // CHROMEOS_DBUS_FAKE_SESSION_MANAGER_CLIENT_H_ |