1 // Copyright (c) 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_POWER_MANAGER_CLIENT_H_ 6 #define CHROMEOS_DBUS_FAKE_POWER_MANAGER_CLIENT_H_ 7 8 #include <string> 9 10 #include "base/basictypes.h" 11 #include "base/observer_list.h" 12 #include "chromeos/dbus/power_manager/policy.pb.h" 13 #include "chromeos/dbus/power_manager/suspend.pb.h" 14 #include "chromeos/dbus/power_manager_client.h" 15 16 namespace chromeos { 17 18 // A fake implementation of PowerManagerClient. This remembers the policy passed 19 // to SetPolicy() and the user of this class can inspect the last set policy by 20 // get_policy(). 21 class FakePowerManagerClient : public PowerManagerClient { 22 public: 23 FakePowerManagerClient(); 24 virtual ~FakePowerManagerClient(); 25 26 power_manager::PowerManagementPolicy& policy() { return policy_; } 27 int num_request_restart_calls() const { 28 return num_request_restart_calls_; 29 } 30 int num_set_policy_calls() const { 31 return num_set_policy_calls_; 32 } 33 int num_set_is_projecting_calls() const { 34 return num_set_is_projecting_calls_; 35 } 36 bool is_projecting() const { 37 return is_projecting_; 38 } 39 40 // PowerManagerClient overrides 41 virtual void Init(dbus::Bus* bus) OVERRIDE; 42 virtual void AddObserver(Observer* observer) OVERRIDE; 43 virtual void RemoveObserver(Observer* observer) OVERRIDE; 44 virtual bool HasObserver(Observer* observer) OVERRIDE; 45 virtual void DecreaseScreenBrightness(bool allow_off) OVERRIDE; 46 virtual void IncreaseScreenBrightness() OVERRIDE; 47 virtual void SetScreenBrightnessPercent( 48 double percent, bool gradual) OVERRIDE; 49 virtual void GetScreenBrightnessPercent( 50 const GetScreenBrightnessPercentCallback& callback) OVERRIDE; 51 virtual void DecreaseKeyboardBrightness() OVERRIDE; 52 virtual void IncreaseKeyboardBrightness() OVERRIDE; 53 virtual void RequestStatusUpdate() OVERRIDE; 54 virtual void RequestRestart() OVERRIDE; 55 virtual void RequestShutdown() OVERRIDE; 56 virtual void NotifyUserActivity( 57 power_manager::UserActivityType type) OVERRIDE; 58 virtual void NotifyVideoActivity(bool is_fullscreen) OVERRIDE; 59 virtual void SetPolicy( 60 const power_manager::PowerManagementPolicy& policy) OVERRIDE; 61 virtual void SetIsProjecting(bool is_projecting) OVERRIDE; 62 virtual base::Closure GetSuspendReadinessCallback() OVERRIDE; 63 virtual int GetNumPendingSuspendReadinessCallbacks() OVERRIDE; 64 65 // Emulates the power manager announcing that the system is starting or 66 // completing a suspend attempt. 67 void SendSuspendImminent(); 68 void SendSuspendDone(); 69 70 private: 71 ObserverList<Observer> observers_; 72 73 // Last policy passed to SetPolicy(). 74 power_manager::PowerManagementPolicy policy_; 75 76 // Number of times that RequestRestart() has been called. 77 int num_request_restart_calls_; 78 79 // Number of times that SetPolicy() has been called. 80 int num_set_policy_calls_; 81 82 // Count the number of times SetIsProjecting() has been called. 83 int num_set_is_projecting_calls_; 84 85 // Last projecting state set in SetIsProjecting(). 86 bool is_projecting_; 87 88 DISALLOW_COPY_AND_ASSIGN(FakePowerManagerClient); 89 }; 90 91 } // namespace chromeos 92 93 #endif // CHROMEOS_DBUS_FAKE_POWER_MANAGER_CLIENT_H_ 94