15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef DEVICE_BLUETOOTH_TEST_MOCK_BLUETOOTH_DEVICE_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DEVICE_BLUETOOTH_TEST_MOCK_BLUETOOTH_DEVICE_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string16.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "device/bluetooth/bluetooth_device.h"
12c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "device/bluetooth/bluetooth_uuid.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gmock/include/gmock/gmock.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace device {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockBluetoothAdapter;
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockBluetoothDevice : public BluetoothDevice {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MockBluetoothDevice(MockBluetoothAdapter* adapter,
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                      uint32 bluetooth_class,
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      const std::string& name,
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      const std::string& address,
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      bool paired,
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      bool connected);
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~MockBluetoothDevice();
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MOCK_CONST_METHOD0(GetBluetoothClass, uint32());
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MOCK_CONST_METHOD0(GetDeviceName, std::string());
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MOCK_CONST_METHOD0(GetAddress, std::string());
32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  MOCK_CONST_METHOD0(GetVendorIDSource, BluetoothDevice::VendorIDSource());
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MOCK_CONST_METHOD0(GetVendorID, uint16());
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MOCK_CONST_METHOD0(GetProductID, uint16());
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MOCK_CONST_METHOD0(GetDeviceID, uint16());
365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  MOCK_CONST_METHOD0(GetName, base::string16());
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_CONST_METHOD0(GetDeviceType, BluetoothDevice::DeviceType());
385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(GetRSSI, int());
395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(GetCurrentHostTransmitPower, int());
405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(GetMaximumHostTransmitPower, int());
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_CONST_METHOD0(IsPaired, bool());
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_CONST_METHOD0(IsConnected, bool());
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MOCK_CONST_METHOD0(IsConnectable, bool());
44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MOCK_CONST_METHOD0(IsConnecting, bool());
4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  MOCK_CONST_METHOD0(GetUUIDs, UUIDList());
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_CONST_METHOD0(ExpectingPinCode, bool());
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_CONST_METHOD0(ExpectingPasskey, bool());
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_CONST_METHOD0(ExpectingConfirmation, bool());
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD3(Connect,
50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)               void(BluetoothDevice::PairingDelegate* pairing_delegate,
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    const base::Closure& callback,
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    const BluetoothDevice::ConnectErrorCallback&
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        error_callback));
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD1(SetPinCode, void(const std::string&));
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD1(SetPasskey, void(uint32));
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD0(ConfirmPairing, void());
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD0(RejectPairing, void());
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD0(CancelPairing, void());
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD2(Disconnect,
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)               void(const base::Closure& callback,
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    const BluetoothDevice::ErrorCallback& error_callback));
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD1(Forget, void(const BluetoothDevice::ErrorCallback&));
63010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  MOCK_METHOD3(ConnectToService,
64010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)               void(const BluetoothUUID& uuid,
65010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                    const ConnectToServiceCallback& callback,
66010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                    const ConnectToServiceErrorCallback& error_callback));
67f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  MOCK_METHOD2(CreateGattConnection,
68f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)               void(const GattConnectionCallback& callback,
69f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)                    const ConnectErrorCallback& error_callback));
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  MOCK_METHOD2(StartConnectionMonitor,
72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)               void(const base::Closure& callback,
73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                    const BluetoothDevice::ErrorCallback& error_callback));
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
755c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(GetGattServices, std::vector<BluetoothGattService*>());
765c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD1(GetGattService, BluetoothGattService*(const std::string&));
775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  uint32 bluetooth_class_;
80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  std::string name_;
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  std::string address_;
8223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  BluetoothDevice::UUIDList uuids_;
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace device
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // DEVICE_BLUETOOTH_TEST_MOCK_BLUETOOTH_DEVICE_H_
88