Home | History | Annotate | Download | only in dbus
      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_MANAGER_CLIENT_H_
      6 #define CHROMEOS_DBUS_FAKE_SHILL_MANAGER_CLIENT_H_
      7 
      8 #include <string>
      9 
     10 #include "base/basictypes.h"
     11 #include "base/callback.h"
     12 #include "chromeos/chromeos_export.h"
     13 #include "chromeos/dbus/shill_manager_client.h"
     14 
     15 namespace chromeos {
     16 
     17 // A fake implementation of ShillManagerClient. This works in close coordination
     18 // with FakeShillServiceClient. FakeShillDeviceClient, and
     19 // FakeShillProfileClient, and is not intended to be used independently.
     20 class CHROMEOS_EXPORT FakeShillManagerClient :
     21       public ShillManagerClient,
     22       public ShillManagerClient::TestInterface {
     23  public:
     24   FakeShillManagerClient();
     25   virtual ~FakeShillManagerClient();
     26 
     27   // ShillManagerClient overrides
     28   virtual void Init(dbus::Bus* bus) OVERRIDE;
     29   virtual void AddPropertyChangedObserver(
     30       ShillPropertyChangedObserver* observer) OVERRIDE;
     31   virtual void RemovePropertyChangedObserver(
     32       ShillPropertyChangedObserver* observer) OVERRIDE;
     33   virtual void GetProperties(const DictionaryValueCallback& callback) OVERRIDE;
     34   virtual void GetNetworksForGeolocation(
     35       const DictionaryValueCallback& callback) OVERRIDE;
     36   virtual void SetProperty(const std::string& name,
     37                            const base::Value& value,
     38                            const base::Closure& callback,
     39                            const ErrorCallback& error_callback) OVERRIDE;
     40   virtual void RequestScan(const std::string& type,
     41                            const base::Closure& callback,
     42                            const ErrorCallback& error_callback) OVERRIDE;
     43   virtual void EnableTechnology(
     44       const std::string& type,
     45       const base::Closure& callback,
     46       const ErrorCallback& error_callback) OVERRIDE;
     47   virtual void DisableTechnology(
     48       const std::string& type,
     49       const base::Closure& callback,
     50       const ErrorCallback& error_callback) OVERRIDE;
     51   virtual void ConfigureService(
     52       const base::DictionaryValue& properties,
     53       const ObjectPathCallback& callback,
     54       const ErrorCallback& error_callback) OVERRIDE;
     55   virtual void ConfigureServiceForProfile(
     56       const dbus::ObjectPath& profile_path,
     57       const base::DictionaryValue& properties,
     58       const ObjectPathCallback& callback,
     59       const ErrorCallback& error_callback) OVERRIDE;
     60   virtual void GetService(
     61       const base::DictionaryValue& properties,
     62       const ObjectPathCallback& callback,
     63       const ErrorCallback& error_callback) OVERRIDE;
     64   virtual void VerifyDestination(const VerificationProperties& properties,
     65                                  const BooleanCallback& callback,
     66                                  const ErrorCallback& error_callback) OVERRIDE;
     67   virtual void VerifyAndEncryptCredentials(
     68       const VerificationProperties& properties,
     69       const std::string& service_path,
     70       const StringCallback& callback,
     71       const ErrorCallback& error_callback) OVERRIDE;
     72   virtual void VerifyAndEncryptData(
     73       const VerificationProperties& properties,
     74       const std::string& data,
     75       const StringCallback& callback,
     76       const ErrorCallback& error_callback) OVERRIDE;
     77   virtual void ConnectToBestServices(
     78       const base::Closure& callback,
     79       const ErrorCallback& error_callback) OVERRIDE;
     80   virtual ShillManagerClient::TestInterface* GetTestInterface() OVERRIDE;
     81 
     82   // ShillManagerClient::TestInterface overrides.
     83   virtual void AddDevice(const std::string& device_path) OVERRIDE;
     84   virtual void RemoveDevice(const std::string& device_path) OVERRIDE;
     85   virtual void ClearDevices() OVERRIDE;
     86   virtual void AddTechnology(const std::string& type, bool enabled) OVERRIDE;
     87   virtual void RemoveTechnology(const std::string& type) OVERRIDE;
     88   virtual void SetTechnologyInitializing(const std::string& type,
     89                                          bool initializing) OVERRIDE;
     90   virtual void AddGeoNetwork(const std::string& technology,
     91                              const base::DictionaryValue& network) OVERRIDE;
     92   virtual void AddProfile(const std::string& profile_path) OVERRIDE;
     93   virtual void ClearProperties() OVERRIDE;
     94   virtual void AddManagerService(const std::string& service_path,
     95                                  bool add_to_visible_list,
     96                                  bool add_to_watch_list) OVERRIDE;
     97   virtual void RemoveManagerService(const std::string& service_path) OVERRIDE;
     98   virtual void ClearManagerServices() OVERRIDE;
     99   virtual void SortManagerServices() OVERRIDE;
    100 
    101  private:
    102   void AddServiceToWatchList(const std::string& service_path);
    103   void SetDefaultProperties();
    104   void PassStubProperties(const DictionaryValueCallback& callback) const;
    105   void PassStubGeoNetworks(const DictionaryValueCallback& callback) const;
    106   void CallNotifyObserversPropertyChanged(const std::string& property,
    107                                           int delay_ms);
    108   void NotifyObserversPropertyChanged(const std::string& property);
    109   base::ListValue* GetListProperty(const std::string& property);
    110   bool TechnologyEnabled(const std::string& type) const;
    111   void SetTechnologyEnabled(const std::string& type,
    112                             const base::Closure& callback,
    113                             bool enabled);
    114   base::ListValue* GetEnabledServiceList(const std::string& property) const;
    115   void ScanCompleted(const std::string& device_path,
    116                      const base::Closure& callback);
    117 
    118   // Dictionary of property name -> property value
    119   base::DictionaryValue stub_properties_;
    120   // Dictionary of technology -> list of property dictionaries
    121   base::DictionaryValue stub_geo_networks_;
    122 
    123   ObserverList<ShillPropertyChangedObserver> observer_list_;
    124 
    125   // Note: This should remain the last member so it'll be destroyed and
    126   // invalidate its weak pointers before any other members are destroyed.
    127   base::WeakPtrFactory<FakeShillManagerClient> weak_ptr_factory_;
    128 
    129   DISALLOW_COPY_AND_ASSIGN(FakeShillManagerClient);
    130 };
    131 
    132 }  // namespace chromeos
    133 
    134 #endif  // CHROMEOS_DBUS_FAKE_SHILL_MANAGER_CLIENT_H_
    135