OLD | NEW |
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/test_bluetooth_adapter_observer.h" | 5 #include "device/bluetooth/test/test_bluetooth_adapter_observer.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
11 #include "device/bluetooth/bluetooth_gatt_characteristic.h" | 11 #include "device/bluetooth/bluetooth_remote_gatt_characteristic.h" |
12 #include "device/bluetooth/bluetooth_gatt_descriptor.h" | 12 #include "device/bluetooth/bluetooth_remote_gatt_descriptor.h" |
13 #include "device/bluetooth/bluetooth_gatt_service.h" | 13 #include "device/bluetooth/bluetooth_remote_gatt_service.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
15 | 15 |
16 namespace device { | 16 namespace device { |
17 | 17 |
18 TestBluetoothAdapterObserver::TestBluetoothAdapterObserver( | 18 TestBluetoothAdapterObserver::TestBluetoothAdapterObserver( |
19 scoped_refptr<BluetoothAdapter> adapter) | 19 scoped_refptr<BluetoothAdapter> adapter) |
20 : adapter_(adapter) { | 20 : adapter_(adapter) { |
21 Reset(); | 21 Reset(); |
22 adapter_->AddObserver(this); | 22 adapter_->AddObserver(this); |
23 } | 23 } |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 ++device_removed_count_; | 153 ++device_removed_count_; |
154 // Can't save device, it may be freed | 154 // Can't save device, it may be freed |
155 last_device_address_ = device->GetAddress(); | 155 last_device_address_ = device->GetAddress(); |
156 | 156 |
157 QuitMessageLoop(); | 157 QuitMessageLoop(); |
158 } | 158 } |
159 | 159 |
160 void TestBluetoothAdapterObserver::GattServiceAdded( | 160 void TestBluetoothAdapterObserver::GattServiceAdded( |
161 BluetoothAdapter* adapter, | 161 BluetoothAdapter* adapter, |
162 BluetoothDevice* device, | 162 BluetoothDevice* device, |
163 BluetoothGattService* service) { | 163 BluetoothRemoteGattService* service) { |
164 ASSERT_EQ(adapter_.get(), adapter); | 164 ASSERT_EQ(adapter_.get(), adapter); |
165 ASSERT_EQ(service->GetDevice(), device); | 165 ASSERT_EQ(service->GetDevice(), device); |
166 | 166 |
167 ++gatt_service_added_count_; | 167 ++gatt_service_added_count_; |
168 last_gatt_service_id_ = service->GetIdentifier(); | 168 last_gatt_service_id_ = service->GetIdentifier(); |
169 last_gatt_service_uuid_ = service->GetUUID(); | 169 last_gatt_service_uuid_ = service->GetUUID(); |
170 | 170 |
171 EXPECT_FALSE(service->IsLocal()); | |
172 EXPECT_TRUE(service->IsPrimary()); | 171 EXPECT_TRUE(service->IsPrimary()); |
173 | 172 |
174 EXPECT_EQ(device->GetGattService(last_gatt_service_id_), service); | 173 EXPECT_EQ(device->GetGattService(last_gatt_service_id_), service); |
175 | 174 |
176 QuitMessageLoop(); | 175 QuitMessageLoop(); |
177 } | 176 } |
178 | 177 |
179 void TestBluetoothAdapterObserver::GattServiceRemoved( | 178 void TestBluetoothAdapterObserver::GattServiceRemoved( |
180 BluetoothAdapter* adapter, | 179 BluetoothAdapter* adapter, |
181 BluetoothDevice* device, | 180 BluetoothDevice* device, |
182 BluetoothGattService* service) { | 181 BluetoothRemoteGattService* service) { |
183 ASSERT_EQ(adapter_.get(), adapter); | 182 ASSERT_EQ(adapter_.get(), adapter); |
184 ASSERT_EQ(service->GetDevice(), device); | 183 ASSERT_EQ(service->GetDevice(), device); |
185 | 184 |
186 ++gatt_service_removed_count_; | 185 ++gatt_service_removed_count_; |
187 last_gatt_service_id_ = service->GetIdentifier(); | 186 last_gatt_service_id_ = service->GetIdentifier(); |
188 last_gatt_service_uuid_ = service->GetUUID(); | 187 last_gatt_service_uuid_ = service->GetUUID(); |
189 | 188 |
190 EXPECT_FALSE(service->IsLocal()); | |
191 EXPECT_TRUE(service->IsPrimary()); | 189 EXPECT_TRUE(service->IsPrimary()); |
192 | 190 |
193 // The device should return NULL for this service. | 191 // The device should return NULL for this service. |
194 EXPECT_FALSE(device->GetGattService(last_gatt_service_id_)); | 192 EXPECT_FALSE(device->GetGattService(last_gatt_service_id_)); |
195 | 193 |
196 QuitMessageLoop(); | 194 QuitMessageLoop(); |
197 } | 195 } |
198 | 196 |
199 void TestBluetoothAdapterObserver::GattServicesDiscovered( | 197 void TestBluetoothAdapterObserver::GattServicesDiscovered( |
200 BluetoothAdapter* adapter, | 198 BluetoothAdapter* adapter, |
201 BluetoothDevice* device) { | 199 BluetoothDevice* device) { |
202 ASSERT_EQ(adapter_.get(), adapter); | 200 ASSERT_EQ(adapter_.get(), adapter); |
203 | 201 |
204 ++gatt_services_discovered_count_; | 202 ++gatt_services_discovered_count_; |
205 last_device_ = device; | 203 last_device_ = device; |
206 last_device_address_ = device->GetAddress(); | 204 last_device_address_ = device->GetAddress(); |
207 | 205 |
208 QuitMessageLoop(); | 206 QuitMessageLoop(); |
209 } | 207 } |
210 | 208 |
211 void TestBluetoothAdapterObserver::GattDiscoveryCompleteForService( | 209 void TestBluetoothAdapterObserver::GattDiscoveryCompleteForService( |
212 BluetoothAdapter* adapter, | 210 BluetoothAdapter* adapter, |
213 BluetoothGattService* service) { | 211 BluetoothRemoteGattService* service) { |
214 ASSERT_EQ(adapter_.get(), adapter); | 212 ASSERT_EQ(adapter_.get(), adapter); |
215 ++gatt_discovery_complete_count_; | 213 ++gatt_discovery_complete_count_; |
216 | 214 |
217 QuitMessageLoop(); | 215 QuitMessageLoop(); |
218 } | 216 } |
219 | 217 |
220 void TestBluetoothAdapterObserver::GattServiceChanged( | 218 void TestBluetoothAdapterObserver::GattServiceChanged( |
221 BluetoothAdapter* adapter, | 219 BluetoothAdapter* adapter, |
222 BluetoothGattService* service) { | 220 BluetoothRemoteGattService* service) { |
223 ASSERT_EQ(adapter_.get(), adapter); | 221 ASSERT_EQ(adapter_.get(), adapter); |
224 ++gatt_service_changed_count_; | 222 ++gatt_service_changed_count_; |
225 | 223 |
226 QuitMessageLoop(); | 224 QuitMessageLoop(); |
227 } | 225 } |
228 | 226 |
229 void TestBluetoothAdapterObserver::GattCharacteristicAdded( | 227 void TestBluetoothAdapterObserver::GattCharacteristicAdded( |
230 BluetoothAdapter* adapter, | 228 BluetoothAdapter* adapter, |
231 BluetoothGattCharacteristic* characteristic) { | 229 BluetoothRemoteGattCharacteristic* characteristic) { |
232 ASSERT_EQ(adapter_.get(), adapter); | 230 ASSERT_EQ(adapter_.get(), adapter); |
233 | 231 |
234 ++gatt_characteristic_added_count_; | 232 ++gatt_characteristic_added_count_; |
235 last_gatt_characteristic_id_ = characteristic->GetIdentifier(); | 233 last_gatt_characteristic_id_ = characteristic->GetIdentifier(); |
236 last_gatt_characteristic_uuid_ = characteristic->GetUUID(); | 234 last_gatt_characteristic_uuid_ = characteristic->GetUUID(); |
237 | 235 |
238 ASSERT_TRUE(characteristic->GetService()); | 236 ASSERT_TRUE(characteristic->GetService()); |
239 EXPECT_EQ(characteristic->GetService()->GetCharacteristic( | 237 EXPECT_EQ(characteristic->GetService()->GetCharacteristic( |
240 last_gatt_characteristic_id_), | 238 last_gatt_characteristic_id_), |
241 characteristic); | 239 characteristic); |
242 | 240 |
243 QuitMessageLoop(); | 241 QuitMessageLoop(); |
244 } | 242 } |
245 | 243 |
246 void TestBluetoothAdapterObserver::GattCharacteristicRemoved( | 244 void TestBluetoothAdapterObserver::GattCharacteristicRemoved( |
247 BluetoothAdapter* adapter, | 245 BluetoothAdapter* adapter, |
248 BluetoothGattCharacteristic* characteristic) { | 246 BluetoothRemoteGattCharacteristic* characteristic) { |
249 ASSERT_EQ(adapter_.get(), adapter); | 247 ASSERT_EQ(adapter_.get(), adapter); |
250 | 248 |
251 ++gatt_characteristic_removed_count_; | 249 ++gatt_characteristic_removed_count_; |
252 last_gatt_characteristic_id_ = characteristic->GetIdentifier(); | 250 last_gatt_characteristic_id_ = characteristic->GetIdentifier(); |
253 last_gatt_characteristic_uuid_ = characteristic->GetUUID(); | 251 last_gatt_characteristic_uuid_ = characteristic->GetUUID(); |
254 | 252 |
255 // The service should return NULL for this characteristic. | 253 // The service should return NULL for this characteristic. |
256 ASSERT_TRUE(characteristic->GetService()); | 254 ASSERT_TRUE(characteristic->GetService()); |
257 EXPECT_FALSE(characteristic->GetService()->GetCharacteristic( | 255 EXPECT_FALSE(characteristic->GetService()->GetCharacteristic( |
258 last_gatt_characteristic_id_)); | 256 last_gatt_characteristic_id_)); |
259 | 257 |
260 QuitMessageLoop(); | 258 QuitMessageLoop(); |
261 } | 259 } |
262 | 260 |
263 void TestBluetoothAdapterObserver::GattDescriptorAdded( | 261 void TestBluetoothAdapterObserver::GattDescriptorAdded( |
264 BluetoothAdapter* adapter, | 262 BluetoothAdapter* adapter, |
265 BluetoothGattDescriptor* descriptor) { | 263 BluetoothRemoteGattDescriptor* descriptor) { |
266 ASSERT_EQ(adapter_.get(), adapter); | 264 ASSERT_EQ(adapter_.get(), adapter); |
267 | 265 |
268 ++gatt_descriptor_added_count_; | 266 ++gatt_descriptor_added_count_; |
269 last_gatt_descriptor_id_ = descriptor->GetIdentifier(); | 267 last_gatt_descriptor_id_ = descriptor->GetIdentifier(); |
270 last_gatt_descriptor_uuid_ = descriptor->GetUUID(); | 268 last_gatt_descriptor_uuid_ = descriptor->GetUUID(); |
271 | 269 |
272 ASSERT_TRUE(descriptor->GetCharacteristic()); | 270 ASSERT_TRUE(descriptor->GetCharacteristic()); |
273 EXPECT_EQ( | 271 EXPECT_EQ( |
274 descriptor->GetCharacteristic()->GetDescriptor(last_gatt_descriptor_id_), | 272 descriptor->GetCharacteristic()->GetDescriptor(last_gatt_descriptor_id_), |
275 descriptor); | 273 descriptor); |
276 | 274 |
277 QuitMessageLoop(); | 275 QuitMessageLoop(); |
278 } | 276 } |
279 | 277 |
280 void TestBluetoothAdapterObserver::GattDescriptorRemoved( | 278 void TestBluetoothAdapterObserver::GattDescriptorRemoved( |
281 BluetoothAdapter* adapter, | 279 BluetoothAdapter* adapter, |
282 BluetoothGattDescriptor* descriptor) { | 280 BluetoothRemoteGattDescriptor* descriptor) { |
283 ASSERT_EQ(adapter_.get(), adapter); | 281 ASSERT_EQ(adapter_.get(), adapter); |
284 | 282 |
285 ++gatt_descriptor_removed_count_; | 283 ++gatt_descriptor_removed_count_; |
286 last_gatt_descriptor_id_ = descriptor->GetIdentifier(); | 284 last_gatt_descriptor_id_ = descriptor->GetIdentifier(); |
287 last_gatt_descriptor_uuid_ = descriptor->GetUUID(); | 285 last_gatt_descriptor_uuid_ = descriptor->GetUUID(); |
288 | 286 |
289 // The characteristic should return NULL for this descriptor.. | 287 // The characteristic should return NULL for this descriptor.. |
290 ASSERT_TRUE(descriptor->GetCharacteristic()); | 288 ASSERT_TRUE(descriptor->GetCharacteristic()); |
291 EXPECT_FALSE( | 289 EXPECT_FALSE( |
292 descriptor->GetCharacteristic()->GetDescriptor(last_gatt_descriptor_id_)); | 290 descriptor->GetCharacteristic()->GetDescriptor(last_gatt_descriptor_id_)); |
293 | 291 |
294 QuitMessageLoop(); | 292 QuitMessageLoop(); |
295 } | 293 } |
296 | 294 |
297 void TestBluetoothAdapterObserver::GattCharacteristicValueChanged( | 295 void TestBluetoothAdapterObserver::GattCharacteristicValueChanged( |
298 BluetoothAdapter* adapter, | 296 BluetoothAdapter* adapter, |
299 BluetoothGattCharacteristic* characteristic, | 297 BluetoothRemoteGattCharacteristic* characteristic, |
300 const std::vector<uint8_t>& value) { | 298 const std::vector<uint8_t>& value) { |
301 ASSERT_EQ(adapter_.get(), adapter); | 299 ASSERT_EQ(adapter_.get(), adapter); |
302 | 300 |
303 ++gatt_characteristic_value_changed_count_; | 301 ++gatt_characteristic_value_changed_count_; |
304 last_gatt_characteristic_id_ = characteristic->GetIdentifier(); | 302 last_gatt_characteristic_id_ = characteristic->GetIdentifier(); |
305 last_gatt_characteristic_uuid_ = characteristic->GetUUID(); | 303 last_gatt_characteristic_uuid_ = characteristic->GetUUID(); |
306 last_changed_characteristic_value_ = value; | 304 last_changed_characteristic_value_ = value; |
307 | 305 |
308 ASSERT_TRUE(characteristic->GetService()); | 306 ASSERT_TRUE(characteristic->GetService()); |
309 EXPECT_EQ(characteristic->GetService()->GetCharacteristic( | 307 EXPECT_EQ(characteristic->GetService()->GetCharacteristic( |
310 last_gatt_characteristic_id_), | 308 last_gatt_characteristic_id_), |
311 characteristic); | 309 characteristic); |
312 | 310 |
313 QuitMessageLoop(); | 311 QuitMessageLoop(); |
314 } | 312 } |
315 | 313 |
316 void TestBluetoothAdapterObserver::GattDescriptorValueChanged( | 314 void TestBluetoothAdapterObserver::GattDescriptorValueChanged( |
317 BluetoothAdapter* adapter, | 315 BluetoothAdapter* adapter, |
318 BluetoothGattDescriptor* descriptor, | 316 BluetoothRemoteGattDescriptor* descriptor, |
319 const std::vector<uint8_t>& value) { | 317 const std::vector<uint8_t>& value) { |
320 ASSERT_EQ(adapter_.get(), adapter); | 318 ASSERT_EQ(adapter_.get(), adapter); |
321 | 319 |
322 ++gatt_descriptor_value_changed_count_; | 320 ++gatt_descriptor_value_changed_count_; |
323 last_gatt_descriptor_id_ = descriptor->GetIdentifier(); | 321 last_gatt_descriptor_id_ = descriptor->GetIdentifier(); |
324 last_gatt_descriptor_uuid_ = descriptor->GetUUID(); | 322 last_gatt_descriptor_uuid_ = descriptor->GetUUID(); |
325 last_changed_descriptor_value_ = value; | 323 last_changed_descriptor_value_ = value; |
326 | 324 |
327 ASSERT_TRUE(descriptor->GetCharacteristic()); | 325 ASSERT_TRUE(descriptor->GetCharacteristic()); |
328 EXPECT_EQ( | 326 EXPECT_EQ( |
329 descriptor->GetCharacteristic()->GetDescriptor(last_gatt_descriptor_id_), | 327 descriptor->GetCharacteristic()->GetDescriptor(last_gatt_descriptor_id_), |
330 descriptor); | 328 descriptor); |
331 | 329 |
332 QuitMessageLoop(); | 330 QuitMessageLoop(); |
333 } | 331 } |
334 | 332 |
335 void TestBluetoothAdapterObserver::QuitMessageLoop() { | 333 void TestBluetoothAdapterObserver::QuitMessageLoop() { |
336 if (base::MessageLoop::current() && | 334 if (base::MessageLoop::current() && |
337 base::MessageLoop::current()->is_running()) | 335 base::MessageLoop::current()->is_running()) |
338 base::MessageLoop::current()->QuitWhenIdle(); | 336 base::MessageLoop::current()->QuitWhenIdle(); |
339 } | 337 } |
340 | 338 |
341 } // namespace device | 339 } // namespace device |
OLD | NEW |