| 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 "content/shell/browser/layout_test/layout_test_bluetooth_adapter_provid
      er.h" | 5 #include "content/shell/browser/layout_test/layout_test_bluetooth_adapter_provid
      er.h" | 
| 6 | 6 | 
| 7 #include <utility> | 7 #include <utility> | 
| 8 | 8 | 
| 9 #include "base/bind.h" | 9 #include "base/bind.h" | 
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" | 
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 56     NiceMockBluetoothGattConnection; | 56     NiceMockBluetoothGattConnection; | 
| 57 typedef testing::NiceMock<MockBluetoothGattService> | 57 typedef testing::NiceMock<MockBluetoothGattService> | 
| 58     NiceMockBluetoothGattService; | 58     NiceMockBluetoothGattService; | 
| 59 typedef testing::NiceMock<MockBluetoothGattNotifySession> | 59 typedef testing::NiceMock<MockBluetoothGattNotifySession> | 
| 60     NiceMockBluetoothGattNotifySession; | 60     NiceMockBluetoothGattNotifySession; | 
| 61 | 61 | 
| 62 namespace { | 62 namespace { | 
| 63 // Bluetooth UUIDs suitable to pass to BluetoothUUID(): | 63 // Bluetooth UUIDs suitable to pass to BluetoothUUID(): | 
| 64 // Services: | 64 // Services: | 
| 65 const char kBatteryServiceUUID[] = "180f"; | 65 const char kBatteryServiceUUID[] = "180f"; | 
| 66 const char kBlacklistTestServiceUUID[] = "611c954a-263b-4f4a-aab6-01ddb953f985"; | 66 const char kBlocklistTestServiceUUID[] = "611c954a-263b-4f4a-aab6-01ddb953f985"; | 
| 67 const char kDeviceInformationServiceUUID[] = "180a"; | 67 const char kDeviceInformationServiceUUID[] = "180a"; | 
| 68 const char kGenericAccessServiceUUID[] = "1800"; | 68 const char kGenericAccessServiceUUID[] = "1800"; | 
| 69 const char kGlucoseServiceUUID[] = "1808"; | 69 const char kGlucoseServiceUUID[] = "1808"; | 
| 70 const char kHealthThermometerUUID[] = "1809"; | 70 const char kHealthThermometerUUID[] = "1809"; | 
| 71 const char kHeartRateServiceUUID[] = "180d"; | 71 const char kHeartRateServiceUUID[] = "180d"; | 
| 72 const char kHumanInterfaceDeviceServiceUUID[] = "1812"; | 72 const char kHumanInterfaceDeviceServiceUUID[] = "1812"; | 
| 73 const char kRequestDisconnectionServiceUUID[] = | 73 const char kRequestDisconnectionServiceUUID[] = | 
| 74     "01d7d889-7451-419f-aeb8-d65e7b9277af"; | 74     "01d7d889-7451-419f-aeb8-d65e7b9277af"; | 
| 75 const char kTxPowerServiceUUID[] = "1804"; | 75 const char kTxPowerServiceUUID[] = "1804"; | 
| 76 // Characteristics: | 76 // Characteristics: | 
| 77 const char kBlacklistExcludeReadsCharacteristicUUID[] = | 77 const char kBlocklistExcludeReadsCharacteristicUUID[] = | 
| 78     "bad1c9a2-9a5b-4015-8b60-1579bbbf2135"; | 78     "bad1c9a2-9a5b-4015-8b60-1579bbbf2135"; | 
| 79 const char kRequestDisconnectionCharacteristicUUID[] = | 79 const char kRequestDisconnectionCharacteristicUUID[] = | 
| 80     "01d7d88a-7451-419f-aeb8-d65e7b9277af"; | 80     "01d7d88a-7451-419f-aeb8-d65e7b9277af"; | 
| 81 const char kBodySensorLocation[] = "2a38"; | 81 const char kBodySensorLocation[] = "2a38"; | 
| 82 const char kDeviceNameUUID[] = "2a00"; | 82 const char kDeviceNameUUID[] = "2a00"; | 
| 83 const char kMeasurementIntervalUUID[] = "2a21"; | 83 const char kMeasurementIntervalUUID[] = "2a21"; | 
| 84 const char kHeartRateMeasurementUUID[] = "2a37"; | 84 const char kHeartRateMeasurementUUID[] = "2a37"; | 
| 85 const char kSerialNumberStringUUID[] = "2a25"; | 85 const char kSerialNumberStringUUID[] = "2a25"; | 
| 86 const char kPeripheralPrivacyFlagUUID[] = "2a02"; | 86 const char kPeripheralPrivacyFlagUUID[] = "2a02"; | 
| 87 | 87 | 
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 221   } | 221   } | 
| 222   if (fake_adapter_name == "DisconnectingDuringStopNotifySessionAdapter") { | 222   if (fake_adapter_name == "DisconnectingDuringStopNotifySessionAdapter") { | 
| 223     return GetStopNotifySessionFinishesAfterReconnectionAdapter( | 223     return GetStopNotifySessionFinishesAfterReconnectionAdapter( | 
| 224         true /* disconnect */); | 224         true /* disconnect */); | 
| 225   } | 225   } | 
| 226   if (fake_adapter_name == | 226   if (fake_adapter_name == | 
| 227       "StopNotifySessionFinishesAfterReconnectionAdapter") { | 227       "StopNotifySessionFinishesAfterReconnectionAdapter") { | 
| 228     return GetStopNotifySessionFinishesAfterReconnectionAdapter( | 228     return GetStopNotifySessionFinishesAfterReconnectionAdapter( | 
| 229         false /* disconnect */); | 229         false /* disconnect */); | 
| 230   } | 230   } | 
| 231   if (fake_adapter_name == "BlacklistTestAdapter") | 231   if (fake_adapter_name == "BlocklistTestAdapter") | 
| 232     return GetBlacklistTestAdapter(); | 232     return GetBlocklistTestAdapter(); | 
| 233   if (fake_adapter_name == "FailingConnectionsAdapter") | 233   if (fake_adapter_name == "FailingConnectionsAdapter") | 
| 234     return GetFailingConnectionsAdapter(); | 234     return GetFailingConnectionsAdapter(); | 
| 235   if (fake_adapter_name == "FailingGATTOperationsAdapter") | 235   if (fake_adapter_name == "FailingGATTOperationsAdapter") | 
| 236     return GetFailingGATTOperationsAdapter(); | 236     return GetFailingGATTOperationsAdapter(); | 
| 237   if (fake_adapter_name == "SecondDiscoveryFindsHeartRateAdapter") | 237   if (fake_adapter_name == "SecondDiscoveryFindsHeartRateAdapter") | 
| 238     return GetSecondDiscoveryFindsHeartRateAdapter(); | 238     return GetSecondDiscoveryFindsHeartRateAdapter(); | 
| 239   if (fake_adapter_name == "DeviceEventAdapter") | 239   if (fake_adapter_name == "DeviceEventAdapter") | 
| 240     return GetDeviceEventAdapter(); | 240     return GetDeviceEventAdapter(); | 
| 241   if (fake_adapter_name == "DevicesRemovedAdapter") | 241   if (fake_adapter_name == "DevicesRemovedAdapter") | 
| 242     return GetDevicesRemovedAdapter(); | 242     return GetDevicesRemovedAdapter(); | 
| (...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1067 | 1067 | 
| 1068   health_thermometer->AddMockCharacteristic(std::move(measurement_interval)); | 1068   health_thermometer->AddMockCharacteristic(std::move(measurement_interval)); | 
| 1069   device->AddMockService(std::move(health_thermometer)); | 1069   device->AddMockService(std::move(health_thermometer)); | 
| 1070   adapter->AddMockDevice(std::move(device)); | 1070   adapter->AddMockDevice(std::move(device)); | 
| 1071 | 1071 | 
| 1072   return adapter; | 1072   return adapter; | 
| 1073 } | 1073 } | 
| 1074 | 1074 | 
| 1075 // static | 1075 // static | 
| 1076 scoped_refptr<NiceMockBluetoothAdapter> | 1076 scoped_refptr<NiceMockBluetoothAdapter> | 
| 1077 LayoutTestBluetoothAdapterProvider::GetBlacklistTestAdapter() { | 1077 LayoutTestBluetoothAdapterProvider::GetBlocklistTestAdapter() { | 
| 1078   scoped_refptr<NiceMockBluetoothAdapter> adapter(GetEmptyAdapter()); | 1078   scoped_refptr<NiceMockBluetoothAdapter> adapter(GetEmptyAdapter()); | 
| 1079 | 1079 | 
| 1080   BluetoothDevice::UUIDList uuids; | 1080   BluetoothDevice::UUIDList uuids; | 
| 1081   uuids.push_back(BluetoothUUID(kBlacklistTestServiceUUID)); | 1081   uuids.push_back(BluetoothUUID(kBlocklistTestServiceUUID)); | 
| 1082   uuids.push_back(BluetoothUUID(kDeviceInformationServiceUUID)); | 1082   uuids.push_back(BluetoothUUID(kDeviceInformationServiceUUID)); | 
| 1083   uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID)); | 1083   uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID)); | 
| 1084   uuids.push_back(BluetoothUUID(kHeartRateServiceUUID)); | 1084   uuids.push_back(BluetoothUUID(kHeartRateServiceUUID)); | 
| 1085   uuids.push_back(BluetoothUUID(kHumanInterfaceDeviceServiceUUID)); | 1085   uuids.push_back(BluetoothUUID(kHumanInterfaceDeviceServiceUUID)); | 
| 1086 | 1086 | 
| 1087   std::unique_ptr<NiceMockBluetoothDevice> device( | 1087   std::unique_ptr<NiceMockBluetoothDevice> device( | 
| 1088       GetConnectableDevice(adapter.get(), "Blacklist Test Device", uuids)); | 1088       GetConnectableDevice(adapter.get(), "Blocklist Test Device", uuids)); | 
| 1089 | 1089 | 
| 1090   device->AddMockService(GetBlacklistTestService(device.get())); | 1090   device->AddMockService(GetBlocklistTestService(device.get())); | 
| 1091   device->AddMockService(GetDeviceInformationService(device.get())); | 1091   device->AddMockService(GetDeviceInformationService(device.get())); | 
| 1092   device->AddMockService(GetGenericAccessService(device.get())); | 1092   device->AddMockService(GetGenericAccessService(device.get())); | 
| 1093   device->AddMockService(GetHeartRateService(adapter.get(), device.get())); | 1093   device->AddMockService(GetHeartRateService(adapter.get(), device.get())); | 
| 1094   device->AddMockService(GetBaseGATTService("Human Interface Device", | 1094   device->AddMockService(GetBaseGATTService("Human Interface Device", | 
| 1095                                             device.get(), | 1095                                             device.get(), | 
| 1096                                             kHumanInterfaceDeviceServiceUUID)); | 1096                                             kHumanInterfaceDeviceServiceUUID)); | 
| 1097   adapter->AddMockDevice(std::move(device)); | 1097   adapter->AddMockDevice(std::move(device)); | 
| 1098 | 1098 | 
| 1099   return adapter; | 1099   return adapter; | 
| 1100 } | 1100 } | 
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1292 | 1292 | 
| 1293   ON_CALL(*service, GetCharacteristic(_)) | 1293   ON_CALL(*service, GetCharacteristic(_)) | 
| 1294       .WillByDefault(Invoke(service.get(), | 1294       .WillByDefault(Invoke(service.get(), | 
| 1295                             &MockBluetoothGattService::GetMockCharacteristic)); | 1295                             &MockBluetoothGattService::GetMockCharacteristic)); | 
| 1296 | 1296 | 
| 1297   return service; | 1297   return service; | 
| 1298 } | 1298 } | 
| 1299 | 1299 | 
| 1300 // static | 1300 // static | 
| 1301 std::unique_ptr<NiceMockBluetoothGattService> | 1301 std::unique_ptr<NiceMockBluetoothGattService> | 
| 1302 LayoutTestBluetoothAdapterProvider::GetBlacklistTestService( | 1302 LayoutTestBluetoothAdapterProvider::GetBlocklistTestService( | 
| 1303     device::MockBluetoothDevice* device) { | 1303     device::MockBluetoothDevice* device) { | 
| 1304   std::unique_ptr<NiceMockBluetoothGattService> blacklist_test_service( | 1304   std::unique_ptr<NiceMockBluetoothGattService> blocklist_test_service( | 
| 1305       GetBaseGATTService("Blacklist Test", device, kBlacklistTestServiceUUID)); | 1305       GetBaseGATTService("Blocklist Test", device, kBlocklistTestServiceUUID)); | 
| 1306 | 1306 | 
| 1307   std::unique_ptr<NiceMockBluetoothGattCharacteristic> | 1307   std::unique_ptr<NiceMockBluetoothGattCharacteristic> | 
| 1308       blacklist_exclude_reads_characteristic(GetBaseGATTCharacteristic( | 1308       blocklist_exclude_reads_characteristic(GetBaseGATTCharacteristic( | 
| 1309           "Excluded Reads Characteristic", blacklist_test_service.get(), | 1309           "Excluded Reads Characteristic", blocklist_test_service.get(), | 
| 1310           kBlacklistExcludeReadsCharacteristicUUID, | 1310           kBlocklistExcludeReadsCharacteristicUUID, | 
| 1311           BluetoothRemoteGattCharacteristic::PROPERTY_READ | | 1311           BluetoothRemoteGattCharacteristic::PROPERTY_READ | | 
| 1312               BluetoothRemoteGattCharacteristic::PROPERTY_WRITE)); | 1312               BluetoothRemoteGattCharacteristic::PROPERTY_WRITE)); | 
| 1313 | 1313 | 
| 1314   // Crash if ReadRemoteCharacteristic called. Not using GoogleMock's Expect | 1314   // Crash if ReadRemoteCharacteristic called. Not using GoogleMock's Expect | 
| 1315   // because this is used in layout tests that may not report a mock expectation | 1315   // because this is used in layout tests that may not report a mock expectation | 
| 1316   // error correctly as a layout test failure. | 1316   // error correctly as a layout test failure. | 
| 1317   ON_CALL(*blacklist_exclude_reads_characteristic, | 1317   ON_CALL(*blocklist_exclude_reads_characteristic, | 
| 1318           ReadRemoteCharacteristic(_, _)) | 1318           ReadRemoteCharacteristic(_, _)) | 
| 1319       .WillByDefault( | 1319       .WillByDefault( | 
| 1320           Invoke([](const BluetoothRemoteGattCharacteristic::ValueCallback&, | 1320           Invoke([](const BluetoothRemoteGattCharacteristic::ValueCallback&, | 
| 1321                     const BluetoothRemoteGattCharacteristic::ErrorCallback&) { | 1321                     const BluetoothRemoteGattCharacteristic::ErrorCallback&) { | 
| 1322             NOTREACHED(); | 1322             NOTREACHED(); | 
| 1323           })); | 1323           })); | 
| 1324 | 1324 | 
| 1325   // Write response. | 1325   // Write response. | 
| 1326   ON_CALL(*blacklist_exclude_reads_characteristic, | 1326   ON_CALL(*blocklist_exclude_reads_characteristic, | 
| 1327           WriteRemoteCharacteristic(_, _, _)) | 1327           WriteRemoteCharacteristic(_, _, _)) | 
| 1328       .WillByDefault(RunCallback<1 /* success callback */>()); | 1328       .WillByDefault(RunCallback<1 /* success callback */>()); | 
| 1329 | 1329 | 
| 1330   blacklist_test_service->AddMockCharacteristic( | 1330   blocklist_test_service->AddMockCharacteristic( | 
| 1331       std::move(blacklist_exclude_reads_characteristic)); | 1331       std::move(blocklist_exclude_reads_characteristic)); | 
| 1332 | 1332 | 
| 1333   return blacklist_test_service; | 1333   return blocklist_test_service; | 
| 1334 } | 1334 } | 
| 1335 | 1335 | 
| 1336 // static | 1336 // static | 
| 1337 std::unique_ptr<NiceMockBluetoothGattService> | 1337 std::unique_ptr<NiceMockBluetoothGattService> | 
| 1338 LayoutTestBluetoothAdapterProvider::GetDeviceInformationService( | 1338 LayoutTestBluetoothAdapterProvider::GetDeviceInformationService( | 
| 1339     device::MockBluetoothDevice* device) { | 1339     device::MockBluetoothDevice* device) { | 
| 1340   std::unique_ptr<NiceMockBluetoothGattService> device_information( | 1340   std::unique_ptr<NiceMockBluetoothGattService> device_information( | 
| 1341       GetBaseGATTService("Device Information", device, | 1341       GetBaseGATTService("Device Information", device, | 
| 1342                          kDeviceInformationServiceUUID)); | 1342                          kDeviceInformationServiceUUID)); | 
| 1343 | 1343 | 
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1666   return BluetoothUUID(); | 1666   return BluetoothUUID(); | 
| 1667 } | 1667 } | 
| 1668 | 1668 | 
| 1669 // static | 1669 // static | 
| 1670 std::string LayoutTestBluetoothAdapterProvider::makeMACAddress(uint64_t addr) { | 1670 std::string LayoutTestBluetoothAdapterProvider::makeMACAddress(uint64_t addr) { | 
| 1671   return BluetoothDevice::CanonicalizeAddress( | 1671   return BluetoothDevice::CanonicalizeAddress( | 
| 1672       base::StringPrintf("%012" PRIx64, addr)); | 1672       base::StringPrintf("%012" PRIx64, addr)); | 
| 1673 } | 1673 } | 
| 1674 | 1674 | 
| 1675 }  // namespace content | 1675 }  // namespace content | 
| OLD | NEW | 
|---|