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 "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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 52 typedef testing::NiceMock<MockBluetoothGattCharacteristic> | 52 typedef testing::NiceMock<MockBluetoothGattCharacteristic> |
| 53 NiceMockBluetoothGattCharacteristic; | 53 NiceMockBluetoothGattCharacteristic; |
| 54 typedef testing::NiceMock<MockBluetoothGattConnection> | 54 typedef testing::NiceMock<MockBluetoothGattConnection> |
| 55 NiceMockBluetoothGattConnection; | 55 NiceMockBluetoothGattConnection; |
| 56 typedef testing::NiceMock<MockBluetoothGattService> | 56 typedef testing::NiceMock<MockBluetoothGattService> |
| 57 NiceMockBluetoothGattService; | 57 NiceMockBluetoothGattService; |
| 58 typedef testing::NiceMock<MockBluetoothGattNotifySession> | 58 typedef testing::NiceMock<MockBluetoothGattNotifySession> |
| 59 NiceMockBluetoothGattNotifySession; | 59 NiceMockBluetoothGattNotifySession; |
| 60 | 60 |
| 61 namespace { | 61 namespace { |
| 62 // Bluetooth UUIDs suitable to pass to BluetoothUUID(). | 62 // Bluetooth UUIDs suitable to pass to BluetoothUUID(): |
| 63 // Services: | |
| 63 const char kBatteryServiceUUID[] = "180f"; | 64 const char kBatteryServiceUUID[] = "180f"; |
| 65 const char kDeviceInformationServiceUUID[] = "180a"; | |
| 64 const char kGenericAccessServiceUUID[] = "1800"; | 66 const char kGenericAccessServiceUUID[] = "1800"; |
| 65 const char kGlucoseServiceUUID[] = "1808"; | 67 const char kGlucoseServiceUUID[] = "1808"; |
| 66 const char kHeartRateServiceUUID[] = "180d"; | 68 const char kHeartRateServiceUUID[] = "180d"; |
| 67 const char kHumanInterfaceDeviceServiceUUID[] = "1812"; | 69 const char kHumanInterfaceDeviceServiceUUID[] = "1812"; |
| 68 const char kTxPowerServiceUUID[] = "1804"; | 70 const char kTxPowerServiceUUID[] = "1804"; |
| 69 const char kHeartRateMeasurementUUID[] = "2a37"; | 71 // Characteristics: |
| 70 const char kBodySensorLocation[] = "2a38"; | 72 const char kBodySensorLocation[] = "2a38"; |
| 71 const char kDeviceNameUUID[] = "2a00"; | 73 const char kDeviceNameUUID[] = "2a00"; |
| 74 const char kHeartRateMeasurementUUID[] = "2a37"; | |
| 75 const char kSerialNumberStringUUID[] = "2a25"; | |
| 72 | 76 |
| 73 const int kDefaultTxPower = -10; // TxPower of a device broadcasting at 0.1mW. | 77 const int kDefaultTxPower = -10; // TxPower of a device broadcasting at 0.1mW. |
| 74 const int kDefaultRssi = -51; // RSSI at 1m from a device broadcasting at | 78 const int kDefaultRssi = -51; // RSSI at 1m from a device broadcasting at |
| 75 // 0.1mW. | 79 // 0.1mW. |
| 76 | 80 |
| 77 // Invokes Run() on the k-th argument of the function with no arguments. | 81 // Invokes Run() on the k-th argument of the function with no arguments. |
| 78 ACTION_TEMPLATE(RunCallback, | 82 ACTION_TEMPLATE(RunCallback, |
| 79 HAS_1_TEMPLATE_PARAMS(int, k), | 83 HAS_1_TEMPLATE_PARAMS(int, k), |
| 80 AND_0_VALUE_PARAMS()) { | 84 AND_0_VALUE_PARAMS()) { |
| 81 return ::testing::get<k>(args).Run(); | 85 return ::testing::get<k>(args).Run(); |
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 473 | 477 |
| 474 // static | 478 // static |
| 475 scoped_refptr<NiceMockBluetoothAdapter> | 479 scoped_refptr<NiceMockBluetoothAdapter> |
| 476 LayoutTestBluetoothAdapterProvider::GetHeartRateAdapter() { | 480 LayoutTestBluetoothAdapterProvider::GetHeartRateAdapter() { |
| 477 scoped_refptr<NiceMockBluetoothAdapter> adapter(GetEmptyAdapter()); | 481 scoped_refptr<NiceMockBluetoothAdapter> adapter(GetEmptyAdapter()); |
| 478 scoped_ptr<NiceMockBluetoothDevice> device(GetHeartRateDevice(adapter.get())); | 482 scoped_ptr<NiceMockBluetoothDevice> device(GetHeartRateDevice(adapter.get())); |
| 479 | 483 |
| 480 // TODO(ortuno): Implement the rest of the service's characteristics | 484 // TODO(ortuno): Implement the rest of the service's characteristics |
| 481 // See: http://crbug.com/529975 | 485 // See: http://crbug.com/529975 |
| 482 | 486 |
| 483 device->AddMockService(GetGenericAccessService(adapter.get(), device.get())); | 487 device->AddMockService(GetGenericAccessService(device.get())); |
| 484 device->AddMockService(GetHeartRateService(adapter.get(), device.get())); | 488 device->AddMockService(GetHeartRateService(adapter.get(), device.get())); |
| 485 adapter->AddMockDevice(std::move(device)); | 489 adapter->AddMockDevice(std::move(device)); |
| 486 | 490 |
| 487 return adapter; | 491 return adapter; |
| 488 } | 492 } |
| 489 | 493 |
| 490 // static | 494 // static |
| 491 scoped_refptr<NiceMockBluetoothAdapter> | 495 scoped_refptr<NiceMockBluetoothAdapter> |
| 492 LayoutTestBluetoothAdapterProvider::GetHeartRateAndHIDAdapter() { | 496 LayoutTestBluetoothAdapterProvider::GetHeartRateAndHIDAdapter() { |
| 493 scoped_refptr<NiceMockBluetoothAdapter> adapter(GetEmptyAdapter()); | 497 scoped_refptr<NiceMockBluetoothAdapter> adapter(GetEmptyAdapter()); |
| 494 | 498 |
| 495 BluetoothDevice::UUIDList uuids; | 499 BluetoothDevice::UUIDList uuids; |
| 496 uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID)); | 500 uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID)); |
| 497 uuids.push_back(BluetoothUUID(kHeartRateServiceUUID)); | 501 uuids.push_back(BluetoothUUID(kHeartRateServiceUUID)); |
| 498 uuids.push_back(BluetoothUUID(kHumanInterfaceDeviceServiceUUID)); | 502 uuids.push_back(BluetoothUUID(kHumanInterfaceDeviceServiceUUID)); |
| 499 | 503 |
| 500 scoped_ptr<NiceMockBluetoothDevice> device( | 504 scoped_ptr<NiceMockBluetoothDevice> device( |
| 501 GetConnectableDevice(adapter.get(), "Heart Rate And HID Device", uuids)); | 505 GetConnectableDevice(adapter.get(), "Heart Rate And HID Device", uuids)); |
| 502 | 506 |
| 503 device->AddMockService(GetGenericAccessService(adapter.get(), device.get())); | 507 device->AddMockService(GetDeviceInformationService(device.get())); |
| 508 device->AddMockService(GetGenericAccessService(device.get())); | |
| 504 device->AddMockService(GetHeartRateService(adapter.get(), device.get())); | 509 device->AddMockService(GetHeartRateService(adapter.get(), device.get())); |
| 505 device->AddMockService( | 510 device->AddMockService( |
| 506 GetBaseGATTService(device.get(), kHumanInterfaceDeviceServiceUUID)); | 511 GetBaseGATTService(device.get(), kHumanInterfaceDeviceServiceUUID)); |
| 507 adapter->AddMockDevice(std::move(device)); | 512 adapter->AddMockDevice(std::move(device)); |
| 508 | 513 |
| 509 return adapter; | 514 return adapter; |
| 510 } | 515 } |
| 511 | 516 |
| 512 // static | 517 // static |
| 513 scoped_refptr<NiceMockBluetoothAdapter> | 518 scoped_refptr<NiceMockBluetoothAdapter> |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 698 | 703 |
| 699 ON_CALL(*service, GetCharacteristic(_)) | 704 ON_CALL(*service, GetCharacteristic(_)) |
| 700 .WillByDefault(Invoke(service.get(), | 705 .WillByDefault(Invoke(service.get(), |
| 701 &MockBluetoothGattService::GetMockCharacteristic)); | 706 &MockBluetoothGattService::GetMockCharacteristic)); |
| 702 | 707 |
| 703 return service; | 708 return service; |
| 704 } | 709 } |
| 705 | 710 |
| 706 // static | 711 // static |
| 707 scoped_ptr<NiceMockBluetoothGattService> | 712 scoped_ptr<NiceMockBluetoothGattService> |
| 713 LayoutTestBluetoothAdapterProvider::GetDeviceInformationService( | |
| 714 device::MockBluetoothDevice* device) { | |
| 715 scoped_ptr<NiceMockBluetoothGattService> device_information( | |
| 716 GetBaseGATTService(device, kDeviceInformationServiceUUID)); | |
| 717 | |
| 718 scoped_ptr<NiceMockBluetoothGattCharacteristic> serial_number_string( | |
| 719 GetBaseGATTCharacteristic(device_information.get(), | |
| 720 kSerialNumberStringUUID, | |
| 721 BluetoothGattCharacteristic::PROPERTY_READ)); | |
| 722 | |
| 723 EXPECT_CALL(*serial_number_string, ReadRemoteCharacteristic(_, _)).Times(0); | |
|
ortuno
2016/02/24 23:08:17
I think you should just CHECK. I've had cases in w
scheib
2016/02/24 23:38:52
Done.
| |
| 724 | |
| 725 device_information->AddMockCharacteristic(std::move(serial_number_string)); | |
| 726 | |
| 727 return device_information; | |
| 728 } | |
| 729 | |
| 730 // static | |
| 731 scoped_ptr<NiceMockBluetoothGattService> | |
| 708 LayoutTestBluetoothAdapterProvider::GetGenericAccessService( | 732 LayoutTestBluetoothAdapterProvider::GetGenericAccessService( |
| 709 MockBluetoothAdapter* adapter, | 733 device::MockBluetoothDevice* device) { |
| 710 MockBluetoothDevice* device) { | |
| 711 scoped_ptr<NiceMockBluetoothGattService> generic_access( | 734 scoped_ptr<NiceMockBluetoothGattService> generic_access( |
| 712 GetBaseGATTService(device, kGenericAccessServiceUUID)); | 735 GetBaseGATTService(device, kGenericAccessServiceUUID)); |
| 713 | 736 |
| 714 scoped_ptr<NiceMockBluetoothGattCharacteristic> device_name( | 737 scoped_ptr<NiceMockBluetoothGattCharacteristic> device_name( |
| 715 GetBaseGATTCharacteristic( | 738 GetBaseGATTCharacteristic( |
| 716 generic_access.get(), kDeviceNameUUID, | 739 generic_access.get(), kDeviceNameUUID, |
| 717 BluetoothGattCharacteristic::PROPERTY_READ | | 740 BluetoothGattCharacteristic::PROPERTY_READ | |
| 718 BluetoothGattCharacteristic::PROPERTY_WRITE)); | 741 BluetoothGattCharacteristic::PROPERTY_WRITE)); |
| 719 | 742 |
| 720 // Read response. | 743 // Read response. |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 904 return BluetoothUUID(); | 927 return BluetoothUUID(); |
| 905 } | 928 } |
| 906 | 929 |
| 907 // static | 930 // static |
| 908 std::string LayoutTestBluetoothAdapterProvider::makeMACAddress(uint64_t addr) { | 931 std::string LayoutTestBluetoothAdapterProvider::makeMACAddress(uint64_t addr) { |
| 909 return BluetoothDevice::CanonicalizeAddress( | 932 return BluetoothDevice::CanonicalizeAddress( |
| 910 base::StringPrintf("%012" PRIx64, addr)); | 933 base::StringPrintf("%012" PRIx64, addr)); |
| 911 } | 934 } |
| 912 | 935 |
| 913 } // namespace content | 936 } // namespace content |
| OLD | NEW |