Chromium Code Reviews| 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 "base/run_loop.h" | 5 #include "base/run_loop.h" |
| 6 #include "build/build_config.h" | 6 #include "build/build_config.h" |
| 7 #include "device/bluetooth/bluetooth_gatt_service.h" | 7 #include "device/bluetooth/bluetooth_gatt_service.h" |
| 8 #include "device/bluetooth/bluetooth_remote_gatt_characteristic.h" | 8 #include "device/bluetooth/bluetooth_remote_gatt_characteristic.h" |
| 9 #include "device/bluetooth/test/test_bluetooth_adapter_observer.h" | 9 #include "device/bluetooth/test/test_bluetooth_adapter_observer.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 166 EXPECT_EQ(char_uuid3, service->GetCharacteristic(char_id3)->GetUUID()); | 166 EXPECT_EQ(char_uuid3, service->GetCharacteristic(char_id3)->GetUUID()); |
| 167 EXPECT_EQ(char_uuid4, service->GetCharacteristic(char_id4)->GetUUID()); | 167 EXPECT_EQ(char_uuid4, service->GetCharacteristic(char_id4)->GetUUID()); |
| 168 | 168 |
| 169 // GetCharacteristics & GetCharacteristic return the same object for the same | 169 // GetCharacteristics & GetCharacteristic return the same object for the same |
| 170 // ID: | 170 // ID: |
| 171 EXPECT_EQ(service->GetCharacteristics()[0], | 171 EXPECT_EQ(service->GetCharacteristics()[0], |
| 172 service->GetCharacteristic(char_id1)); | 172 service->GetCharacteristic(char_id1)); |
| 173 EXPECT_EQ(service->GetCharacteristic(char_id1), | 173 EXPECT_EQ(service->GetCharacteristic(char_id1), |
| 174 service->GetCharacteristic(char_id1)); | 174 service->GetCharacteristic(char_id1)); |
| 175 } | 175 } |
| 176 | |
| 177 TEST_F(BluetoothRemoteGattServiceTest, GetCharacteristicsByUUID) { | |
| 178 if (!PlatformSupportsLowEnergy()) { | |
| 179 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; | |
| 180 return; | |
| 181 } | |
| 182 InitWithFakeAdapter(); | |
| 183 StartLowEnergyDiscoverySession(); | |
| 184 BluetoothDevice* device = SimulateLowEnergyDevice(3); | |
| 185 device->CreateGattConnection(GetGattConnectionCallback(Call::EXPECTED), | |
| 186 GetConnectErrorCallback(Call::NOT_EXPECTED)); | |
| 187 SimulateGattConnection(device); | |
| 188 base::RunLoop().RunUntilIdle(); | |
| 189 | |
| 190 // Simulate two primary GATT services. | |
| 191 std::vector<std::string> services; | |
| 192 services.push_back("00000000-0000-1000-8000-00805f9b34fb"); | |
| 193 services.push_back("01010101-0101-1000-8000-00805f9b34fb"); | |
| 194 SimulateGattServicesDiscovered(device, services); | |
|
ortuno
2017/04/04 22:14:12
SimulateGattServicesDiscovered(
device, std::vec
juncai
2017/04/05 00:36:46
The added code is the same as the following in the
ortuno
2017/04/05 00:53:10
tldr; follow up sounds good!
I would love to alwa
juncai
2017/04/05 19:01:23
I will submit a CL to do that.
| |
| 195 base::RunLoop().RunUntilIdle(); | |
| 196 BluetoothRemoteGattService* service1 = device->GetGattServices()[0]; | |
| 197 BluetoothRemoteGattService* service2 = device->GetGattServices()[1]; | |
| 198 std::string characteristic_uuid1 = "11111111-0000-1000-8000-00805f9b34fb"; | |
|
ortuno
2017/04/04 22:14:12
Add standard UUIDs to the list of test UUIDs and u
juncai
2017/04/05 00:36:46
ditto.
Same as:
https://cs.chromium.org/chromium/
| |
| 199 std::string characteristic_uuid2 = "22222222-0000-1000-8000-00805f9b34fb"; | |
| 200 SimulateGattCharacteristic(service1, characteristic_uuid1, | |
| 201 /* properties */ 0); | |
| 202 // 2 duplicate UUIDs creating 2 instances. | |
| 203 SimulateGattCharacteristic(service2, characteristic_uuid2, | |
| 204 /* properties */ 0); | |
| 205 SimulateGattCharacteristic(service2, characteristic_uuid2, | |
| 206 /* properties */ 0); | |
| 207 | |
| 208 std::vector<BluetoothRemoteGattCharacteristic*> characteristics1 = | |
|
ortuno
2017/04/04 22:14:12
Consider using brackets to avoid characteristics1,
juncai
2017/04/05 00:36:46
Done.
| |
| 209 service1->GetCharacteristicsByUUID(BluetoothUUID(characteristic_uuid1)); | |
| 210 EXPECT_EQ(1u, characteristics1.size()); | |
| 211 EXPECT_EQ(characteristic_uuid1, characteristics1[0]->GetUUID().value()); | |
|
ortuno
2017/04/04 22:14:12
Use canonical_value here and elsewhere. value() de
juncai
2017/04/05 00:36:46
Done.
| |
| 212 | |
| 213 std::vector<BluetoothRemoteGattCharacteristic*> characteristics2 = | |
| 214 service2->GetCharacteristicsByUUID(BluetoothUUID(characteristic_uuid2)); | |
| 215 EXPECT_EQ(2u, characteristics2.size()); | |
| 216 EXPECT_EQ(characteristic_uuid2, characteristics2[0]->GetUUID().value()); | |
| 217 EXPECT_EQ(characteristic_uuid2, characteristics2[1]->GetUUID().value()); | |
| 218 EXPECT_NE(characteristics2[0]->GetIdentifier(), | |
| 219 characteristics2[1]->GetIdentifier()); | |
| 220 | |
| 221 BluetoothUUID characteristic_uuid_not_exist_in_setup( | |
| 222 "33333333-0000-1000-8000-00805f9b34fb"); | |
| 223 EXPECT_TRUE( | |
| 224 service1->GetCharacteristicsByUUID(characteristic_uuid_not_exist_in_setup) | |
| 225 .empty()); | |
| 226 EXPECT_TRUE( | |
| 227 service2->GetCharacteristicsByUUID(characteristic_uuid_not_exist_in_setup) | |
| 228 .empty()); | |
| 229 } | |
| 176 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) | 230 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) |
| 177 | 231 |
| 178 #if defined(OS_MACOSX) || defined(OS_WIN) | 232 #if defined(OS_MACOSX) || defined(OS_WIN) |
| 179 TEST_F(BluetoothRemoteGattServiceTest, GattCharacteristics_ObserversCalls) { | 233 TEST_F(BluetoothRemoteGattServiceTest, GattCharacteristics_ObserversCalls) { |
| 180 if (!PlatformSupportsLowEnergy()) { | 234 if (!PlatformSupportsLowEnergy()) { |
| 181 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; | 235 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; |
| 182 return; | 236 return; |
| 183 } | 237 } |
| 184 InitWithFakeAdapter(); | 238 InitWithFakeAdapter(); |
| 185 StartLowEnergyDiscoverySession(); | 239 StartLowEnergyDiscoverySession(); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 277 std::string removed_service = service1->GetIdentifier(); | 331 std::string removed_service = service1->GetIdentifier(); |
| 278 SimulateGattServiceRemoved(device->GetGattService(removed_service)); | 332 SimulateGattServiceRemoved(device->GetGattService(removed_service)); |
| 279 EXPECT_EQ(1, observer.gatt_service_removed_count()); | 333 EXPECT_EQ(1, observer.gatt_service_removed_count()); |
| 280 EXPECT_EQ(1u, device->GetGattServices().size()); | 334 EXPECT_EQ(1u, device->GetGattServices().size()); |
| 281 EXPECT_FALSE(device->GetGattService(removed_service)); | 335 EXPECT_FALSE(device->GetGattService(removed_service)); |
| 282 EXPECT_EQ(device->GetGattServices()[0], service2); | 336 EXPECT_EQ(device->GetGattServices()[0], service2); |
| 283 } | 337 } |
| 284 #endif // defined(OS_WIN) || defined(OS_MACOSX) | 338 #endif // defined(OS_WIN) || defined(OS_MACOSX) |
| 285 | 339 |
| 286 } // namespace device | 340 } // namespace device |
| OLD | NEW |