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_GSM_SMS_CLIENT_H_ 6#define CHROMEOS_DBUS_FAKE_GSM_SMS_CLIENT_H_ 7 8#include <string> 9 10#include "base/memory/weak_ptr.h" 11#include "base/values.h" 12#include "chromeos/dbus/gsm_sms_client.h" 13#include "dbus/object_path.h" 14 15namespace chromeos { 16 17// A fake implementation of GsmSMSClient used for tests. 18class CHROMEOS_EXPORT FakeGsmSMSClient : public GsmSMSClient { 19 public: 20 FakeGsmSMSClient(); 21 virtual ~FakeGsmSMSClient(); 22 23 // GsmSMSClient overrides 24 virtual void Init(dbus::Bus* bus) OVERRIDE; 25 virtual void SetSmsReceivedHandler(const std::string& service_name, 26 const dbus::ObjectPath& object_path, 27 const SmsReceivedHandler& handler) 28 OVERRIDE; 29 virtual void ResetSmsReceivedHandler(const std::string& service_name, 30 const dbus::ObjectPath& object_path) 31 OVERRIDE; 32 virtual void Delete(const std::string& service_name, 33 const dbus::ObjectPath& object_path, 34 uint32 index, 35 const DeleteCallback& callback) OVERRIDE; 36 virtual void Get(const std::string& service_name, 37 const dbus::ObjectPath& object_path, 38 uint32 index, 39 const GetCallback& callback) OVERRIDE; 40 virtual void List(const std::string& service_name, 41 const dbus::ObjectPath& object_path, 42 const ListCallback& callback) OVERRIDE; 43 virtual void RequestUpdate(const std::string& service_name, 44 const dbus::ObjectPath& object_path) OVERRIDE; 45 46 // Sets if the command line switch for test is present. RequestUpdate() 47 // changes its behavior depending on the switch. 48 void set_sms_test_message_switch_present(bool is_present) { 49 sms_test_message_switch_present_ = is_present; 50 } 51 52 private: 53 void PushTestMessageChain(); 54 void PushTestMessageDelayed(); 55 bool PushTestMessage(); 56 57 int test_index_; 58 std::vector<std::string> test_messages_; 59 base::ListValue message_list_; 60 SmsReceivedHandler handler_; 61 62 bool sms_test_message_switch_present_; 63 64 base::WeakPtrFactory<FakeGsmSMSClient> weak_ptr_factory_; 65 66 DISALLOW_COPY_AND_ASSIGN(FakeGsmSMSClient); 67}; 68 69} // namespace chromeos 70 71#endif // CHROMEOS_DBUS_FAKE_GSM_SMS_CLIENT_H_ 72