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

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

Issue 2026193002: Preparing for characteristics discovery (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Same behavior than CoreBluetooth Created 4 years, 6 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/mock_bluetooth_cbperipheral_mac.h" 5 #include "device/bluetooth/test/mock_bluetooth_cbperipheral_mac.h"
6 6
7 #include "base/mac/foundation_util.h" 7 #include "base/mac/foundation_util.h"
8 #include "base/mac/scoped_nsobject.h" 8 #include "base/mac/scoped_nsobject.h"
9 #include "device/bluetooth/test/bluetooth_test_mac.h" 9 #include "device/bluetooth/test/bluetooth_test_mac.h"
10 #include "device/bluetooth/test/mock_bluetooth_cbservice_mac.h" 10 #include "device/bluetooth/test/mock_bluetooth_cbservice_mac.h"
(...skipping 27 matching lines...) Expand all
38 return [self initWithIdentifier:identifier name:nil]; 38 return [self initWithIdentifier:identifier name:nil];
39 } 39 }
40 40
41 - (instancetype)initWithIdentifier:(NSUUID*)identifier { 41 - (instancetype)initWithIdentifier:(NSUUID*)identifier {
42 return [self initWithIdentifier:identifier name:nil]; 42 return [self initWithIdentifier:identifier name:nil];
43 } 43 }
44 44
45 - (instancetype)initWithIdentifier:(NSUUID*)identifier name:(NSString*)name { 45 - (instancetype)initWithIdentifier:(NSUUID*)identifier name:(NSString*)name {
46 self = [super init]; 46 self = [super init];
47 if (self) { 47 if (self) {
48 _services.reset([[NSMutableArray alloc] init]);
49 _identifier.reset([identifier retain]); 48 _identifier.reset([identifier retain]);
50 if (name) { 49 if (name) {
51 _name.reset([name retain]); 50 _name.reset([name retain]);
52 } else { 51 } else {
53 _name.reset( 52 _name.reset(
54 [@(device::BluetoothTestBase::kTestDeviceName.c_str()) retain]); 53 [@(device::BluetoothTestBase::kTestDeviceName.c_str()) retain]);
55 } 54 }
56 _state = CBPeripheralStateDisconnected; 55 _state = CBPeripheralStateDisconnected;
57 } 56 }
58 return self; 57 return self;
(...skipping 10 matching lines...) Expand all
69 - (BOOL)isMemberOfClass:(Class)aClass { 68 - (BOOL)isMemberOfClass:(Class)aClass {
70 if (aClass == [CBPeripheral class] || 69 if (aClass == [CBPeripheral class] ||
71 [aClass isSubclassOfClass:[CBPeripheral class]]) { 70 [aClass isSubclassOfClass:[CBPeripheral class]]) {
72 return YES; 71 return YES;
73 } 72 }
74 return [super isKindOfClass:aClass]; 73 return [super isKindOfClass:aClass];
75 } 74 }
76 75
77 - (void)setState:(CBPeripheralState)state { 76 - (void)setState:(CBPeripheralState)state {
78 _state = state; 77 _state = state;
78 if (_state == CBPeripheralStateDisconnected) {
79 _services = nil;
80 }
79 } 81 }
80 82
81 - (void)discoverServices:(NSArray*)serviceUUIDs { 83 - (void)discoverServices:(NSArray*)serviceUUIDs {
82 if (_bluetoothTestMac) { 84 if (_bluetoothTestMac) {
83 _bluetoothTestMac->OnFakeBluetoothServiceDiscovery(); 85 _bluetoothTestMac->OnFakeBluetoothServiceDiscovery();
84 } 86 }
85 } 87 }
86 88
87 - (void)removeAllServices { 89 - (void)removeAllServices {
88 [_services.get() removeAllObjects]; 90 [_services.get() removeAllObjects];
89 } 91 }
90 92
91 - (void)addServices:(NSArray*)services { 93 - (void)addServices:(NSArray*)services {
94 if (!_services.get()) {
95 _services.reset([[NSMutableArray alloc] init]);
96 }
92 for (CBUUID* uuid in services) { 97 for (CBUUID* uuid in services) {
93 base::scoped_nsobject<MockCBService> service( 98 base::scoped_nsobject<MockCBService> service(
94 [[MockCBService alloc] initWithCBUUID:uuid primary:YES]); 99 [[MockCBService alloc] initWithCBUUID:uuid primary:YES]);
95 [_services.get() addObject:service.get().service]; 100 [_services.get() addObject:service.get().service];
96 } 101 }
97 } 102 }
98 103
99 - (void)didDiscoverWithError:(NSError*)error { 104 - (void)didDiscoverServicesWithError:(NSError*)error {
100 [_delegate peripheral:self.peripheral didDiscoverServices:error]; 105 [_delegate peripheral:self.peripheral didDiscoverServices:error];
101 } 106 }
102 107
103 - (void)removeService:(CBService*)service { 108 - (void)removeService:(CBService*)service {
104 base::scoped_nsobject<CBService> serviceToRemove(service, 109 base::scoped_nsobject<CBService> serviceToRemove(service,
105 base::scoped_policy::RETAIN); 110 base::scoped_policy::RETAIN);
106 DCHECK(serviceToRemove); 111 DCHECK(serviceToRemove);
107 [_services.get() removeObject:serviceToRemove]; 112 [_services.get() removeObject:serviceToRemove];
108 // -[CBPeripheralDelegate peripheral:didModifyServices:] is only available 113 // -[CBPeripheralDelegate peripheral:didModifyServices:] is only available
109 // with 10.9. It is safe to call this method (even if chrome is running on 114 // with 10.9. It is safe to call this method (even if chrome is running on
(...skipping 16 matching lines...) Expand all
126 131
127 - (NSArray*)services { 132 - (NSArray*)services {
128 return _services.get(); 133 return _services.get();
129 } 134 }
130 135
131 - (CBPeripheral*)peripheral { 136 - (CBPeripheral*)peripheral {
132 return ObjCCast<CBPeripheral>(self); 137 return ObjCCast<CBPeripheral>(self);
133 } 138 }
134 139
135 @end 140 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698