| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 4464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4475 } | 4475 } |
| 4476 adapter_->Shutdown(); | 4476 adapter_->Shutdown(); |
| 4477 adapter_bluez->OnStopDiscoveryError(GetDiscoveryErrorCallback(), "", ""); | 4477 adapter_bluez->OnStopDiscoveryError(GetDiscoveryErrorCallback(), "", ""); |
| 4478 | 4478 |
| 4479 // 1 error reported to RemoveDiscoverySession because of OnStopDiscoveryError, | 4479 // 1 error reported to RemoveDiscoverySession because of OnStopDiscoveryError, |
| 4480 // and kNumberOfDiscoverySessions errors queued with AddDiscoverySession. | 4480 // and kNumberOfDiscoverySessions errors queued with AddDiscoverySession. |
| 4481 EXPECT_EQ(0, callback_count_); | 4481 EXPECT_EQ(0, callback_count_); |
| 4482 EXPECT_EQ(1 + kNumberOfDiscoverySessions, error_callback_count_); | 4482 EXPECT_EQ(1 + kNumberOfDiscoverySessions, error_callback_count_); |
| 4483 } | 4483 } |
| 4484 | 4484 |
| 4485 TEST_F(BluetoothBlueZTest, ServiceDataChanged) { | |
| 4486 // Simulate a change of service data of a device. | |
| 4487 GetAdapter(); | |
| 4488 | |
| 4489 BluetoothDevice* device = adapter_->GetDevice( | |
| 4490 bluez::FakeBluetoothDeviceClient::kPairedDeviceAddress); | |
| 4491 | |
| 4492 // Install an observer; expect the DeviceChanged method to be called | |
| 4493 // when we change the service data. | |
| 4494 TestBluetoothAdapterObserver observer(adapter_); | |
| 4495 | |
| 4496 bluez::FakeBluetoothDeviceClient::Properties* properties = | |
| 4497 fake_bluetooth_device_client_->GetProperties(dbus::ObjectPath( | |
| 4498 bluez::FakeBluetoothDeviceClient::kPairedDevicePath)); | |
| 4499 | |
| 4500 properties->service_data.set_valid(true); | |
| 4501 | |
| 4502 // Check that ServiceDataChanged is correctly invoke. | |
| 4503 properties->service_data.ReplaceValue({{kGapUuid, {1, 2, 3}}}); | |
| 4504 EXPECT_EQ(1, observer.device_changed_count()); | |
| 4505 EXPECT_EQ(device, observer.last_device()); | |
| 4506 EXPECT_EQ( | |
| 4507 BluetoothDevice::ServiceDataMap({{BluetoothUUID(kGapUuid), {1, 2, 3}}}), | |
| 4508 device->GetServiceData()); | |
| 4509 EXPECT_EQ(BluetoothDevice::UUIDSet({BluetoothUUID(kGapUuid)}), | |
| 4510 device->GetServiceDataUUIDs()); | |
| 4511 EXPECT_EQ(std::vector<uint8_t>({1, 2, 3}), | |
| 4512 *(device->GetServiceDataForUUID(BluetoothUUID(kGapUuid)))); | |
| 4513 | |
| 4514 // Check that we can update service data with same uuid / add more uuid. | |
| 4515 properties->service_data.ReplaceValue( | |
| 4516 {{kGapUuid, {3, 2, 1}}, {kGattUuid, {1}}}); | |
| 4517 EXPECT_EQ(2, observer.device_changed_count()); | |
| 4518 EXPECT_EQ(device, observer.last_device()); | |
| 4519 | |
| 4520 EXPECT_EQ( | |
| 4521 BluetoothDevice::ServiceDataMap({{BluetoothUUID(kGapUuid), {3, 2, 1}}, | |
| 4522 {BluetoothUUID(kGattUuid), {1}}}), | |
| 4523 device->GetServiceData()); | |
| 4524 EXPECT_EQ(BluetoothDevice::UUIDSet( | |
| 4525 {BluetoothUUID(kGapUuid), BluetoothUUID(kGattUuid)}), | |
| 4526 device->GetServiceDataUUIDs()); | |
| 4527 EXPECT_EQ(std::vector<uint8_t>({3, 2, 1}), | |
| 4528 *(device->GetServiceDataForUUID(BluetoothUUID(kGapUuid)))); | |
| 4529 EXPECT_EQ(std::vector<uint8_t>({1}), | |
| 4530 *(device->GetServiceDataForUUID(BluetoothUUID(kGattUuid)))); | |
| 4531 | |
| 4532 // Check that we can remove uuid / change uuid with same data. | |
| 4533 properties->service_data.ReplaceValue({{kPnpUuid, {3, 2, 1}}}); | |
| 4534 EXPECT_EQ(3, observer.device_changed_count()); | |
| 4535 EXPECT_EQ(device, observer.last_device()); | |
| 4536 | |
| 4537 EXPECT_EQ( | |
| 4538 BluetoothDevice::ServiceDataMap({{BluetoothUUID(kPnpUuid), {3, 2, 1}}}), | |
| 4539 device->GetServiceData()); | |
| 4540 EXPECT_EQ(BluetoothDevice::UUIDSet({BluetoothUUID(kPnpUuid)}), | |
| 4541 device->GetServiceDataUUIDs()); | |
| 4542 EXPECT_EQ(std::vector<uint8_t>({3, 2, 1}), | |
| 4543 *(device->GetServiceDataForUUID(BluetoothUUID(kPnpUuid)))); | |
| 4544 EXPECT_EQ(nullptr, device->GetServiceDataForUUID(BluetoothUUID(kGapUuid))); | |
| 4545 EXPECT_EQ(nullptr, device->GetServiceDataForUUID(BluetoothUUID(kGattUuid))); | |
| 4546 } | |
| 4547 | |
| 4548 TEST_F(BluetoothBlueZTest, ManufacturerDataChanged) { | 4485 TEST_F(BluetoothBlueZTest, ManufacturerDataChanged) { |
| 4549 const BluetoothDevice::ManufacturerId kManufacturerId1 = 0x1234; | 4486 const BluetoothDevice::ManufacturerId kManufacturerId1 = 0x1234; |
| 4550 const BluetoothDevice::ManufacturerId kManufacturerId2 = 0x2345; | 4487 const BluetoothDevice::ManufacturerId kManufacturerId2 = 0x2345; |
| 4551 const BluetoothDevice::ManufacturerId kManufacturerId3 = 0x3456; | 4488 const BluetoothDevice::ManufacturerId kManufacturerId3 = 0x3456; |
| 4552 | 4489 |
| 4553 // Simulate a change of manufacturer data of a device. | 4490 // Simulate a change of manufacturer data of a device. |
| 4554 GetAdapter(); | 4491 GetAdapter(); |
| 4555 | 4492 |
| 4556 BluetoothDevice* device = adapter_->GetDevice( | 4493 BluetoothDevice* device = adapter_->GetDevice( |
| 4557 bluez::FakeBluetoothDeviceClient::kPairedDeviceAddress); | 4494 bluez::FakeBluetoothDeviceClient::kPairedDeviceAddress); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4637 | 4574 |
| 4638 // Check that we can update advertising data flags. | 4575 // Check that we can update advertising data flags. |
| 4639 properties->advertising_data_flags.ReplaceValue(std::vector<uint8_t>({0x23})); | 4576 properties->advertising_data_flags.ReplaceValue(std::vector<uint8_t>({0x23})); |
| 4640 EXPECT_EQ(2, observer.device_changed_count()); | 4577 EXPECT_EQ(2, observer.device_changed_count()); |
| 4641 EXPECT_EQ(device, observer.last_device()); | 4578 EXPECT_EQ(device, observer.last_device()); |
| 4642 EXPECT_TRUE(device->GetAdvertisingDataFlags().has_value()); | 4579 EXPECT_TRUE(device->GetAdvertisingDataFlags().has_value()); |
| 4643 EXPECT_EQ(0x23u, device->GetAdvertisingDataFlags().value()); | 4580 EXPECT_EQ(0x23u, device->GetAdvertisingDataFlags().value()); |
| 4644 } | 4581 } |
| 4645 | 4582 |
| 4646 } // namespace bluez | 4583 } // namespace bluez |
| OLD | NEW |