Index: device/bluetooth/bluetooth_device_unittest.cc |
diff --git a/device/bluetooth/bluetooth_device_unittest.cc b/device/bluetooth/bluetooth_device_unittest.cc |
index 3f1ba60a6d259df012064f0a1028eefbf3b77249..d8420c205730e415250f5549bd1781ff8847965b 100644 |
--- a/device/bluetooth/bluetooth_device_unittest.cc |
+++ b/device/bluetooth/bluetooth_device_unittest.cc |
@@ -133,15 +133,21 @@ TEST_F(BluetoothTest, AdvertisementData_Discovery) { |
InitWithFakeAdapter(); |
TestBluetoothAdapterObserver observer(adapter_); |
- // Start Discovery Session and receive Advertisement. No DeviceChanged event |
- // because the device is new. |
+ // Start Discovery Session and receive Advertisement, should |
+ // not notify of device changed because the device is new. |
+ // - GetInquiryRSSI: Should return the packet's rssi. |
// - GetUUIDs: Should return Advertised UUIDs. |
// - GetServiceData: Should return advertised Service Data. |
+ // - GetInquiryTxPower: Should return the packet's advertised Tx Power. |
StartLowEnergyDiscoverySession(); |
BluetoothDevice* device = SimulateLowEnergyDevice(1); |
EXPECT_EQ(0, observer.device_changed_count()); |
+ |
+ EXPECT_EQ(kTestRSSI1, device->GetInquiryRSSI().value()); |
+ |
EXPECT_EQ(2u, device->GetUUIDs().size()); |
+ |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDGenericAccess))); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
@@ -160,14 +166,20 @@ TEST_F(BluetoothTest, AdvertisementData_Discovery) { |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDHeartRate))); |
#endif // defined(OS_MACOSX) |
- // Receive Advertisement with no UUIDs or Service Data, should notify |
- // device changed. |
+ EXPECT_EQ(kTestTxPower1, device->GetInquiryTxPower().value()); |
+ |
+ // Receive Advertisement with no UUIDs, Service Data, or Tx Power, should |
+ // notify device changed. |
+ // - GetInquiryRSSI: Should return packet's rssi. |
// - GetUUIDs: Should return no UUIDs. |
// - GetServiceData: Should return empty map. |
+ // - GetInquiryTxPower: Should return nullopt because of no Tx Power. |
SimulateLowEnergyDevice(3); |
EXPECT_EQ(1, observer.device_changed_count()); |
- EXPECT_EQ(0u, device->GetUUIDs().size()); |
+ EXPECT_EQ(kTestRSSI3, device->GetInquiryRSSI().value()); |
+ |
+ EXPECT_EQ(0u, device->GetUUIDs().size()); |
#if defined(OS_MACOSX) |
// TODO(ortuno): Enable on Android once it supports Service Data. |
// http://crbug.com/639408 |
@@ -177,13 +189,21 @@ TEST_F(BluetoothTest, AdvertisementData_Discovery) { |
device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDHeartRate))); |
#endif // defined(OS_MACOSX) |
- // Receive Advertisement with different UUIDs and Service Data, should notify |
- // device changed. |
+ EXPECT_FALSE(!!device->GetInquiryTxPower()); |
Jeffrey Yasskin
2016/08/24 04:32:02
Does just EXPECT_FALSE(device->GetInquiryTxPower()
ortuno
2016/08/24 21:29:09
Done.
|
+ |
+ // Receive Advertisement with different UUIDs, Service Data, and Tx Power, |
+ // should notify device changed. |
+ // - GetInquiryRSSI: Should return last packet's rssi. |
// - GetUUIDs: Should return latest Advertised UUIDs. |
// - GetServiceData: Should return last advertised Service Data. |
+ // - GetInquiryTxPower: Should return last advertised Tx Power. |
SimulateLowEnergyDevice(2); |
EXPECT_EQ(2, observer.device_changed_count()); |
+ |
+ EXPECT_EQ(kTestRSSI2, device->GetInquiryRSSI().value()); |
+ |
EXPECT_EQ(2u, device->GetUUIDs().size()); |
+ |
EXPECT_FALSE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDGenericAccess))); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
@@ -207,15 +227,24 @@ TEST_F(BluetoothTest, AdvertisementData_Discovery) { |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDImmediateAlert))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_EQ(kTestTxPower2, device->GetInquiryTxPower().value()); |
+ |
// Stop discovery session, should notify of device changed. |
+ // - GetInquiryRSSI: Should return nullopt because we are no longer |
+ // discovering. |
// - GetUUIDs: Should not return any UUIDs. |
// - GetServiceData: Should return empty map. |
+ // - GetInquiryTxPower: Should return nullopt because we are no longer |
+ // discovering. |
discovery_sessions_[0]->Stop(GetCallback(Call::EXPECTED), |
GetErrorCallback(Call::NOT_EXPECTED)); |
ASSERT_FALSE(adapter_->IsDiscovering()); |
ASSERT_FALSE(discovery_sessions_[0]->IsActive()); |
EXPECT_EQ(3, observer.device_changed_count()); |
+ |
+ EXPECT_FALSE(!!device->GetInquiryRSSI()); |
+ |
EXPECT_EQ(0u, device->GetUUIDs().size()); |
#if defined(OS_MACOSX) |
@@ -229,15 +258,23 @@ TEST_F(BluetoothTest, AdvertisementData_Discovery) { |
BluetoothUUID(kTestUUIDImmediateAlert))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_FALSE(!!device->GetInquiryTxPower()); |
+ |
// Discover the device again with different UUIDs, should notify of device |
// changed. |
+ // - GetInquiryRSSI: Should return last packet's rssi. |
// - GetUUIDs: Should return only the latest Advertised UUIDs. |
// - GetServiceData: Should return last advertise Service Data. |
+ // - GetInquiryTxPower: Should return last advertised Tx Power. |
StartLowEnergyDiscoverySession(); |
device = SimulateLowEnergyDevice(1); |
EXPECT_EQ(4, observer.device_changed_count()); |
+ |
+ EXPECT_EQ(kTestRSSI1, device->GetInquiryRSSI().value()); |
+ |
EXPECT_EQ(2u, device->GetUUIDs().size()); |
+ |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDGenericAccess))); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
@@ -255,6 +292,8 @@ TEST_F(BluetoothTest, AdvertisementData_Discovery) { |
EXPECT_EQ(std::vector<uint8_t>({1}), |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDHeartRate))); |
#endif // defined(OS_MACOSX) |
+ |
+ EXPECT_EQ(kTestTxPower1, device->GetInquiryTxPower().value()); |
} |
#endif // defined(OS_ANDROID) || defined(OS_MACOSX) |
@@ -275,16 +314,23 @@ TEST_F(BluetoothTest, GetUUIDs_Connection) { |
GetErrorCallback(Call::NOT_EXPECTED)); |
// Connect to the device. |
+ // - GetInquiryRSSI: Should return nullopt because we are no longer |
+ // discovering. |
// - GetUUIDs: Should return no UUIDs because Services have not been |
// discovered. |
// - GetServiceData: Should return empty map because we are no longer |
// discovering. |
+ // - GetInquiryTxPower: Should return nullopt because we are no longer |
+ // discovering. |
device->CreateGattConnection(GetGattConnectionCallback(Call::EXPECTED), |
GetConnectErrorCallback(Call::NOT_EXPECTED)); |
SimulateGattConnection(device); |
ASSERT_TRUE(device->IsConnected()); |
+ EXPECT_FALSE(!!device->GetInquiryRSSI()); |
+ |
EXPECT_EQ(0u, device->GetUUIDs().size()); |
+ |
#if defined(OS_MACOSX) |
// TODO(ortuno): Enable on Android once it supports Service Data. |
// http://crbug.com/639408 |
@@ -292,16 +338,25 @@ TEST_F(BluetoothTest, GetUUIDs_Connection) { |
EXPECT_EQ(UUIDSet(), device->GetServiceDataUUIDs()); |
#endif // defined(OS_MACOSX) |
+ EXPECT_FALSE(!!device->GetInquiryTxPower()); |
+ |
observer.Reset(); |
// Discover services, should notify of device changed. |
+ // - GetInquiryRSSI: Should return nullopt because we are no longer |
+ // discovering. |
// - GetUUIDs: Should return the device's services' UUIDs. |
// - GetServiceData: Should return empty map. |
+ // - GetInquiryTxPower: Should return nullopt because we are no longer |
+ // discovering. |
std::vector<std::string> services; |
services.push_back(BluetoothUUID(kTestUUIDGenericAccess).canonical_value()); |
SimulateGattServicesDiscovered(device, services); |
EXPECT_EQ(1, observer.device_changed_count()); |
+ |
+ EXPECT_FALSE(!!device->GetInquiryRSSI()); |
+ |
EXPECT_EQ(1u, device->GetUUIDs().size()); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDGenericAccess))); |
@@ -313,6 +368,8 @@ TEST_F(BluetoothTest, GetUUIDs_Connection) { |
EXPECT_EQ(UUIDSet(), device->GetServiceDataUUIDs()); |
#endif // defined(OS_MACOSX) |
+ EXPECT_FALSE(!!device->GetInquiryTxPower()); |
+ |
#if defined(OS_MACOSX) |
// TODO(ortuno): Enable in Android and Windows. |
// Android and Windows don't yet support service changed events. |
@@ -322,43 +379,60 @@ TEST_F(BluetoothTest, GetUUIDs_Connection) { |
observer.Reset(); |
// Notify of services changed, should notify of device changed. |
+ // - GetInquiryRSSI: Should return nullopt because we are no longer |
+ // discovering. |
// - GetUUIDs: Should return no UUIDs because we no longer know what services |
// the device has. |
// - GetServiceData: Should return empty map. |
+ // - GetInquiryTxPower: Should return nullopt because we are no longer |
+ // discovering. |
SimulateGattServicesChanged(device); |
ASSERT_FALSE(device->IsGattServicesDiscoveryComplete()); |
EXPECT_EQ(1, observer.device_changed_count()); |
+ EXPECT_FALSE(!!device->GetInquiryRSSI()); |
EXPECT_EQ(0u, device->GetUUIDs().size()); |
- |
EXPECT_EQ(ServiceDataMap(), device->GetServiceData()); |
EXPECT_EQ(UUIDSet(), device->GetServiceDataUUIDs()); |
+ EXPECT_FALSE(!!device->GetInquiryTxPower()); |
// Services discovered again, should notify of device changed. |
+ // - GetInquiryRSSI: Should return nullopt because we are no longer |
+ // discovering. |
// - GetUUIDs: Should return Service UUIDs. |
// - GetServiceData: Should return empty map. |
+ // - GetInquiryTxPower: Should return nullopt because we are no longer |
+ // discovering. |
SimulateGattServicesDiscovered(device, {} /* services */); |
EXPECT_EQ(2, observer.device_changed_count()); |
+ EXPECT_FALSE(!!device->GetInquiryRSSI()); |
EXPECT_EQ(1u, device->GetUUIDs().size()); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDGenericAccess))); |
EXPECT_EQ(ServiceDataMap(), device->GetServiceData()); |
EXPECT_EQ(UUIDSet(), device->GetServiceDataUUIDs()); |
+ EXPECT_FALSE(!!device->GetInquiryTxPower()); |
+ |
#endif // defined(OS_MACOSX) |
observer.Reset(); |
// Disconnect, should notify device changed. |
+ // - GetInquiryRSSI: Should return nullopt because we are no longer |
+ // discovering. |
// - GetUUIDs: Should return no UUIDs since we no longer know what services |
// the device holds and notify of device changed. |
// - GetServiceData: Should return empty map. |
+ // - GetInquiryTxPower: Should return nullopt because we are no longer |
+ // discovering. |
gatt_connections_[0]->Disconnect(); |
SimulateGattDisconnection(device); |
ASSERT_FALSE(device->IsGattConnected()); |
+ EXPECT_FALSE(!!device->GetInquiryRSSI()); |
EXPECT_EQ(1, observer.device_changed_count()); |
EXPECT_EQ(0u, device->GetUUIDs().size()); |
@@ -368,6 +442,8 @@ TEST_F(BluetoothTest, GetUUIDs_Connection) { |
EXPECT_EQ(ServiceDataMap(), device->GetServiceData()); |
EXPECT_EQ(UUIDSet(), device->GetServiceDataUUIDs()); |
#endif // defined(OS_MACOSX) |
+ |
+ EXPECT_FALSE(!!device->GetInquiryTxPower()); |
} |
#endif // defined(OS_ANDROID) || defined(OS_MACOSX) |
@@ -408,16 +484,22 @@ TEST_F(BluetoothTest, GetUUIDs_DiscoveryDuringConnection) { |
// Start Discovery and receive advertisement during connection, |
// should notify of device changed. |
+ // - GetInquiryRSSI: Should return the packet's rssi. |
// - GetUUIDs: Should return only Advertised UUIDs since services haven't |
// been discovered yet. |
// - GetServiceData: Should return last advertised Service Data. |
+ // - GetInquiryTxPower: Should return the packet's advertised Tx Power. |
StartLowEnergyDiscoverySession(); |
ASSERT_TRUE(adapter_->IsDiscovering()); |
ASSERT_TRUE(discovery_sessions_[0]->IsActive()); |
device = SimulateLowEnergyDevice(1); |
EXPECT_EQ(1, observer.device_changed_count()); |
+ |
+ EXPECT_EQ(kTestRSSI1, device->GetInquiryRSSI().value()); |
+ |
EXPECT_EQ(2u, device->GetUUIDs().size()); |
+ |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDGenericAccess))); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
@@ -436,15 +518,20 @@ TEST_F(BluetoothTest, GetUUIDs_DiscoveryDuringConnection) { |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDHeartRate))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_EQ(kTestTxPower1, device->GetInquiryTxPower().value()); |
+ |
// Discover services, should notify of device changed. |
+ // - GetInquiryRSSI: Should return last packet's rssi. |
// - GetUUIDs: Should return both Advertised UUIDs and Service UUIDs. |
// - GetServiceData: Should return same data as before since there was |
// no new advertised data. |
+ // - GetInquiryTxPower: Should return the last packet's advertised Tx Power. |
std::vector<std::string> services; |
services.push_back(BluetoothUUID(kTestUUIDHeartRate).canonical_value()); |
SimulateGattServicesDiscovered(device, services); |
EXPECT_EQ(2, observer.device_changed_count()); |
+ EXPECT_EQ(kTestRSSI1, device->GetInquiryRSSI().value()); |
EXPECT_EQ(3u, device->GetUUIDs().size()); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDGenericAccess))); |
@@ -465,31 +552,41 @@ TEST_F(BluetoothTest, GetUUIDs_DiscoveryDuringConnection) { |
EXPECT_EQ(std::vector<uint8_t>({1}), |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDHeartRate))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_EQ(kTestTxPower1, device->GetInquiryTxPower().value()); |
// Receive advertisement again, notify of device changed. |
+ // - GetInquiryRSSI: Should return last packet's rssi. |
// - GetUUIDs: Should return only new Advertised UUIDs and Service UUIDs. |
// - GetServiceData: Should return last advertised Service Data. |
+ // - GetInquiryTxPower: Should return the last packet's advertised Tx Power. |
device = SimulateLowEnergyDevice(2); |
EXPECT_EQ(3, observer.device_changed_count()); |
EXPECT_EQ(3u, device->GetUUIDs().size()); |
+ EXPECT_EQ(kTestRSSI2, device->GetInquiryRSSI().value()); |
EXPECT_TRUE( |
base::ContainsKey(device->GetUUIDs(), BluetoothUUID(kTestUUIDLinkLoss))); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDImmediateAlert))); |
EXPECT_TRUE( |
base::ContainsKey(device->GetUUIDs(), BluetoothUUID(kTestUUIDHeartRate))); |
+ EXPECT_EQ(kTestTxPower2, device->GetInquiryTxPower().value()); |
// Stop discovery session, should notify of device changed. |
+ // - GetInquiryRSSI: Should return nullopt because we are no longer |
+ // discovering. |
// - GetUUIDs: Should only return Service UUIDs. |
// - GetServiceData: Should return an empty map since we are no longer |
// discovering. |
+ // - GetInquiryTxPower: Should return nullopt because we are no longer |
+ // discovering. |
discovery_sessions_[0]->Stop(GetCallback(Call::EXPECTED), |
GetErrorCallback(Call::NOT_EXPECTED)); |
ASSERT_FALSE(adapter_->IsDiscovering()); |
ASSERT_FALSE(discovery_sessions_[0]->IsActive()); |
EXPECT_EQ(4, observer.device_changed_count()); |
+ EXPECT_FALSE(!!device->GetInquiryRSSI()); |
EXPECT_EQ(1u, device->GetUUIDs().size()); |
EXPECT_TRUE( |
base::ContainsKey(device->GetUUIDs(), BluetoothUUID(kTestUUIDHeartRate))); |
@@ -500,15 +597,21 @@ TEST_F(BluetoothTest, GetUUIDs_DiscoveryDuringConnection) { |
EXPECT_EQ(ServiceDataMap(), device->GetServiceData()); |
EXPECT_EQ(UUIDSet(), device->GetServiceDataUUIDs()); |
#endif // defined(OS_MACOSX) |
+ EXPECT_FALSE(!!device->GetInquiryTxPower()); |
// Disconnect device, should notify of device changed. |
+ // - GetInquiryRSSI: Should return nullopt because we are no longer |
+ // discovering. |
// - GetUUIDs: Should return no UUIDs. |
// - GetServiceData: Should still return an empty map. |
+ // - GetInquiryTxPower: Should return nullopt because we are no longer |
+ // discovering. |
gatt_connections_[0]->Disconnect(); |
SimulateGattDisconnection(device); |
ASSERT_FALSE(device->IsGattConnected()); |
EXPECT_EQ(5, observer.device_changed_count()); |
+ EXPECT_FALSE(!!device->GetInquiryRSSI()); |
EXPECT_EQ(0u, device->GetUUIDs().size()); |
#if defined(OS_MACOSX) |
@@ -517,6 +620,7 @@ TEST_F(BluetoothTest, GetUUIDs_DiscoveryDuringConnection) { |
EXPECT_EQ(ServiceDataMap(), device->GetServiceData()); |
EXPECT_EQ(UUIDSet(), device->GetServiceDataUUIDs()); |
#endif // defined(OS_MACOSX) |
+ EXPECT_FALSE(!!device->GetInquiryTxPower()); |
} |
#endif // defined(OS_ANDROID) || defined(OS_MACOSX) |
@@ -534,14 +638,17 @@ TEST_F(BluetoothTest, AdvertisementData_ConnectionDuringDiscovery) { |
// Start discovery session and receive and advertisement. No device changed |
// notification because it's a new device. |
+ // - GetInquiryRSSI: Should return the packet's rssi. |
Jeffrey Yasskin
2016/08/24 04:32:02
A some point in these tests, you've verified that
ortuno
2016/08/24 21:29:09
I've removed checks where checking advertisement d
|
// - GetUUIDs: Should return Advertised UUIDs. |
// - GetServiceData: Should return advertised Service Data. |
+ // - GetInquiryTxPower: Should return the packet's advertised Tx Power. |
StartLowEnergyDiscoverySession(); |
ASSERT_TRUE(adapter_->IsDiscovering()); |
ASSERT_TRUE(discovery_sessions_[0]->IsActive()); |
BluetoothDevice* device = SimulateLowEnergyDevice(1); |
EXPECT_EQ(0, observer.device_changed_count()); |
+ EXPECT_EQ(kTestRSSI1, device->GetInquiryRSSI().value()); |
EXPECT_EQ(2u, device->GetUUIDs().size()); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDGenericAccess))); |
@@ -561,9 +668,13 @@ TEST_F(BluetoothTest, AdvertisementData_ConnectionDuringDiscovery) { |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDHeartRate))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_EQ(kTestTxPower1, device->GetInquiryTxPower().value()); |
+ |
// Connect, should notify of device changed. |
+ // - GetInquiryRSSI: Should return last packet's rssi. |
// - GetUUIDs: Should return Advertised UUIDs even before GATT Discovery. |
// - GetServiceData: Should still return the same Service Data. |
+ // - GetInquiryTxPower: Should return the last packet's advertised Tx Power. |
device->CreateGattConnection(GetGattConnectionCallback(Call::EXPECTED), |
GetConnectErrorCallback(Call::NOT_EXPECTED)); |
SimulateGattConnection(device); |
@@ -571,6 +682,7 @@ TEST_F(BluetoothTest, AdvertisementData_ConnectionDuringDiscovery) { |
observer.Reset(); |
EXPECT_EQ(2u, device->GetUUIDs().size()); |
+ EXPECT_EQ(kTestRSSI1, device->GetInquiryRSSI().value()); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDGenericAccess))); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
@@ -589,12 +701,17 @@ TEST_F(BluetoothTest, AdvertisementData_ConnectionDuringDiscovery) { |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDHeartRate))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_EQ(kTestTxPower1, device->GetInquiryTxPower().value()); |
+ |
// Receive Advertisement with new UUIDs, should notify of device changed. |
+ // - GetInquiryRSSI: Should return the packet's rssi. |
// - GetUUIDs: Should return new Advertised UUIDs. |
// - GetServiceData: Should return new advertised Service Data. |
+ // - GetInquiryTxPower: Should return the packet's advertised Tx Power. |
device = SimulateLowEnergyDevice(2); |
EXPECT_EQ(1, observer.device_changed_count()); |
+ EXPECT_EQ(kTestRSSI2, device->GetInquiryRSSI().value()); |
EXPECT_EQ(2u, device->GetUUIDs().size()); |
EXPECT_TRUE( |
base::ContainsKey(device->GetUUIDs(), BluetoothUUID(kTestUUIDLinkLoss))); |
@@ -618,15 +735,19 @@ TEST_F(BluetoothTest, AdvertisementData_ConnectionDuringDiscovery) { |
std::vector<uint8_t>({0}), |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDImmediateAlert))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_EQ(kTestTxPower2, device->GetInquiryTxPower().value()); |
// Discover Service, should notify of device changed. |
+ // - GetInquiryRSSI: Should return last packet's rssi. |
// - GetUUIDs: Should return Advertised UUIDs and Service UUIDs. |
// - GetServiceData: Should return same advertised Service Data. |
+ // - GetInquiryTxPower: Should return the last packet's advertised Tx Power. |
std::vector<std::string> services; |
services.push_back(BluetoothUUID(kTestUUIDHeartRate).canonical_value()); |
SimulateGattServicesDiscovered(device, services); |
EXPECT_EQ(2, observer.device_changed_count()); |
+ EXPECT_EQ(kTestRSSI2, device->GetInquiryRSSI().value()); |
EXPECT_EQ(3u, device->GetUUIDs().size()); |
EXPECT_TRUE( |
base::ContainsKey(device->GetUUIDs(), BluetoothUUID(kTestUUIDLinkLoss))); |
@@ -653,14 +774,19 @@ TEST_F(BluetoothTest, AdvertisementData_ConnectionDuringDiscovery) { |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDImmediateAlert))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_EQ(kTestTxPower2, device->GetInquiryTxPower().value()); |
+ |
// Disconnect, should notify of device changed. |
+ // - GetInquiryRSSI: Should return last packet's rssi. |
// - GetUUIDs: Should return only Advertised UUIDs. |
// - GetServiceData: Should still return same advertised Service Data. |
+ // - GetInquiryTxPower: Should return the last packet's advertised Tx Power. |
gatt_connections_[0]->Disconnect(); |
SimulateGattDisconnection(device); |
ASSERT_FALSE(device->IsGattConnected()); |
EXPECT_EQ(3, observer.device_changed_count()); |
+ EXPECT_EQ(kTestRSSI2, device->GetInquiryRSSI().value()); |
EXPECT_EQ(2u, device->GetUUIDs().size()); |
EXPECT_TRUE( |
base::ContainsKey(device->GetUUIDs(), BluetoothUUID(kTestUUIDLinkLoss))); |
@@ -685,12 +811,17 @@ TEST_F(BluetoothTest, AdvertisementData_ConnectionDuringDiscovery) { |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDImmediateAlert))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_EQ(kTestTxPower2, device->GetInquiryTxPower().value()); |
+ |
// Receive Advertisement with new UUIDs, should notify of device changed. |
+ // - GetInquiryRSSI: Should return last packet's rssi. |
// - GetUUIDs: Should return only new Advertised UUIDs. |
// - GetServiceData: Should return only new advertised Service Data. |
+ // - GetInquiryTxPower: Should return the last packet's advertised Tx Power. |
device = SimulateLowEnergyDevice(1); |
EXPECT_EQ(4, observer.device_changed_count()); |
+ EXPECT_EQ(kTestRSSI1, device->GetInquiryRSSI().value()); |
EXPECT_EQ(2u, device->GetUUIDs().size()); |
EXPECT_TRUE(base::ContainsKey(device->GetUUIDs(), |
BluetoothUUID(kTestUUIDGenericAccess))); |
@@ -710,13 +841,20 @@ TEST_F(BluetoothTest, AdvertisementData_ConnectionDuringDiscovery) { |
*device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDHeartRate))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_EQ(kTestTxPower1, device->GetInquiryTxPower().value()); |
+ |
// Stop discovery session, should notify of device changed. |
+ // - GetInquiryRSSI: Should return nullopt because we are no longer |
+ // discovering. |
// - GetUUIDs: Should return no UUIDs. |
- // - GetServiceData: Should return no UUIDs since we are no longer |
- // discovering. |
+ // - GetServiceData: Should return no UUIDs since we are no longer |
+ // discovering. |
+ // - GetInquiryTxPower: Should return nullopt because we are no longer |
+ // discovering. |
discovery_sessions_[0]->Stop(GetCallback(Call::EXPECTED), |
GetErrorCallback(Call::NOT_EXPECTED)); |
EXPECT_EQ(5, observer.device_changed_count()); |
+ EXPECT_FALSE(!!device->GetInquiryRSSI()); |
EXPECT_EQ(0u, device->GetUUIDs().size()); |
#if defined(OS_MACOSX) |
@@ -727,6 +865,7 @@ TEST_F(BluetoothTest, AdvertisementData_ConnectionDuringDiscovery) { |
EXPECT_EQ(nullptr, |
device->GetServiceDataForUUID(BluetoothUUID(kTestUUIDHeartRate))); |
#endif // defined(OS_MACOSX) |
+ EXPECT_FALSE(!!device->GetInquiryTxPower()); |
} |
#endif // defined(OS_ANDROID) || defined(OS_MACOSX) |