Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2359)

Unified Diff: content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc

Issue 2466223002: Implement WebBluetooth getDescriptor[s] (Closed)
Patch Set: Implement WebBluetooth getDescriptor[s] Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc
diff --git a/content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc b/content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc
index 16b3c54101fe862d446299187044c16ed8f82ab3..96131efe17ab4f127fdb800bff7add7119c68a4f 100644
--- a/content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc
+++ b/content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc
@@ -23,13 +23,16 @@
#include "device/bluetooth/test/mock_bluetooth_adapter.h"
#include "device/bluetooth/test/mock_bluetooth_discovery_session.h"
#include "device/bluetooth/test/mock_bluetooth_gatt_connection.h"
+#include "device/bluetooth/test/mock_bluetooth_gatt_descriptor.h"
#include "device/bluetooth/test/mock_bluetooth_gatt_notify_session.h"
#include "testing/gmock/include/gmock/gmock.h"
using base::StringPiece;
using device::BluetoothAdapter;
using device::BluetoothDevice;
+using device::BluetoothGattCharacteristic;
using device::BluetoothRemoteGattCharacteristic;
+using device::BluetoothRemoteGattDescriptor;
using device::BluetoothRemoteGattService;
using device::BluetoothUUID;
using device::MockBluetoothAdapter;
@@ -37,6 +40,7 @@ using device::MockBluetoothDevice;
using device::MockBluetoothDiscoverySession;
using device::MockBluetoothGattCharacteristic;
using device::MockBluetoothGattConnection;
+using device::MockBluetoothGattDescriptor;
using device::MockBluetoothGattNotifySession;
using device::MockBluetoothGattService;
using testing::ElementsAre;
@@ -50,6 +54,8 @@ typedef testing::NiceMock<MockBluetoothAdapter> NiceMockBluetoothAdapter;
typedef testing::NiceMock<MockBluetoothDevice> NiceMockBluetoothDevice;
typedef testing::NiceMock<MockBluetoothDiscoverySession>
NiceMockBluetoothDiscoverySession;
+typedef testing::NiceMock<MockBluetoothGattDescriptor>
+ NiceMockBluetoothGattDescriptor;
typedef testing::NiceMock<MockBluetoothGattCharacteristic>
NiceMockBluetoothGattCharacteristic;
typedef testing::NiceMock<MockBluetoothGattConnection>
@@ -84,6 +90,13 @@ const char kMeasurementIntervalUUID[] = "2a21";
const char kHeartRateMeasurementUUID[] = "2a37";
const char kSerialNumberStringUUID[] = "2a25";
const char kPeripheralPrivacyFlagUUID[] = "2a02";
+// Descriptors:
+const char kUserDescriptionUUID[] = "2901";
+// Client Config is in our blocklist. It must not be writable
+const char kClientConfigUUID[] = "2902";
+// Blocklisted descriptor
+const char kBlocklistedDescriptorUUID[] =
+ "bad2ddcf-60db-45cd-bef9-fd72b153cf7c";
// Invokes Run() on the k-th argument of the function with no arguments.
ACTION_TEMPLATE(RunCallback,
@@ -654,9 +667,7 @@ LayoutTestBluetoothAdapterProvider::GetHeartRateAdapter() {
device->AddMockService(GetGenericAccessService(device.get()));
device->AddMockService(GetHeartRateService(adapter.get(), device.get()));
-
adapter->AddMockDevice(std::move(device));
-
return adapter;
}
@@ -709,6 +720,33 @@ LayoutTestBluetoothAdapterProvider::GetDisconnectingHealthThermometer() {
return GetBaseGATTNotifySession(measurement_ptr->GetWeakPtr());
}));
+ std::unique_ptr<NiceMockBluetoothGattDescriptor> user_description(
+ new NiceMockBluetoothGattDescriptor(
+ measurement_interval.get(), "gatt.characteristic_user_description",
+ BluetoothUUID(kUserDescriptionUUID), false,
+ device::BluetoothRemoteGattCharacteristic::PROPERTY_READ));
+
+ std::unique_ptr<NiceMockBluetoothGattDescriptor> client_config(
+ new NiceMockBluetoothGattDescriptor(
+ measurement_interval.get(),
+ "gatt.client_characteristic_configuration",
+ BluetoothUUID(kClientConfigUUID), false,
+ device::BluetoothRemoteGattCharacteristic::PROPERTY_READ |
+ device::BluetoothRemoteGattCharacteristic::PROPERTY_WRITE));
+
+ // Add it here with full permission as the blocklist should prevent us from
+ // accessing this descriptor
+ std::unique_ptr<NiceMockBluetoothGattDescriptor> blocklisted_descriptor(
+ new NiceMockBluetoothGattDescriptor(
+ measurement_interval.get(), "bad2ddcf-60db-45cd-bef9-fd72b153cf7c",
+ BluetoothUUID(kBlocklistedDescriptorUUID), false,
+ device::BluetoothRemoteGattCharacteristic::PROPERTY_READ |
+ device::BluetoothRemoteGattCharacteristic::PROPERTY_WRITE));
+
+ measurement_interval->AddMockDescriptor(std::move(user_description));
+ measurement_interval->AddMockDescriptor(std::move(client_config));
+ measurement_interval->AddMockDescriptor(std::move(blocklisted_descriptor));
+
health_thermometer->AddMockCharacteristic(std::move(measurement_interval));
device->AddMockService(std::move(health_thermometer));
@@ -1573,21 +1611,28 @@ LayoutTestBluetoothAdapterProvider::GetBaseGATTCharacteristic(
service, identifier, BluetoothUUID(uuid), false /* is_local */,
properties, NULL /* permissions */));
- // Read response.
ON_CALL(*characteristic, ReadRemoteCharacteristic(_, _))
.WillByDefault(
RunCallback<1>(BluetoothRemoteGattService::GATT_ERROR_NOT_SUPPORTED));
- // Write response.
ON_CALL(*characteristic, WriteRemoteCharacteristic(_, _, _))
.WillByDefault(
RunCallback<2>(BluetoothRemoteGattService::GATT_ERROR_NOT_SUPPORTED));
- // StartNotifySession response
ON_CALL(*characteristic, StartNotifySession(_, _))
.WillByDefault(
RunCallback<1>(BluetoothRemoteGattService::GATT_ERROR_NOT_SUPPORTED));
+ ON_CALL(*characteristic, GetDescriptors())
+ .WillByDefault(
+ Invoke(characteristic.get(),
+ &MockBluetoothGattCharacteristic::GetMockDescriptors));
+
+ ON_CALL(*characteristic, GetDescriptor(_))
+ .WillByDefault(
+ Invoke(characteristic.get(),
+ &MockBluetoothGattCharacteristic::GetMockDescriptor));
+
return characteristic;
}

Powered by Google App Engine
This is Rietveld 408576698