• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_BLUETOOTH_AGENT_SERVICE_PROVIDER_H_
6 #define CHROMEOS_DBUS_FAKE_BLUETOOTH_AGENT_SERVICE_PROVIDER_H_
7 
8 #include "base/bind.h"
9 #include "base/callback.h"
10 #include "base/observer_list.h"
11 #include "chromeos/chromeos_export.h"
12 #include "chromeos/dbus/bluetooth_agent_service_provider.h"
13 #include "dbus/object_path.h"
14 #include "dbus/property.h"
15 
16 namespace chromeos {
17 
18 class FakeBluetoothAgentManagerClient;
19 
20 // FakeBluetoothAgentServiceProvider simulates the behavior of a local
21 // Bluetooth agent object and is used both in test cases in place of a
22 // mock and on the Linux desktop.
23 class CHROMEOS_EXPORT FakeBluetoothAgentServiceProvider
24     : public BluetoothAgentServiceProvider {
25  public:
26   FakeBluetoothAgentServiceProvider(const dbus::ObjectPath& object_path,
27                                     Delegate *delegate);
28   virtual ~FakeBluetoothAgentServiceProvider();
29 
30   // Each of these calls the equivalent BluetoothAgentServiceProvider::Delegate
31   // method on the object passed on construction.
32   virtual void Release();
33   virtual void RequestPinCode(const dbus::ObjectPath& device_path,
34                               const Delegate::PinCodeCallback& callback);
35   virtual void DisplayPinCode(const dbus::ObjectPath& device_path,
36                               const std::string& pincode);
37   virtual void RequestPasskey(const dbus::ObjectPath& device_path,
38                               const Delegate::PasskeyCallback& callback);
39   virtual void DisplayPasskey(const dbus::ObjectPath& device_path,
40                               uint32 passkey, int16 entered);
41   virtual void RequestConfirmation(
42       const dbus::ObjectPath& device_path,
43       uint32 passkey,
44       const Delegate::ConfirmationCallback& callback);
45   virtual void RequestAuthorization(
46       const dbus::ObjectPath& device_path,
47       const Delegate::ConfirmationCallback& callback);
48   virtual void AuthorizeService(
49       const dbus::ObjectPath& device_path,
50       const std::string& uuid,
51       const Delegate::ConfirmationCallback& callback);
52   virtual void Cancel();
53 
54  private:
55   friend class FakeBluetoothAgentManagerClient;
56 
57   // D-Bus object path we are faking.
58   dbus::ObjectPath object_path_;
59 
60   // All incoming method calls are passed on to the Delegate and a callback
61   // passed to generate the reply. |delegate_| is generally the object that
62   // owns this one, and must outlive it.
63   Delegate* delegate_;
64 };
65 
66 }  // namespace chromeos
67 
68 #endif  // CHROMEOS_DBUS_FAKE_BLUETOOTH_AGENT_SERVICE_PROVIDER_H_
69