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 |
+ : 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_ |