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