| Index: content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc
|
| diff --git a/content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc b/content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc
|
| index f74e692acb97e5310326869525612c045b8a32d0..f2703d64962a6d93340aa155ab7ad21682e1a6fb 100644
|
| --- a/content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc
|
| +++ b/content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc
|
| @@ -98,17 +98,19 @@ LayoutTestBluetoothAdapterProvider::GetBluetoothAdapter(
|
| return GetConnectableDeviceAdapter();
|
| else if (fake_adapter_name == "UnconnectableDeviceAdapter")
|
| return GetUnconnectableDeviceAdapter();
|
| - else if (fake_adapter_name == "ScanFilterCheckingAdapter")
|
| - return GetScanFilterCheckingAdapter();
|
| - else if (fake_adapter_name == "MultiDeviceAdapter")
|
| - return GetMultiDeviceAdapter();
|
| // New adapters
|
| else if (fake_adapter_name == "BaseAdapter")
|
| return GetBaseAdapter();
|
| + else if (fake_adapter_name == "ScanFilterCheckingAdapter")
|
| + return GetScanFilterCheckingAdapter();
|
| else if (fake_adapter_name == "EmptyAdapter")
|
| return GetEmptyAdapter();
|
| else if (fake_adapter_name == "FailStartDiscoveryAdapter")
|
| return GetFailStartDiscoveryAdapter();
|
| + // TODO(ortuno): Remove MultiDeviceAdapter in follow up patch.
|
| + else if (fake_adapter_name == "MultiDeviceAdapter" ||
|
| + fake_adapter_name == "GlucoseHeartRateAdapter")
|
| + return GetGlucoseHeartRateAdapter();
|
| else if (fake_adapter_name == "")
|
| return NULL;
|
|
|
| @@ -138,6 +140,33 @@ LayoutTestBluetoothAdapterProvider::GetBaseAdapter() {
|
|
|
| // static
|
| scoped_refptr<NiceMock<MockBluetoothAdapter>>
|
| +LayoutTestBluetoothAdapterProvider::GetScanFilterCheckingAdapter() {
|
| + scoped_refptr<NiceMock<MockBluetoothAdapter>> adapter(GetBaseAdapter());
|
| +
|
| + // This fails the test with an error message listing actual and expected UUIDs
|
| + // if StartDiscoverySessionWithFilter() is called with the wrong argument.
|
| + EXPECT_CALL(
|
| + *adapter,
|
| + StartDiscoverySessionWithFilterRaw(
|
| + ResultOf(&GetUUIDs, ElementsAre(BluetoothUUID(kGlucoseServiceUUID),
|
| + BluetoothUUID(kHeartRateServiceUUID),
|
| + BluetoothUUID(kBatteryServiceUUID))),
|
| + _, _))
|
| + .WillRepeatedly(RunCallbackWithResult<1 /* success_callback */>(
|
| + []() { return GetDiscoverySession(); }));
|
| +
|
| + // Any unexpected call results in the failure callback.
|
| + ON_CALL(*adapter, StartDiscoverySessionWithFilterRaw(_, _, _))
|
| + .WillByDefault(RunCallback<2 /* error_callback */>());
|
| +
|
| + // We need to add a device otherwise requestDevice would reject.
|
| + adapter->AddMockDevice(GetBatteryDevice(adapter.get()));
|
| +
|
| + return adapter.Pass();
|
| +}
|
| +
|
| +// static
|
| +scoped_refptr<NiceMock<MockBluetoothAdapter>>
|
| LayoutTestBluetoothAdapterProvider::GetFailStartDiscoveryAdapter() {
|
| scoped_refptr<NiceMock<MockBluetoothAdapter>> adapter(GetBaseAdapter());
|
|
|
| @@ -171,77 +200,96 @@ LayoutTestBluetoothAdapterProvider::GetDiscoverySession() {
|
| return discovery_session.Pass();
|
| }
|
|
|
| -// The functions after this haven't been updated to the new design yet.
|
| -
|
| // static
|
| scoped_refptr<NiceMock<MockBluetoothAdapter>>
|
| -LayoutTestBluetoothAdapterProvider::GetScanFilterCheckingAdapter() {
|
| - scoped_refptr<NiceMock<MockBluetoothAdapter>> adapter(
|
| - new NiceMock<MockBluetoothAdapter>());
|
| +LayoutTestBluetoothAdapterProvider::GetGlucoseHeartRateAdapter() {
|
| + scoped_refptr<NiceMock<MockBluetoothAdapter>> adapter(GetEmptyAdapter());
|
|
|
| - // This fails the test with an error message listing actual and expected UUIDs
|
| - // if StartDiscoverySessionWithFilter() is called with the wrong argument.
|
| - EXPECT_CALL(
|
| - *adapter,
|
| - StartDiscoverySessionWithFilterRaw(
|
| - ResultOf(&GetUUIDs, ElementsAre(BluetoothUUID(kGlucoseServiceUUID),
|
| - BluetoothUUID(kHeartRateServiceUUID),
|
| - BluetoothUUID(kBatteryServiceUUID))),
|
| - _, _))
|
| - .WillRepeatedly(RunCallbackWithResult<1 /* success_callback */>(
|
| - []() { return GetDiscoverySession(); }));
|
| + adapter->AddMockDevice(GetHeartRateDevice(adapter.get()));
|
| + adapter->AddMockDevice(GetGlucoseDevice(adapter.get()));
|
|
|
| - // Any unexpected call results in the failure callback.
|
| - ON_CALL(*adapter, StartDiscoverySessionWithFilterRaw(_, _, _))
|
| - .WillByDefault(RunCallback<2 /* failure_callback */>());
|
| + return adapter.Pass();
|
| +}
|
|
|
| - scoped_ptr<NiceMock<MockBluetoothDevice>> battery_device =
|
| - GetEmptyDevice(adapter.get(), "Battery Device");
|
| - BluetoothDevice::UUIDList battery_uuid_list;
|
| - battery_uuid_list.push_back(BluetoothUUID(kBatteryServiceUUID));
|
| - ON_CALL(*battery_device, GetUUIDs()).WillByDefault(Return(battery_uuid_list));
|
| - adapter->AddMockDevice(battery_device.Pass());
|
| +// static
|
| +scoped_ptr<NiceMock<MockBluetoothDevice>>
|
| +LayoutTestBluetoothAdapterProvider::GetBaseDevice(
|
| + MockBluetoothAdapter* adapter,
|
| + const std::string& device_name,
|
| + device::BluetoothDevice::UUIDList uuids,
|
| + const std::string& address) {
|
| + scoped_ptr<NiceMock<MockBluetoothDevice>> device(
|
| + new NiceMock<MockBluetoothDevice>(adapter, 0x1F00 /* Bluetooth class */,
|
| + device_name, address, true /* paired */,
|
| + true /* connected */));
|
|
|
| - // This adapter isn't modified further, so we just return a hard-coded list.
|
| - ON_CALL(*adapter, GetDevices())
|
| - .WillByDefault(Return(adapter->GetConstMockDevices()));
|
| + ON_CALL(*device, GetUUIDs()).WillByDefault(Return(uuids));
|
|
|
| - return adapter.Pass();
|
| + // Using Invoke allows the device returned from this method to be futher
|
| + // modified and have more services added to it. The call to ::GetGattServices
|
| + // will invoke ::GetMockServices, returning all services added up to that
|
| + // time.
|
| + ON_CALL(*device, GetGattServices())
|
| + .WillByDefault(
|
| + Invoke(device.get(), &MockBluetoothDevice::GetMockServices));
|
| +
|
| + // The call to BluetoothDevice::GetGattService will invoke ::GetMockService
|
| + // which returns a service matching the identifier provided if the service
|
| + // was added to the mock.
|
| + ON_CALL(*device, GetGattService(_))
|
| + .WillByDefault(
|
| + Invoke(device.get(), &MockBluetoothDevice::GetMockService));
|
| +
|
| + ON_CALL(*device, GetVendorIDSource())
|
| + .WillByDefault(Return(BluetoothDevice::VENDOR_ID_BLUETOOTH));
|
| + ON_CALL(*device, GetVendorID()).WillByDefault(Return(0xFFFF));
|
| + ON_CALL(*device, GetProductID()).WillByDefault(Return(1));
|
| + ON_CALL(*device, GetDeviceID()).WillByDefault(Return(2));
|
| +
|
| + return device.Pass();
|
| }
|
|
|
| // static
|
| -scoped_refptr<NiceMock<MockBluetoothAdapter>>
|
| -LayoutTestBluetoothAdapterProvider::GetSingleEmptyDeviceAdapter() {
|
| - scoped_refptr<NiceMock<MockBluetoothAdapter>> adapter(GetEmptyAdapter());
|
| +scoped_ptr<testing::NiceMock<device::MockBluetoothDevice>>
|
| +LayoutTestBluetoothAdapterProvider::GetBatteryDevice(
|
| + MockBluetoothAdapter* adapter) {
|
| + BluetoothDevice::UUIDList uuids;
|
| + uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID));
|
| + uuids.push_back(BluetoothUUID(kBatteryServiceUUID));
|
|
|
| - adapter->AddMockDevice(GetEmptyDevice(adapter.get()));
|
| + return GetBaseDevice(adapter, "Battery Device", uuids, "00:00:00:00:01");
|
| +}
|
|
|
| - return adapter.Pass();
|
| +// static
|
| +scoped_ptr<testing::NiceMock<device::MockBluetoothDevice>>
|
| +LayoutTestBluetoothAdapterProvider::GetGlucoseDevice(
|
| + MockBluetoothAdapter* adapter) {
|
| + BluetoothDevice::UUIDList uuids;
|
| + uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID));
|
| + uuids.push_back(BluetoothUUID(kGlucoseServiceUUID));
|
| +
|
| + return GetBaseDevice(adapter, "Glucose Device", uuids, "00:00:00:00:02");
|
| }
|
|
|
| // static
|
| +scoped_ptr<testing::NiceMock<device::MockBluetoothDevice>>
|
| +LayoutTestBluetoothAdapterProvider::GetHeartRateDevice(
|
| + MockBluetoothAdapter* adapter) {
|
| + BluetoothDevice::UUIDList uuids;
|
| + uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID));
|
| + uuids.push_back(BluetoothUUID(kHeartRateServiceUUID));
|
| +
|
| + return GetBaseDevice(adapter, "Heart Rate Device", uuids, "00:00:00:00:03");
|
| +}
|
| +
|
| +// The functions after this haven't been updated to the new design yet.
|
| +
|
| +// static
|
| scoped_refptr<NiceMock<MockBluetoothAdapter>>
|
| -LayoutTestBluetoothAdapterProvider::GetMultiDeviceAdapter() {
|
| +LayoutTestBluetoothAdapterProvider::GetSingleEmptyDeviceAdapter() {
|
| scoped_refptr<NiceMock<MockBluetoothAdapter>> adapter(GetEmptyAdapter());
|
|
|
| - scoped_ptr<NiceMock<MockBluetoothDevice>> heart_rate_device =
|
| - GetEmptyDevice(adapter.get(), "Heart Rate Device");
|
| - BluetoothDevice::UUIDList heart_rate_uuid_list;
|
| - heart_rate_uuid_list.push_back(BluetoothUUID(kHeartRateServiceUUID));
|
| - heart_rate_uuid_list.push_back(BluetoothUUID(kGenericAccessServiceUUID));
|
| - heart_rate_uuid_list.push_back(BluetoothUUID(kGenericAttributeServiceUUID));
|
| - ON_CALL(*heart_rate_device, GetUUIDs())
|
| - .WillByDefault(Return(heart_rate_uuid_list));
|
| - adapter->AddMockDevice(heart_rate_device.Pass());
|
| -
|
| - scoped_ptr<NiceMock<MockBluetoothDevice>> glucose_device =
|
| - GetEmptyDevice(adapter.get(), "Glucose Device");
|
| - BluetoothDevice::UUIDList glucose_uuid_list;
|
| - glucose_uuid_list.push_back(BluetoothUUID(kGlucoseServiceUUID));
|
| - glucose_uuid_list.push_back(BluetoothUUID(kGenericAccessServiceUUID));
|
| - glucose_uuid_list.push_back(BluetoothUUID(kGenericAttributeServiceUUID));
|
| - ON_CALL(*glucose_device, GetUUIDs()).WillByDefault(Return(glucose_uuid_list));
|
| - adapter->AddMockDevice(glucose_device.Pass());
|
| + adapter->AddMockDevice(GetEmptyDevice(adapter.get()));
|
|
|
| return adapter.Pass();
|
| }
|
|
|