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

Unified Diff: device/bluetooth/bluetooth_device_unittest.cc

Issue 2785383002: Update unit tests for BluetoothDevice::GetPrimaryServicesByUUID() etc. (Closed)
Patch Set: address comments Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/bluetooth/bluetooth_device.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/bluetooth/bluetooth_device_unittest.cc
diff --git a/device/bluetooth/bluetooth_device_unittest.cc b/device/bluetooth/bluetooth_device_unittest.cc
index ab478fc7386df4a49d9bf91a0645488354e48239..f917b30a2c58fafb78c299fc1d089f76fb9e61aa 100644
--- a/device/bluetooth/bluetooth_device_unittest.cc
+++ b/device/bluetooth/bluetooth_device_unittest.cc
@@ -48,7 +48,7 @@ using ServiceDataMap = BluetoothDevice::ServiceDataMap;
class BluetoothGetServiceOrCharacteristicTest : public BluetoothTest {
public:
- // Creates |device_|, |services_|.
+ // Creates |device_|, |service_uuids_|.
void FakeServiceBoilerplate() {
InitWithFakeAdapter();
StartLowEnergyDiscoverySession();
@@ -65,18 +65,18 @@ class BluetoothGetServiceOrCharacteristicTest : public BluetoothTest {
EXPECT_TRUE(device_->IsConnected());
// Discover services.
- services_.push_back("00000000-0000-1000-8000-00805f9b34fb");
+ service_uuids_.push_back(kTestUUIDGenericAccess);
// 2 duplicate UUIDs creating 2 instances.
- services_.push_back("00000001-0000-1000-8000-00805f9b34fb");
- services_.push_back("00000001-0000-1000-8000-00805f9b34fb");
- SimulateGattServicesDiscovered(device_, services_);
+ service_uuids_.push_back(kTestUUIDHeartRate);
+ service_uuids_.push_back(kTestUUIDHeartRate);
+ SimulateGattServicesDiscovered(device_, service_uuids_);
base::RunLoop().RunUntilIdle();
EXPECT_TRUE(device_->IsGattServicesDiscoveryComplete());
}
protected:
BluetoothDevice* device_ = nullptr;
- std::vector<std::string> services_;
+ std::vector<std::string> service_uuids_;
};
TEST(BluetoothDeviceTest, CanonicalizeAddressFormat_AcceptsAllValidFormats) {
@@ -1517,6 +1517,8 @@ TEST_F(BluetoothTest, GetDeviceTransportType) {
#endif // defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(OS_ANDROID) || defined(OS_MACOSX)
+// TODO(https://crbug.com/507419): Run test on Windows once Bluetooth
+// connection is implemented.
TEST_F(BluetoothGetServiceOrCharacteristicTest, GetPrimaryServices) {
if (!PlatformSupportsLowEnergy()) {
LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
@@ -1534,18 +1536,27 @@ TEST_F(BluetoothGetServiceOrCharacteristicTest, GetPrimaryServicesByUUID) {
}
ASSERT_NO_FATAL_FAILURE(FakeServiceBoilerplate());
- EXPECT_EQ(
- 1u,
- device_->GetPrimaryServicesByUUID(BluetoothUUID(services_[0])).size());
- EXPECT_EQ(
- 2u,
- device_->GetPrimaryServicesByUUID(BluetoothUUID(services_[1])).size());
- std::string service_uuid_not_exist_in_setup =
- "00000002-0000-1000-8000-00805f9b34fb";
- EXPECT_TRUE(device_
- ->GetPrimaryServicesByUUID(
- BluetoothUUID(service_uuid_not_exist_in_setup))
- .empty());
+ {
+ std::vector<BluetoothRemoteGattService*> services =
+ device_->GetPrimaryServicesByUUID(BluetoothUUID(service_uuids_[0]));
+ EXPECT_EQ(1u, services.size());
+ EXPECT_EQ(BluetoothUUID(service_uuids_[0]), services[0]->GetUUID());
+ }
+
+ {
+ std::vector<BluetoothRemoteGattService*> services =
+ device_->GetPrimaryServicesByUUID(BluetoothUUID(service_uuids_[1]));
+ EXPECT_EQ(2u, services.size());
+ EXPECT_EQ(BluetoothUUID(service_uuids_[1]), services[0]->GetUUID());
+ EXPECT_EQ(BluetoothUUID(service_uuids_[1]), services[1]->GetUUID());
+
+ EXPECT_TRUE(device_
+ ->GetPrimaryServicesByUUID(BluetoothUUID(
+ BluetoothTestBase::kTestUUIDGenericAttribute))
+ .empty());
+
+ EXPECT_NE(services[0]->GetIdentifier(), services[1]->GetIdentifier());
+ }
}
TEST_F(BluetoothGetServiceOrCharacteristicTest, GetCharacteristicsByUUID) {
@@ -1561,30 +1572,46 @@ TEST_F(BluetoothGetServiceOrCharacteristicTest, GetCharacteristicsByUUID) {
std::string service_instance_id1 = primary_services[1]->GetIdentifier();
std::string service_instance_id2 = primary_services[2]->GetIdentifier();
- std::string characteristic_uuid0 = "00000002-0000-1000-8000-00805f9b34fb";
- std::string characteristic_uuid1 = "00000003-0000-1000-8000-00805f9b34fb";
+ std::string characteristic_uuid0 = "00002a00-0000-1000-8000-00805f9b34fb";
ortuno 2017/04/04 03:32:12 Move these to bluetooth_test.h
juncai 2017/04/04 20:33:40 Not used any more.
+ std::string characteristic_uuid1 = "00002a37-0000-1000-8000-00805f9b34fb";
SimulateGattCharacteristic(primary_services[0], characteristic_uuid0,
0 /* properties */);
+ // 2 duplicate UUIDs creating 2 instances.
+ SimulateGattCharacteristic(primary_services[1], characteristic_uuid1,
+ 0 /* properties */);
SimulateGattCharacteristic(primary_services[1], characteristic_uuid1,
0 /* properties */);
SimulateGattCharacteristic(primary_services[2], characteristic_uuid1,
0 /* properties */);
- EXPECT_EQ(1u,
- device_
- ->GetCharacteristicsByUUID(service_instance_id0,
- BluetoothUUID(characteristic_uuid0))
- .size());
- EXPECT_EQ(1u,
- device_
- ->GetCharacteristicsByUUID(service_instance_id1,
- BluetoothUUID(characteristic_uuid1))
- .size());
- EXPECT_EQ(1u,
- device_
- ->GetCharacteristicsByUUID(service_instance_id2,
- BluetoothUUID(characteristic_uuid1))
- .size());
+ {
+ std::vector<BluetoothRemoteGattCharacteristic*> characteristics =
+ device_->GetCharacteristicsByUUID(service_instance_id0,
+ BluetoothUUID(characteristic_uuid0));
+ EXPECT_EQ(1u, characteristics.size());
+ EXPECT_EQ(BluetoothUUID(characteristic_uuid0),
+ characteristics[0]->GetUUID());
+ }
+
+ {
+ std::vector<BluetoothRemoteGattCharacteristic*> characteristics =
+ device_->GetCharacteristicsByUUID(service_instance_id1,
+ BluetoothUUID(characteristic_uuid1));
+ EXPECT_EQ(2u, characteristics.size());
+ EXPECT_EQ(BluetoothUUID(characteristic_uuid1),
+ characteristics[0]->GetUUID());
+ EXPECT_EQ(BluetoothUUID(characteristic_uuid1),
+ characteristics[1]->GetUUID());
+ }
ortuno 2017/04/04 03:32:12 Compare the identifiers to make sure they are two
juncai 2017/04/04 20:33:40 Done.
+
+ {
+ std::vector<BluetoothRemoteGattCharacteristic*> characteristics =
+ device_->GetCharacteristicsByUUID(service_instance_id2,
+ BluetoothUUID(characteristic_uuid1));
+ EXPECT_EQ(1u, characteristics.size());
+ EXPECT_EQ(BluetoothUUID(characteristic_uuid1),
+ characteristics[0]->GetUUID());
+ }
std::string service_instance_id_not_exist_in_setup =
"non-existent platform specific service instance id";
« no previous file with comments | « device/bluetooth/bluetooth_device.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698