diff options
Diffstat (limited to 'device/bluetooth/test/test_bluetooth_adapter_observer.h')
-rw-r--r-- | device/bluetooth/test/test_bluetooth_adapter_observer.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/device/bluetooth/test/test_bluetooth_adapter_observer.h b/device/bluetooth/test/test_bluetooth_adapter_observer.h new file mode 100644 index 0000000..f3a9cf8 --- /dev/null +++ b/device/bluetooth/test/test_bluetooth_adapter_observer.h @@ -0,0 +1,164 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef DEVICE_BLUETOOTH_TEST_BLUETOOTH_ADAPTER_OBSERVER_H_ +#define DEVICE_BLUETOOTH_TEST_BLUETOOTH_ADAPTER_OBSERVER_H_ + +#include "device/bluetooth/bluetooth_adapter.h" + +namespace device { + +// Test implementation of BluetoothAdapter::Observer counting method calls and +// caching last reported values. +class TestBluetoothAdapterObserver : public BluetoothAdapter::Observer { + public: + TestBluetoothAdapterObserver(scoped_refptr<BluetoothAdapter> adapter); + ~TestBluetoothAdapterObserver() override; + + // Reset counters and cached values. + void Reset(); + + // BluetoothAdapter::Observer + void AdapterPresentChanged(BluetoothAdapter* adapter, bool present) override; + void AdapterPoweredChanged(BluetoothAdapter* adapter, bool powered) override; + void AdapterDiscoverableChanged(BluetoothAdapter* adapter, + bool discoverable) override; + void AdapterDiscoveringChanged(BluetoothAdapter* adapter, + bool discovering) override; + void DeviceAdded(BluetoothAdapter* adapter, BluetoothDevice* device) override; + void DeviceChanged(BluetoothAdapter* adapter, + BluetoothDevice* device) override; + void DeviceRemoved(BluetoothAdapter* adapter, + BluetoothDevice* device) override; + void GattServiceAdded(BluetoothAdapter* adapter, + BluetoothDevice* device, + BluetoothGattService* service) override; + void GattServiceRemoved(BluetoothAdapter* adapter, + BluetoothDevice* device, + BluetoothGattService* service) override; + void GattDiscoveryCompleteForService(BluetoothAdapter* adapter, + BluetoothGattService* service) override; + void GattServiceChanged(BluetoothAdapter* adapter, + BluetoothGattService* service) override; + void GattCharacteristicAdded( + BluetoothAdapter* adapter, + BluetoothGattCharacteristic* characteristic) override; + void GattCharacteristicRemoved( + BluetoothAdapter* adapter, + BluetoothGattCharacteristic* characteristic) override; + void GattDescriptorAdded(BluetoothAdapter* adapter, + BluetoothGattDescriptor* descriptor) override; + void GattDescriptorRemoved(BluetoothAdapter* adapter, + BluetoothGattDescriptor* descriptor) override; + void GattCharacteristicValueChanged( + BluetoothAdapter* adapter, + BluetoothGattCharacteristic* characteristic, + const std::vector<uint8>& value) override; + void GattDescriptorValueChanged(BluetoothAdapter* adapter, + BluetoothGattDescriptor* descriptor, + const std::vector<uint8>& value) override; + + // Adapter related: + int present_changed_count() { return present_changed_count_; } + int powered_changed_count() { return powered_changed_count_; } + int discoverable_changed_count() { return discoverable_changed_count_; } + int discovering_changed_count() { return discovering_changed_count_; } + bool last_present() { return last_present_; } + bool last_powered() { return last_powered_; } + bool last_discovering() { return last_discovering_; } + + // Device related: + int device_added_count() { return device_added_count_; } + int device_changed_count() { return device_changed_count_; } + int device_removed_count() { return device_removed_count_; } + BluetoothDevice* last_device() { return last_device_; } + std::string last_device_address() { return last_device_address_; } + + // GATT related: + int gatt_service_added_count() { return gatt_service_added_count_; } + int gatt_service_removed_count() { return gatt_service_removed_count_; } + int gatt_service_changed_count() { return gatt_service_changed_count_; } + int gatt_discovery_complete_count() { return gatt_discovery_complete_count_; } + int gatt_characteristic_added_count() { + return gatt_characteristic_added_count_; + } + int gatt_characteristic_removed_count() { + return gatt_characteristic_removed_count_; + } + int gatt_characteristic_value_changed_count() { + return gatt_characteristic_value_changed_count_; + } + int gatt_descriptor_added_count() { return gatt_descriptor_added_count_; } + int gatt_descriptor_removed_count() { return gatt_descriptor_removed_count_; } + int gatt_descriptor_value_changed_count() { + return gatt_descriptor_value_changed_count_; + } + std::string last_gatt_service_id() { return last_gatt_service_id_; } + BluetoothUUID last_gatt_service_uuid() { return last_gatt_service_uuid_; } + std::string last_gatt_characteristic_id() { + return last_gatt_characteristic_id_; + } + BluetoothUUID last_gatt_characteristic_uuid() { + return last_gatt_characteristic_uuid_; + } + std::vector<uint8> last_changed_characteristic_value() { + return last_changed_characteristic_value_; + } + std::string last_gatt_descriptor_id() { return last_gatt_descriptor_id_; } + BluetoothUUID last_gatt_descriptor_uuid() { + return last_gatt_descriptor_uuid_; + } + std::vector<uint8> last_changed_descriptor_value() { + return last_changed_descriptor_value_; + } + + private: + // Some tests use a message loop since background processing is simulated; + // break out of those loops. + void QuitMessageLoop(); + + scoped_refptr<BluetoothAdapter> adapter_; + + // Adapter related: + int present_changed_count_; + int powered_changed_count_; + int discoverable_changed_count_; + int discovering_changed_count_; + bool last_present_; + bool last_powered_; + bool last_discovering_; + + // Device related: + int device_added_count_; + int device_changed_count_; + int device_removed_count_; + BluetoothDevice* last_device_; + std::string last_device_address_; + + // GATT related: + int gatt_service_added_count_; + int gatt_service_removed_count_; + int gatt_service_changed_count_; + int gatt_discovery_complete_count_; + int gatt_characteristic_added_count_; + int gatt_characteristic_removed_count_; + int gatt_characteristic_value_changed_count_; + int gatt_descriptor_added_count_; + int gatt_descriptor_removed_count_; + int gatt_descriptor_value_changed_count_; + std::string last_gatt_service_id_; + BluetoothUUID last_gatt_service_uuid_; + std::string last_gatt_characteristic_id_; + BluetoothUUID last_gatt_characteristic_uuid_; + std::vector<uint8> last_changed_characteristic_value_; + std::string last_gatt_descriptor_id_; + BluetoothUUID last_gatt_descriptor_uuid_; + std::vector<uint8> last_changed_descriptor_value_; + + DISALLOW_COPY_AND_ASSIGN(TestBluetoothAdapterObserver); +}; + +} // namespace device + +#endif // DEVICE_BLUETOOTH_TEST_BLUETOOTH_ADAPTER_OBSERVER_H_ |