| Index: device/bluetooth/test/bluetooth_test_mac.mm
|
| diff --git a/device/bluetooth/test/bluetooth_test_mac.mm b/device/bluetooth/test/bluetooth_test_mac.mm
|
| index 5ee9944d308aa8bc8cb61e51244f75669bccc72e..7cf74db2fb007ea8a5b5f4e3dfda16855ed697a5 100644
|
| --- a/device/bluetooth/test/bluetooth_test_mac.mm
|
| +++ b/device/bluetooth/test/bluetooth_test_mac.mm
|
| @@ -57,20 +57,29 @@ class BluetoothTestMac::ScopedMockCentralManager {
|
|
|
| namespace {
|
|
|
| -scoped_nsobject<NSDictionary> CreateAdvertisementData(NSString* name,
|
| - NSArray* uuids) {
|
| +scoped_nsobject<NSDictionary> CreateAdvertisementData(
|
| + NSString* name,
|
| + NSArray* uuids,
|
| + NSDictionary* service_data) {
|
| NSMutableDictionary* advertisement_data(
|
| [NSMutableDictionary dictionaryWithDictionary:@{
|
| - CBAdvertisementDataServiceDataKey : @{},
|
| - CBAdvertisementDataIsConnectable : @(YES),
|
| + CBAdvertisementDataIsConnectable : @(YES)
|
| }]);
|
| +
|
| if (name) {
|
| [advertisement_data setObject:name forKey:CBAdvertisementDataLocalNameKey];
|
| }
|
| +
|
| if (uuids) {
|
| [advertisement_data setObject:uuids
|
| forKey:CBAdvertisementDataServiceUUIDsKey];
|
| }
|
| +
|
| + if (service_data) {
|
| + [advertisement_data setObject:service_data
|
| + forKey:CBAdvertisementDataServiceDataKey];
|
| + }
|
| +
|
| return scoped_nsobject<NSDictionary>(advertisement_data,
|
| base::scoped_policy::RETAIN);
|
| }
|
| @@ -138,6 +147,7 @@ BluetoothDevice* BluetoothTestMac::SimulateLowEnergyDevice(int device_ordinal) {
|
| const char* identifier;
|
| NSString* name;
|
| NSArray* uuids;
|
| + NSDictionary* service_data;
|
|
|
| switch (device_ordinal) {
|
| case 1:
|
| @@ -147,6 +157,10 @@ BluetoothDevice* BluetoothTestMac::SimulateLowEnergyDevice(int device_ordinal) {
|
| [CBUUID UUIDWithString:@(kTestUUIDGenericAccess.c_str())],
|
| [CBUUID UUIDWithString:@(kTestUUIDGenericAttribute.c_str())]
|
| ];
|
| + service_data = @{
|
| + [CBUUID UUIDWithString:@(kTestUUIDHeartRate.c_str())] :
|
| + [NSData dataWithBytes:(unsigned char[]){1} length:1]
|
| + };
|
| break;
|
| case 2:
|
| identifier = kTestPeripheralUUID1.c_str();
|
| @@ -155,21 +169,30 @@ BluetoothDevice* BluetoothTestMac::SimulateLowEnergyDevice(int device_ordinal) {
|
| [CBUUID UUIDWithString:@(kTestUUIDImmediateAlert.c_str())],
|
| [CBUUID UUIDWithString:@(kTestUUIDLinkLoss.c_str())]
|
| ];
|
| + service_data = @{
|
| + [CBUUID UUIDWithString:@(kTestUUIDHeartRate.c_str())] :
|
| + [NSData dataWithBytes:(unsigned char[]){2} length:1],
|
| + [CBUUID UUIDWithString:@(kTestUUIDImmediateAlert.c_str())] :
|
| + [NSData dataWithBytes:(unsigned char[]){0} length:1]
|
| + };
|
| break;
|
| case 3:
|
| identifier = kTestPeripheralUUID1.c_str();
|
| name = @(kTestDeviceNameEmpty.c_str());
|
| uuids = nil;
|
| + service_data = nil;
|
| break;
|
| case 4:
|
| identifier = kTestPeripheralUUID2.c_str();
|
| name = @(kTestDeviceNameEmpty.c_str());
|
| uuids = nil;
|
| + service_data = nil;
|
| break;
|
| case 5:
|
| identifier = kTestPeripheralUUID1.c_str();
|
| name = nil;
|
| uuids = nil;
|
| + service_data = nil;
|
| break;
|
| default:
|
| NOTREACHED() << "SimulateLowEnergyDevice not implemented for "
|
| @@ -177,15 +200,17 @@ BluetoothDevice* BluetoothTestMac::SimulateLowEnergyDevice(int device_ordinal) {
|
| identifier = nil;
|
| name = nil;
|
| uuids = nil;
|
| + service_data = nil;
|
| }
|
| scoped_nsobject<MockCBPeripheral> mock_peripheral([[MockCBPeripheral alloc]
|
| initWithUTF8StringIdentifier:identifier
|
| name:name]);
|
| mock_peripheral.get().bluetoothTestMac = this;
|
| - [central_manager_delegate centralManager:central_manager
|
| - didDiscoverPeripheral:mock_peripheral.get().peripheral
|
| - advertisementData:CreateAdvertisementData(name, uuids)
|
| - RSSI:@(0)];
|
| + [central_manager_delegate
|
| + centralManager:central_manager
|
| + didDiscoverPeripheral:mock_peripheral.get().peripheral
|
| + advertisementData:CreateAdvertisementData(name, uuids, service_data)
|
| + RSSI:@(0)];
|
| return observer.last_device();
|
| }
|
|
|
|
|