2f4bb9a0955fb0225520c74b25aa85a10c64113e
[platform/framework/web/crosswalk.git] / src / chromeos / dbus / fake_session_manager_client.h
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 #ifndef CHROMEOS_DBUS_FAKE_SESSION_MANAGER_CLIENT_H_
6 #define CHROMEOS_DBUS_FAKE_SESSION_MANAGER_CLIENT_H_
7
8 #include <map>
9 #include <string>
10 #include <vector>
11
12 #include "base/basictypes.h"
13 #include "base/compiler_specific.h"
14 #include "base/observer_list.h"
15 #include "chromeos/dbus/session_manager_client.h"
16
17 namespace chromeos {
18
19 // A fake implementation of session_manager. Accepts policy blobs to be set and
20 // returns them unmodified.
21 class FakeSessionManagerClient : public SessionManagerClient {
22  public:
23   FakeSessionManagerClient();
24   virtual ~FakeSessionManagerClient();
25
26   // SessionManagerClient overrides
27   virtual void Init(dbus::Bus* bus) OVERRIDE;
28   virtual void SetStubDelegate(StubDelegate* delegate) OVERRIDE;
29   virtual void AddObserver(Observer* observer) OVERRIDE;
30   virtual void RemoveObserver(Observer* observer) OVERRIDE;
31   virtual bool HasObserver(Observer* observer) OVERRIDE;
32   virtual void EmitLoginPromptVisible() OVERRIDE;
33   virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE;
34   virtual void StartSession(const std::string& user_email) OVERRIDE;
35   virtual void StopSession() OVERRIDE;
36   virtual void StartDeviceWipe() OVERRIDE;
37   virtual void RequestLockScreen() OVERRIDE;
38   virtual void NotifyLockScreenShown() OVERRIDE;
39   virtual void NotifyLockScreenDismissed() OVERRIDE;
40   virtual void RetrieveActiveSessions(
41       const ActiveSessionsCallback& callback) OVERRIDE;
42   virtual void RetrieveDevicePolicy(
43       const RetrievePolicyCallback& callback) OVERRIDE;
44   virtual void RetrievePolicyForUser(
45       const std::string& username,
46       const RetrievePolicyCallback& callback) OVERRIDE;
47   virtual std::string BlockingRetrievePolicyForUser(
48       const std::string& username) OVERRIDE;
49   virtual void RetrieveDeviceLocalAccountPolicy(
50       const std::string& account_id,
51       const RetrievePolicyCallback& callback) OVERRIDE;
52   virtual void StoreDevicePolicy(const std::string& policy_blob,
53                                  const StorePolicyCallback& callback) OVERRIDE;
54   virtual void StorePolicyForUser(const std::string& username,
55                                   const std::string& policy_blob,
56                                   const StorePolicyCallback& callback) OVERRIDE;
57   virtual void StoreDeviceLocalAccountPolicy(
58       const std::string& account_id,
59       const std::string& policy_blob,
60       const StorePolicyCallback& callback) OVERRIDE;
61   virtual void SetFlagsForUser(const std::string& username,
62                                const std::vector<std::string>& flags) OVERRIDE;
63   virtual void GetServerBackedStateKeys(const StateKeysCallback& callback)
64       OVERRIDE;
65
66   const std::string& device_policy() const;
67   void set_device_policy(const std::string& policy_blob);
68
69   const std::string& user_policy(const std::string& username) const;
70   void set_user_policy(const std::string& username,
71                        const std::string& policy_blob);
72
73   const std::string& device_local_account_policy(
74       const std::string& account_id) const;
75   void set_device_local_account_policy(const std::string& account_id,
76                                        const std::string& policy_blob);
77
78   // Notify observers about a property change completion.
79   void OnPropertyChangeComplete(bool success);
80
81   // Configures the list of state keys used to satisfy
82   // GetServerBackedStateKeys() requests.
83   void set_server_backed_state_keys(
84       const std::vector<std::string>& state_keys) {
85     server_backed_state_keys_ = state_keys;
86   }
87
88   int start_device_wipe_call_count() const {
89     return start_device_wipe_call_count_;
90   }
91
92   // Returns how many times LockScreenShown() was called.
93   int notify_lock_screen_shown_call_count() const {
94     return notify_lock_screen_shown_call_count_;
95   }
96
97   // Returns how many times LockScreenDismissed() was called.
98   int notify_lock_screen_dismissed_call_count() const {
99     return notify_lock_screen_dismissed_call_count_;
100   }
101
102  private:
103   std::string device_policy_;
104   std::map<std::string, std::string> user_policies_;
105   std::map<std::string, std::string> device_local_account_policy_;
106   ObserverList<Observer> observers_;
107   SessionManagerClient::ActiveSessionsMap user_sessions_;
108   std::vector<std::string> server_backed_state_keys_;
109
110   int start_device_wipe_call_count_;
111   int notify_lock_screen_shown_call_count_;
112   int notify_lock_screen_dismissed_call_count_;
113
114   DISALLOW_COPY_AND_ASSIGN(FakeSessionManagerClient);
115 };
116
117 }  // namespace chromeos
118
119 #endif  // CHROMEOS_DBUS_FAKE_SESSION_MANAGER_CLIENT_H_