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

Side by Side Diff: device/bluetooth/test/bluetooth_test_mac.mm

Issue 2854733002: bluetooth: macOS: BluetoothLowEnergyDeviceMac::IsConnectable() not implemented (Closed)
Patch Set: Adding unittests and implementation Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "device/bluetooth/test/bluetooth_test_mac.h" 5 #include "device/bluetooth/test/bluetooth_test_mac.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/mac/foundation_util.h" 9 #include "base/mac/foundation_util.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 DISALLOW_COPY_AND_ASSIGN(ScopedMockCentralManager); 46 DISALLOW_COPY_AND_ASSIGN(ScopedMockCentralManager);
47 }; 47 };
48 48
49 namespace { 49 namespace {
50 50
51 scoped_nsobject<NSDictionary> CreateAdvertisementData( 51 scoped_nsobject<NSDictionary> CreateAdvertisementData(
52 NSString* name, 52 NSString* name,
53 NSArray* uuids, 53 NSArray* uuids,
54 NSDictionary* service_data, 54 NSDictionary* service_data,
55 NSNumber* tx_power) { 55 NSNumber* tx_power,
56 BOOL connectable) {
56 NSMutableDictionary* advertisement_data( 57 NSMutableDictionary* advertisement_data(
57 [NSMutableDictionary dictionaryWithDictionary:@{ 58 [NSMutableDictionary dictionaryWithDictionary:@{
58 CBAdvertisementDataIsConnectable : @(YES) 59 CBAdvertisementDataIsConnectable : @(connectable)
59 }]); 60 }]);
60 61
61 if (name) { 62 if (name) {
62 [advertisement_data setObject:name forKey:CBAdvertisementDataLocalNameKey]; 63 [advertisement_data setObject:name forKey:CBAdvertisementDataLocalNameKey];
63 } 64 }
64 65
65 if (uuids) { 66 if (uuids) {
66 [advertisement_data setObject:uuids 67 [advertisement_data setObject:uuids
67 forKey:CBAdvertisementDataServiceUUIDsKey]; 68 forKey:CBAdvertisementDataServiceUUIDsKey];
68 } 69 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 CBCentralManager* central_manager = adapter_mac_->low_energy_central_manager_; 146 CBCentralManager* central_manager = adapter_mac_->low_energy_central_manager_;
146 BluetoothLowEnergyCentralManagerDelegate* central_manager_delegate = 147 BluetoothLowEnergyCentralManagerDelegate* central_manager_delegate =
147 adapter_mac_->low_energy_central_manager_delegate_; 148 adapter_mac_->low_energy_central_manager_delegate_;
148 149
149 const char* identifier; 150 const char* identifier;
150 NSString* name; 151 NSString* name;
151 NSArray* uuids; 152 NSArray* uuids;
152 NSNumber* rssi; 153 NSNumber* rssi;
153 NSDictionary* service_data; 154 NSDictionary* service_data;
154 NSNumber* tx_power; 155 NSNumber* tx_power;
156 BOOL connectable;
155 157
156 switch (device_ordinal) { 158 switch (device_ordinal) {
157 case 1: 159 case 1:
158 identifier = kTestPeripheralUUID1.c_str(); 160 identifier = kTestPeripheralUUID1.c_str();
159 name = @(kTestDeviceName.c_str()); 161 name = @(kTestDeviceName.c_str());
160 rssi = @(static_cast<int8_t>(TestRSSI::LOWEST)); 162 rssi = @(static_cast<int8_t>(TestRSSI::LOWEST));
161 uuids = @[ 163 uuids = @[
162 [CBUUID UUIDWithString:@(kTestUUIDGenericAccess.c_str())], 164 [CBUUID UUIDWithString:@(kTestUUIDGenericAccess.c_str())],
163 [CBUUID UUIDWithString:@(kTestUUIDGenericAttribute.c_str())] 165 [CBUUID UUIDWithString:@(kTestUUIDGenericAttribute.c_str())]
164 ]; 166 ];
165 service_data = @{ 167 service_data = @{
166 [CBUUID UUIDWithString:@(kTestUUIDHeartRate.c_str())] : 168 [CBUUID UUIDWithString:@(kTestUUIDHeartRate.c_str())] :
167 [NSData dataWithBytes:(unsigned char[]){1} length:1] 169 [NSData dataWithBytes:(unsigned char[]){1} length:1]
168 }; 170 };
169 tx_power = @(static_cast<int8_t>(TestTxPower::LOWEST)); 171 tx_power = @(static_cast<int8_t>(TestTxPower::LOWEST));
172 connectable = YES;
170 break; 173 break;
171 case 2: 174 case 2:
172 identifier = kTestPeripheralUUID1.c_str(); 175 identifier = kTestPeripheralUUID1.c_str();
173 name = @(kTestDeviceName.c_str()); 176 name = @(kTestDeviceName.c_str());
174 rssi = @(static_cast<int8_t>(TestRSSI::LOWER)); 177 rssi = @(static_cast<int8_t>(TestRSSI::LOWER));
175 uuids = @[ 178 uuids = @[
176 [CBUUID UUIDWithString:@(kTestUUIDImmediateAlert.c_str())], 179 [CBUUID UUIDWithString:@(kTestUUIDImmediateAlert.c_str())],
177 [CBUUID UUIDWithString:@(kTestUUIDLinkLoss.c_str())] 180 [CBUUID UUIDWithString:@(kTestUUIDLinkLoss.c_str())]
178 ]; 181 ];
179 service_data = @{ 182 service_data = @{
180 [CBUUID UUIDWithString:@(kTestUUIDHeartRate.c_str())] : 183 [CBUUID UUIDWithString:@(kTestUUIDHeartRate.c_str())] :
181 [NSData dataWithBytes:(unsigned char[]){} length:0], 184 [NSData dataWithBytes:(unsigned char[]){} length:0],
182 [CBUUID UUIDWithString:@(kTestUUIDImmediateAlert.c_str())] : 185 [CBUUID UUIDWithString:@(kTestUUIDImmediateAlert.c_str())] :
183 [NSData dataWithBytes:(unsigned char[]){0, 2} length:2] 186 [NSData dataWithBytes:(unsigned char[]){0, 2} length:2]
184 }; 187 };
185 tx_power = @(static_cast<int8_t>(TestTxPower::LOWER)); 188 tx_power = @(static_cast<int8_t>(TestTxPower::LOWER));
189 connectable = YES;
186 break; 190 break;
187 case 3: 191 case 3:
188 identifier = kTestPeripheralUUID1.c_str(); 192 identifier = kTestPeripheralUUID1.c_str();
189 name = @(kTestDeviceNameEmpty.c_str()); 193 name = @(kTestDeviceNameEmpty.c_str());
190 rssi = @(static_cast<int8_t>(TestRSSI::LOW)); 194 rssi = @(static_cast<int8_t>(TestRSSI::LOW));
191 uuids = nil; 195 uuids = nil;
192 service_data = nil; 196 service_data = nil;
193 tx_power = nil; 197 tx_power = nil;
198 connectable = YES;
194 break; 199 break;
195 case 4: 200 case 4:
196 identifier = kTestPeripheralUUID2.c_str(); 201 identifier = kTestPeripheralUUID2.c_str();
197 name = @(kTestDeviceNameEmpty.c_str()); 202 name = @(kTestDeviceNameEmpty.c_str());
198 rssi = @(static_cast<int8_t>(TestRSSI::MEDIUM)); 203 rssi = @(static_cast<int8_t>(TestRSSI::MEDIUM));
199 uuids = nil; 204 uuids = nil;
200 service_data = nil; 205 service_data = nil;
201 tx_power = nil; 206 tx_power = nil;
207 connectable = YES;
202 break; 208 break;
203 case 5: 209 case 5:
204 identifier = kTestPeripheralUUID1.c_str(); 210 identifier = kTestPeripheralUUID1.c_str();
205 name = nil; 211 name = nil;
206 rssi = @(static_cast<int8_t>(TestRSSI::HIGH)); 212 rssi = @(static_cast<int8_t>(TestRSSI::HIGH));
207 uuids = nil; 213 uuids = nil;
208 service_data = nil; 214 service_data = nil;
209 tx_power = nil; 215 tx_power = nil;
216 connectable = YES;
217 break;
218 case 6:
219 identifier = kTestPeripheralUUID1.c_str();
220 name = nil;
221 rssi = @(static_cast<int8_t>(TestRSSI::HIGH));
222 uuids = nil;
223 service_data = nil;
224 tx_power = nil;
225 connectable = NO;
210 break; 226 break;
211 default: 227 default:
212 NOTREACHED() << "SimulateLowEnergyDevice not implemented for " 228 NOTREACHED() << "SimulateLowEnergyDevice not implemented for "
213 << device_ordinal; 229 << device_ordinal;
214 identifier = nil; 230 identifier = nil;
215 name = nil; 231 name = nil;
216 rssi = nil; 232 rssi = nil;
217 uuids = nil; 233 uuids = nil;
218 service_data = nil; 234 service_data = nil;
219 tx_power = nil; 235 tx_power = nil;
236 connectable = NO;
220 } 237 }
221 scoped_nsobject<MockCBPeripheral> mock_peripheral([[MockCBPeripheral alloc] 238 scoped_nsobject<MockCBPeripheral> mock_peripheral([[MockCBPeripheral alloc]
222 initWithUTF8StringIdentifier:identifier 239 initWithUTF8StringIdentifier:identifier
223 name:name]); 240 name:name]);
224 mock_peripheral.get().bluetoothTestMac = this; 241 mock_peripheral.get().bluetoothTestMac = this;
225 [central_manager_delegate 242 [central_manager_delegate
226 centralManager:central_manager 243 centralManager:central_manager
227 didDiscoverPeripheral:mock_peripheral.get().peripheral 244 didDiscoverPeripheral:mock_peripheral.get().peripheral
228 advertisementData:CreateAdvertisementData(name, uuids, service_data, 245 advertisementData:CreateAdvertisementData(name, uuids, service_data,
229 tx_power) 246 tx_power, connectable)
230 RSSI:rssi]; 247 RSSI:rssi];
231 return observer.last_device(); 248 return observer.last_device();
232 } 249 }
233 250
234 void BluetoothTestMac::SimulateGattConnection(BluetoothDevice* device) { 251 void BluetoothTestMac::SimulateGattConnection(BluetoothDevice* device) {
235 MockCBPeripheral* peripheral_mock = GetMockCBPeripheral(device); 252 MockCBPeripheral* peripheral_mock = GetMockCBPeripheral(device);
236 [peripheral_mock setState:CBPeripheralStateConnected]; 253 [peripheral_mock setState:CBPeripheralStateConnected];
237 CBCentralManager* centralManager = 254 CBCentralManager* centralManager =
238 ObjCCast<CBCentralManager>(mock_central_manager_->get()); 255 ObjCCast<CBCentralManager>(mock_central_manager_->get());
239 [centralManager.delegate centralManager:centralManager 256 [centralManager.delegate centralManager:centralManager
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 // crypto::SHA256HashString(input_str, raw, sizeof(raw)); 678 // crypto::SHA256HashString(input_str, raw, sizeof(raw));
662 // if (base::HexEncode(raw, sizeof(raw)) == target) { 679 // if (base::HexEncode(raw, sizeof(raw)) == target) {
663 // return input_str; 680 // return input_str;
664 // } 681 // }
665 // ++input[0]; 682 // ++input[0];
666 // } 683 // }
667 // return ""; 684 // return "";
668 // } 685 // }
669 686
670 } // namespace device 687 } // namespace device
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698