Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chromeos / dbus / fake_shill_device_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_SHILL_DEVICE_CLIENT_H_
6 #define CHROMEOS_DBUS_FAKE_SHILL_DEVICE_CLIENT_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11 #include "chromeos/chromeos_export.h"
12 #include "chromeos/dbus/shill_device_client.h"
13
14 namespace chromeos {
15
16 // A fake implementation of ShillDeviceClient.
17 // Implemented: Stub cellular device for SMS testing.
18 class CHROMEOS_EXPORT FakeShillDeviceClient
19     : public ShillDeviceClient,
20       public ShillDeviceClient::TestInterface {
21  public:
22   FakeShillDeviceClient();
23   virtual ~FakeShillDeviceClient();
24
25   // ShillDeviceClient overrides
26   virtual void Init(dbus::Bus* bus) OVERRIDE;
27   virtual void AddPropertyChangedObserver(
28       const dbus::ObjectPath& device_path,
29       ShillPropertyChangedObserver* observer) OVERRIDE;
30   virtual void RemovePropertyChangedObserver(
31       const dbus::ObjectPath& device_path,
32       ShillPropertyChangedObserver* observer) OVERRIDE;
33   virtual void GetProperties(const dbus::ObjectPath& device_path,
34                              const DictionaryValueCallback& callback) OVERRIDE;
35   virtual void ProposeScan(const dbus::ObjectPath& device_path,
36                            const VoidDBusMethodCallback& callback) OVERRIDE;
37   virtual void SetProperty(const dbus::ObjectPath& device_path,
38                            const std::string& name,
39                            const base::Value& value,
40                            const base::Closure& callback,
41                            const ErrorCallback& error_callback) OVERRIDE;
42   virtual void ClearProperty(const dbus::ObjectPath& device_path,
43                              const std::string& name,
44                              const VoidDBusMethodCallback& callback) OVERRIDE;
45   virtual void AddIPConfig(
46       const dbus::ObjectPath& device_path,
47       const std::string& method,
48       const ObjectPathDBusMethodCallback& callback) OVERRIDE;
49   virtual void RequirePin(const dbus::ObjectPath& device_path,
50                           const std::string& pin,
51                           bool require,
52                           const base::Closure& callback,
53                           const ErrorCallback& error_callback) OVERRIDE;
54   virtual void EnterPin(const dbus::ObjectPath& device_path,
55                         const std::string& pin,
56                         const base::Closure& callback,
57                         const ErrorCallback& error_callback) OVERRIDE;
58   virtual void UnblockPin(const dbus::ObjectPath& device_path,
59                           const std::string& puk,
60                           const std::string& pin,
61                           const base::Closure& callback,
62                           const ErrorCallback& error_callback) OVERRIDE;
63   virtual void ChangePin(const dbus::ObjectPath& device_path,
64                          const std::string& old_pin,
65                          const std::string& new_pin,
66                          const base::Closure& callback,
67                          const ErrorCallback& error_callback) OVERRIDE;
68   virtual void Register(const dbus::ObjectPath& device_path,
69                         const std::string& network_id,
70                         const base::Closure& callback,
71                         const ErrorCallback& error_callback) OVERRIDE;
72   virtual void SetCarrier(const dbus::ObjectPath& device_path,
73                           const std::string& carrier,
74                           const base::Closure& callback,
75                           const ErrorCallback& error_callback) OVERRIDE;
76   virtual void Reset(const dbus::ObjectPath& device_path,
77                      const base::Closure& callback,
78                      const ErrorCallback& error_callback) OVERRIDE;
79   virtual void PerformTDLSOperation(
80       const dbus::ObjectPath& device_path,
81       const std::string& operation,
82       const std::string& peer,
83       const StringCallback& callback,
84       const ErrorCallback& error_callback) OVERRIDE;
85
86   virtual ShillDeviceClient::TestInterface* GetTestInterface() OVERRIDE;
87
88   // ShillDeviceClient::TestInterface overrides.
89   virtual void AddDevice(const std::string& device_path,
90                          const std::string& type,
91                          const std::string& object_path) OVERRIDE;
92   virtual void RemoveDevice(const std::string& device_path) OVERRIDE;
93   virtual void ClearDevices() OVERRIDE;
94   virtual void SetDeviceProperty(const std::string& device_path,
95                                  const std::string& name,
96                                  const base::Value& value) OVERRIDE;
97   virtual std::string GetDevicePathForType(const std::string& type) OVERRIDE;
98
99   void set_tdls_busy_count(int count) { tdls_busy_count_ = count; }
100
101  private:
102   typedef ObserverList<ShillPropertyChangedObserver> PropertyObserverList;
103
104   void SetDefaultProperties();
105   void PassStubDeviceProperties(const dbus::ObjectPath& device_path,
106                                 const DictionaryValueCallback& callback) const;
107
108   // Posts a task to run a void callback with status code |status|.
109   void PostVoidCallback(const VoidDBusMethodCallback& callback,
110                         DBusMethodCallStatus status);
111
112   void NotifyObserversPropertyChanged(const dbus::ObjectPath& device_path,
113                                       const std::string& property);
114   base::DictionaryValue* GetDeviceProperties(const std::string& device_path);
115   PropertyObserverList& GetObserverList(const dbus::ObjectPath& device_path);
116
117   // Dictionary of <device_name, Dictionary>.
118   base::DictionaryValue stub_devices_;
119   // Observer list for each device.
120   std::map<dbus::ObjectPath, PropertyObserverList*> observer_list_;
121
122   int tdls_busy_count_;  // Number of times to return InProgress for TDLS.
123
124   // Note: This should remain the last member so it'll be destroyed and
125   // invalidate its weak pointers before any other members are destroyed.
126   base::WeakPtrFactory<FakeShillDeviceClient> weak_ptr_factory_;
127
128   DISALLOW_COPY_AND_ASSIGN(FakeShillDeviceClient);
129 };
130
131 }  // namespace chromeos
132
133 #endif  // CHROMEOS_DBUS_FAKE_SHILL_DEVICE_CLIENT_H_