Chromium Code Reviews| Index: device/bluetooth/test/bluetooth_gatt_server_test.h |
| diff --git a/device/bluetooth/test/bluetooth_gatt_server_test.h b/device/bluetooth/test/bluetooth_gatt_server_test.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..18b652cf9a2f361e8c6779e90ef2bb0eb9aad435 |
| --- /dev/null |
| +++ b/device/bluetooth/test/bluetooth_gatt_server_test.h |
| @@ -0,0 +1,112 @@ |
| +// Copyright 2016 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_GATT_SERVER_TEST_H_ |
| +#define DEVICE_BLUETOOTH_TEST_BLUETOOTH_GATT_SERVER_TEST_H_ |
| + |
| +#include <cstdint> |
| +#include <vector> |
| + |
| +#include "base/callback_forward.h" |
| +#include "base/macros.h" |
| +#include "base/memory/weak_ptr.h" |
| +#include "device/bluetooth/bluetooth_local_gatt_characteristic.h" |
| +#include "device/bluetooth/bluetooth_local_gatt_descriptor.h" |
| +#include "device/bluetooth/bluetooth_local_gatt_service.h" |
| + |
| +#if defined(OS_ANDROID) |
| +#include "device/bluetooth/test/bluetooth_test_android.h" |
| +#elif defined(OS_MACOSX) |
| +#include "device/bluetooth/test/bluetooth_test_mac.h" |
| +#elif defined(OS_WIN) |
| +#include "device/bluetooth/test/bluetooth_test_win.h" |
| +#elif defined(OS_CHROMEOS) || defined(OS_LINUX) |
| +#include "device/bluetooth/test/bluetooth_test_bluez.h" |
| +#endif |
| + |
| +namespace device { |
| + |
| +class TestLocalGattServiceDelegate |
|
scheib
2016/05/03 05:55:57
I think move this to it's own .h/.cc; Ratio of lar
rkc
2016/05/03 18:22:15
Done.
|
| + : public BluetoothLocalGattService::Delegate { |
| + public: |
| + TestLocalGattServiceDelegate(); |
| + |
| + void OnCharacteristicReadRequest( |
| + const BluetoothLocalGattService* service, |
| + const BluetoothLocalGattCharacteristic* characteristic, |
| + int offset, |
| + const ValueCallback& callback, |
| + const ErrorCallback& error_callback) override; |
| + void OnCharacteristicWriteRequest( |
| + const BluetoothLocalGattService* service, |
| + const BluetoothLocalGattCharacteristic* characteristic, |
| + const std::vector<uint8_t>& value, |
| + int offset, |
| + const base::Closure& callback, |
| + const ErrorCallback& error_callback) override; |
| + void OnDescriptorReadRequest(const BluetoothLocalGattService* service, |
| + const BluetoothLocalGattDescriptor* descriptor, |
| + int offset, |
| + const ValueCallback& callback, |
| + const ErrorCallback& error_callback) override; |
| + |
| + void OnDescriptorWriteRequest(const BluetoothLocalGattService* service, |
| + const BluetoothLocalGattDescriptor* descriptor, |
| + const std::vector<uint8_t>& value, |
| + int offset, |
| + const base::Closure& callback, |
| + const ErrorCallback& error_callback) override; |
| + |
| + void set_expected_service(BluetoothLocalGattService* service) { |
| + expected_service_ = service; |
| + } |
| + |
| + void set_expected_characteristic( |
| + BluetoothLocalGattCharacteristic* characteristic) { |
| + expected_characteristic_ = characteristic; |
| + } |
| + |
| + void set_expected_descriptor(BluetoothLocalGattDescriptor* descriptor) { |
| + expected_descriptor_ = descriptor; |
| + } |
| + |
| + static bool should_fail_; |
| + static uint64_t last_written_value_; |
| + static uint64_t value_to_write_; |
| + |
| + private: |
| + BluetoothLocalGattService* expected_service_; |
| + BluetoothLocalGattCharacteristic* expected_characteristic_; |
| + BluetoothLocalGattDescriptor* expected_descriptor_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(TestLocalGattServiceDelegate); |
| +}; |
| + |
| +// Base class for BlueZ GATT server unit tests. |
| +class BluetoothGattServerTest : public BluetoothTest { |
| + public: |
| + BluetoothGattServerTest(); |
| + ~BluetoothGattServerTest() override; |
| + |
| + // Start and complete boilerplate setup steps. |
| + void StartGattSetup(); |
| + void CompleteGattSetup(); |
| + |
| + // BluetoothTest overrides: |
| + void SetUp() override; |
| + void TearDown() override; |
| + |
| + // Utility methods to deal with values. |
| + static uint64_t GetInteger(const std::vector<uint8_t>& value); |
| + static std::vector<uint8_t> GetValue(uint64_t int_value); |
| + |
| + protected: |
| + base::WeakPtr<BluetoothLocalGattService> service_; |
| + |
| + std::unique_ptr<TestLocalGattServiceDelegate> delegate_; |
| +}; |
| + |
| +} // namespace device |
| + |
| +#endif // DEVICE_BLUETOOTH_TEST_BLUETOOTH_GATT_SERVER_TEST_H_ |