| Index: chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc
|
| diff --git a/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc b/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc
|
| index 47efda8c23fc90e9b3c69d388e2acd6094346418..6c4e78017eff816c7af61736fd5dbc59daddd206 100644
|
| --- a/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc
|
| +++ b/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc
|
| @@ -11,6 +11,7 @@
|
| #include "device/bluetooth/test/mock_bluetooth_adapter.h"
|
| #include "device/bluetooth/test/mock_bluetooth_device.h"
|
| #include "device/bluetooth/test/mock_bluetooth_gatt_characteristic.h"
|
| +#include "device/bluetooth/test/mock_bluetooth_gatt_connection.h"
|
| #include "device/bluetooth/test/mock_bluetooth_gatt_descriptor.h"
|
| #include "device/bluetooth/test/mock_bluetooth_gatt_service.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| @@ -19,11 +20,13 @@ using device::BluetoothUUID;
|
| using device::BluetoothAdapter;
|
| using device::BluetoothDevice;
|
| using device::BluetoothGattCharacteristic;
|
| +using device::BluetoothGattConnection;
|
| using device::BluetoothGattDescriptor;
|
| using device::BluetoothGattService;
|
| using device::MockBluetoothAdapter;
|
| using device::MockBluetoothDevice;
|
| using device::MockBluetoothGattCharacteristic;
|
| +using device::MockBluetoothGattConnection;
|
| using device::MockBluetoothGattDescriptor;
|
| using device::MockBluetoothGattService;
|
| using extensions::BluetoothLowEnergyEventRouter;
|
| @@ -39,8 +42,11 @@ namespace utils = extension_function_test_utils;
|
| namespace {
|
|
|
| // Test service constants.
|
| -const char kTestLeDeviceAddress[] = "11:22:33:44:55:66";
|
| -const char kTestLeDeviceName[] = "Test LE Device";
|
| +const char kTestLeDeviceAddress0[] = "11:22:33:44:55:66";
|
| +const char kTestLeDeviceName0[] = "Test LE Device 0";
|
| +
|
| +const char kTestLeDeviceAddress1[] = "77:88:99:AA:BB:CC";
|
| +const char kTestLeDeviceName1[] = "Test LE Device 1";
|
|
|
| const char kTestServiceId0[] = "service_id0";
|
| const char kTestServiceUuid0[] = "1234";
|
| @@ -103,23 +109,31 @@ class BluetoothLowEnergyApiTest : public ExtensionApiTest {
|
|
|
| event_router()->SetAdapterForTesting(mock_adapter_);
|
|
|
| - device_.reset(
|
| + device0_.reset(
|
| new testing::NiceMock<MockBluetoothDevice>(mock_adapter_,
|
| 0,
|
| - kTestLeDeviceName,
|
| - kTestLeDeviceAddress,
|
| + kTestLeDeviceName0,
|
| + kTestLeDeviceAddress0,
|
| false /* paired */,
|
| true /* connected */));
|
|
|
| + device1_.reset(
|
| + new testing::NiceMock<MockBluetoothDevice>(mock_adapter_,
|
| + 0,
|
| + kTestLeDeviceName1,
|
| + kTestLeDeviceAddress1,
|
| + false /* paired */,
|
| + false /* connected */));
|
| +
|
| service0_.reset(new testing::NiceMock<MockBluetoothGattService>(
|
| - device_.get(),
|
| + device0_.get(),
|
| kTestServiceId0,
|
| BluetoothUUID(kTestServiceUuid0),
|
| true /* is_primary */,
|
| false /* is_local */));
|
|
|
| service1_.reset(new testing::NiceMock<MockBluetoothGattService>(
|
| - device_.get(),
|
| + device0_.get(),
|
| kTestServiceId1,
|
| BluetoothUUID(kTestServiceUuid1),
|
| false /* is_primary */,
|
| @@ -192,7 +206,8 @@ class BluetoothLowEnergyApiTest : public ExtensionApiTest {
|
| }
|
|
|
| testing::StrictMock<MockBluetoothAdapter>* mock_adapter_;
|
| - scoped_ptr<testing::NiceMock<MockBluetoothDevice> > device_;
|
| + scoped_ptr<testing::NiceMock<MockBluetoothDevice> > device0_;
|
| + scoped_ptr<testing::NiceMock<MockBluetoothDevice> > device1_;
|
| scoped_ptr<testing::NiceMock<MockBluetoothGattService> > service0_;
|
| scoped_ptr<testing::NiceMock<MockBluetoothGattService> > service1_;
|
| scoped_ptr<testing::NiceMock<MockBluetoothGattCharacteristic> > chrc0_;
|
| @@ -205,29 +220,39 @@ class BluetoothLowEnergyApiTest : public ExtensionApiTest {
|
| scoped_refptr<extensions::Extension> empty_extension_;
|
| };
|
|
|
| -void ReadValueSuccessCallback(
|
| - const base::Callback<void(const std::vector<uint8>&)>& callback,
|
| - const base::Closure& error_callback) {
|
| - std::vector<uint8> value;
|
| - callback.Run(value);
|
| +ACTION_TEMPLATE(InvokeCallbackArgument,
|
| + HAS_1_TEMPLATE_PARAMS(int, k),
|
| + AND_0_VALUE_PARAMS()) {
|
| + ::std::tr1::get<k>(args).Run();
|
| }
|
|
|
| -void ReadValueErrorCallback(
|
| - const base::Callback<void(const std::vector<uint8>&)>& callback,
|
| - const base::Closure& error_callback) {
|
| - error_callback.Run();
|
| +ACTION_TEMPLATE(InvokeCallbackArgument,
|
| + HAS_1_TEMPLATE_PARAMS(int, k),
|
| + AND_1_VALUE_PARAMS(p0)) {
|
| + ::std::tr1::get<k>(args).Run(p0);
|
| }
|
|
|
| -void WriteValueSuccessCallback(const std::vector<uint8>& value,
|
| - const base::Closure& callback,
|
| - const base::Closure& error_callback) {
|
| - callback.Run();
|
| +ACTION_TEMPLATE(InvokeCallbackWithScopedPtrArg,
|
| + HAS_2_TEMPLATE_PARAMS(int, k, typename, T),
|
| + AND_1_VALUE_PARAMS(p0)) {
|
| + ::std::tr1::get<k>(args).Run(scoped_ptr<T>(p0));
|
| }
|
|
|
| -void WriteValueErrorCallback(const std::vector<uint8>& value,
|
| - const base::Closure& callback,
|
| - const base::Closure& error_callback) {
|
| - error_callback.Run();
|
| +BluetoothGattConnection* CreateGattConnection(
|
| + const std::string& device_address,
|
| + bool expect_disconnect) {
|
| + testing::NiceMock<MockBluetoothGattConnection>* conn =
|
| + new testing::NiceMock<MockBluetoothGattConnection>(device_address);
|
| +
|
| + if (expect_disconnect) {
|
| + EXPECT_CALL(*conn, Disconnect(_))
|
| + .Times(1)
|
| + .WillOnce(InvokeCallbackArgument<0>());
|
| + } else {
|
| + EXPECT_CALL(*conn, Disconnect(_)).Times(0);
|
| + }
|
| +
|
| + return conn;
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetServices) {
|
| @@ -241,9 +266,9 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetServices) {
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(3)
|
| .WillOnce(Return(static_cast<BluetoothDevice*>(NULL)))
|
| - .WillRepeatedly(Return(device_.get()));
|
| + .WillRepeatedly(Return(device0_.get()));
|
|
|
| - EXPECT_CALL(*device_, GetGattServices())
|
| + EXPECT_CALL(*device0_, GetGattServices())
|
| .Times(2)
|
| .WillOnce(Return(std::vector<BluetoothGattService*>()))
|
| .WillOnce(Return(services));
|
| @@ -263,15 +288,15 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetService) {
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(3)
|
| .WillOnce(Return(static_cast<BluetoothDevice*>(NULL)))
|
| - .WillRepeatedly(Return(device_.get()));
|
| + .WillRepeatedly(Return(device0_.get()));
|
|
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(2)
|
| .WillOnce(Return(static_cast<BluetoothGattService*>(NULL)))
|
| .WillOnce(Return(service0_.get()));
|
| @@ -286,8 +311,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetService) {
|
|
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
|
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ServiceEvents) {
|
| @@ -300,19 +325,19 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ServiceEvents) {
|
| test_data_dir_.AppendASCII("bluetooth_low_energy/service_events")));
|
|
|
| // Cause events to be sent to the extension.
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
|
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service1_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service1_.get());
|
| event_router()->GattServiceChanged(service1_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
|
|
| EXPECT_TRUE(listener.WaitUntilSatisfied());
|
| listener.Reply("go");
|
|
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
| - event_router()->GattServiceRemoved(device_.get(), service1_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service1_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedService) {
|
| @@ -326,36 +351,36 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedService) {
|
| // 1. getService success.
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(1)
|
| - .WillOnce(Return(device_.get()));
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + .WillOnce(Return(device0_.get()));
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(1)
|
| .WillOnce(Return(service0_.get()));
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
|
|
| ExtensionTestMessageListener get_service_success_listener("getServiceSuccess",
|
| true);
|
| EXPECT_TRUE(get_service_success_listener.WaitUntilSatisfied());
|
| testing::Mock::VerifyAndClearExpectations(mock_adapter_);
|
| - testing::Mock::VerifyAndClearExpectations(device_.get());
|
| + testing::Mock::VerifyAndClearExpectations(device0_.get());
|
|
|
| // 2. getService fail.
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_)).Times(0);
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0)).Times(0);
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)).Times(0);
|
|
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
|
|
| ExtensionTestMessageListener get_service_fail_listener("getServiceFail",
|
| true);
|
| EXPECT_TRUE(get_service_fail_listener.WaitUntilSatisfied());
|
| testing::Mock::VerifyAndClearExpectations(mock_adapter_);
|
| - testing::Mock::VerifyAndClearExpectations(device_.get());
|
| + testing::Mock::VerifyAndClearExpectations(device0_.get());
|
|
|
| get_service_fail_listener.Reply("go");
|
|
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetIncludedServices) {
|
| @@ -372,15 +397,15 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetIncludedServices) {
|
| // Set up for the rest of the calls before replying. Included services can be
|
| // returned even if there is no instance ID mapping for them yet, so no need
|
| // to call GattServiceAdded for |service1_| here.
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
|
|
| std::vector<BluetoothGattService*> includes;
|
| includes.push_back(service1_.get());
|
| - EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress))
|
| + EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress0))
|
| .Times(2)
|
| - .WillRepeatedly(Return(device_.get()));
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + .WillRepeatedly(Return(device0_.get()));
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(2)
|
| .WillRepeatedly(Return(service0_.get()));
|
| EXPECT_CALL(*service0_, GetIncludedServices())
|
| @@ -396,8 +421,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetIncludedServices) {
|
| listener.Reply("go");
|
|
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetCharacteristics) {
|
| @@ -408,12 +433,12 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetCharacteristics) {
|
| characteristics.push_back(chrc0_.get());
|
| characteristics.push_back(chrc1_.get());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_)).Times(3).WillRepeatedly(
|
| - Return(device_.get()));
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + Return(device0_.get()));
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(3)
|
| .WillOnce(Return(static_cast<BluetoothGattService*>(NULL)))
|
| .WillRepeatedly(Return(service0_.get()));
|
| @@ -430,24 +455,24 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetCharacteristics) {
|
| listener.Reply("go");
|
|
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetCharacteristic) {
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(4)
|
| .WillOnce(Return(static_cast<BluetoothDevice*>(NULL)))
|
| - .WillRepeatedly(Return(device_.get()));
|
| + .WillRepeatedly(Return(device0_.get()));
|
|
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(3)
|
| .WillOnce(Return(static_cast<BluetoothGattService*>(NULL)))
|
| .WillRepeatedly(Return(service0_.get()));
|
| @@ -468,22 +493,22 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetCharacteristic) {
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
|
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, CharacteristicProperties) {
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(12)
|
| - .WillRepeatedly(Return(device_.get()));
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + .WillRepeatedly(Return(device0_.get()));
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(12)
|
| .WillRepeatedly(Return(service0_.get()));
|
| EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0))
|
| @@ -528,8 +553,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, CharacteristicProperties) {
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
|
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedCharacteristic) {
|
| @@ -538,16 +563,16 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedCharacteristic) {
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(1)
|
| - .WillOnce(Return(device_.get()));
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + .WillOnce(Return(device0_.get()));
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(1)
|
| .WillOnce(Return(service0_.get()));
|
| EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0))
|
| .Times(1)
|
| .WillOnce(Return(chrc0_.get()));
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
|
|
| ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII(
|
| @@ -556,11 +581,11 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedCharacteristic) {
|
| ExtensionTestMessageListener listener("ready", true);
|
| EXPECT_TRUE(listener.WaitUntilSatisfied());
|
| testing::Mock::VerifyAndClearExpectations(mock_adapter_);
|
| - testing::Mock::VerifyAndClearExpectations(device_.get());
|
| + testing::Mock::VerifyAndClearExpectations(device0_.get());
|
| testing::Mock::VerifyAndClearExpectations(service0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_)).Times(0);
|
| - EXPECT_CALL(*device_, GetGattService(_)).Times(0);
|
| + EXPECT_CALL(*device0_, GetGattService(_)).Times(0);
|
| EXPECT_CALL(*service0_, GetCharacteristic(_)).Times(0);
|
|
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| @@ -572,8 +597,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedCharacteristic) {
|
| listener.Reply("go");
|
|
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, CharacteristicValueChanged) {
|
| @@ -586,9 +611,9 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, CharacteristicValueChanged) {
|
| "bluetooth_low_energy/characteristic_value_changed")));
|
|
|
| // Cause events to be sent to the extension.
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service1_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service1_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
| event_router()->GattCharacteristicAdded(service1_.get(), chrc2_.get());
|
|
|
| @@ -604,24 +629,24 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, CharacteristicValueChanged) {
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
| event_router()->GattCharacteristicRemoved(service1_.get(), chrc2_.get());
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service1_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service1_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ReadCharacteristicValue) {
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(3)
|
| - .WillRepeatedly(Return(device_.get()));
|
| + .WillRepeatedly(Return(device0_.get()));
|
|
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(3)
|
| .WillRepeatedly(Return(service0_.get()));
|
|
|
| @@ -629,10 +654,11 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ReadCharacteristicValue) {
|
| .Times(3)
|
| .WillRepeatedly(Return(chrc0_.get()));
|
|
|
| + std::vector<uint8> value;
|
| EXPECT_CALL(*chrc0_, ReadRemoteCharacteristic(_, _))
|
| .Times(2)
|
| - .WillOnce(Invoke(&ReadValueErrorCallback))
|
| - .WillOnce(Invoke(&ReadValueSuccessCallback));
|
| + .WillOnce(InvokeCallbackArgument<1>())
|
| + .WillOnce(InvokeCallbackArgument<0>(value));
|
|
|
| ExtensionTestMessageListener listener("ready", true);
|
| ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII(
|
| @@ -644,23 +670,23 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ReadCharacteristicValue) {
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
|
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, WriteCharacteristicValue) {
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(3)
|
| - .WillRepeatedly(Return(device_.get()));
|
| + .WillRepeatedly(Return(device0_.get()));
|
|
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(3)
|
| .WillRepeatedly(Return(service0_.get()));
|
|
|
| @@ -671,9 +697,9 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, WriteCharacteristicValue) {
|
| std::vector<uint8> write_value;
|
| EXPECT_CALL(*chrc0_, WriteRemoteCharacteristic(_, _, _))
|
| .Times(2)
|
| - .WillOnce(Invoke(&WriteValueErrorCallback))
|
| - .WillOnce(
|
| - DoAll(SaveArg<0>(&write_value), Invoke(&WriteValueSuccessCallback)));
|
| + .WillOnce(InvokeCallbackArgument<2>())
|
| + .WillOnce(DoAll(SaveArg<0>(&write_value), InvokeCallbackArgument<1>()));
|
| +
|
| EXPECT_CALL(*chrc0_, GetValue()).Times(1).WillOnce(ReturnRef(write_value));
|
|
|
| ExtensionTestMessageListener listener("ready", true);
|
| @@ -686,8 +712,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, WriteCharacteristicValue) {
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
|
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetDescriptors) {
|
| @@ -698,14 +724,14 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetDescriptors) {
|
| descriptors.push_back(desc0_.get());
|
| descriptors.push_back(desc1_.get());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(3)
|
| - .WillRepeatedly(Return(device_.get()));
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + .WillRepeatedly(Return(device0_.get()));
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(3)
|
| .WillRepeatedly(Return(service0_.get()));
|
| EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0))
|
| @@ -727,25 +753,25 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetDescriptors) {
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
|
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetDescriptor) {
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
| event_router()->GattDescriptorAdded(chrc0_.get(), desc0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(5)
|
| .WillOnce(Return(static_cast<BluetoothDevice*>(NULL)))
|
| - .WillRepeatedly(Return(device_.get()));
|
| + .WillRepeatedly(Return(device0_.get()));
|
|
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(4)
|
| .WillOnce(Return(static_cast<BluetoothGattService*>(NULL)))
|
| .WillRepeatedly(Return(service0_.get()));
|
| @@ -772,8 +798,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetDescriptor) {
|
|
|
| event_router()->GattDescriptorRemoved(chrc0_.get(), desc0_.get());
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedDescriptor) {
|
| @@ -782,8 +808,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedDescriptor) {
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(1)
|
| - .WillOnce(Return(device_.get()));
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + .WillOnce(Return(device0_.get()));
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(1)
|
| .WillOnce(Return(service0_.get()));
|
| EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0))
|
| @@ -793,8 +819,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedDescriptor) {
|
| .Times(1)
|
| .WillOnce(Return(desc0_.get()));
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
| event_router()->GattDescriptorAdded(chrc0_.get(), desc0_.get());
|
|
|
| @@ -804,12 +830,12 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedDescriptor) {
|
| ExtensionTestMessageListener listener("ready", true);
|
| EXPECT_TRUE(listener.WaitUntilSatisfied());
|
| testing::Mock::VerifyAndClearExpectations(mock_adapter_);
|
| - testing::Mock::VerifyAndClearExpectations(device_.get());
|
| + testing::Mock::VerifyAndClearExpectations(device0_.get());
|
| testing::Mock::VerifyAndClearExpectations(service0_.get());
|
| testing::Mock::VerifyAndClearExpectations(chrc0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_)).Times(0);
|
| - EXPECT_CALL(*device_, GetGattService(_)).Times(0);
|
| + EXPECT_CALL(*device0_, GetGattService(_)).Times(0);
|
| EXPECT_CALL(*service0_, GetCharacteristic(_)).Times(0);
|
| EXPECT_CALL(*chrc0_, GetDescriptor(_)).Times(0);
|
|
|
| @@ -823,16 +849,16 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetRemovedDescriptor) {
|
|
|
| EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, DescriptorValueChanged) {
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
| event_router()->GattDescriptorAdded(chrc0_.get(), desc0_.get());
|
| event_router()->GattDescriptorAdded(chrc0_.get(), desc1_.get());
|
| @@ -854,24 +880,24 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, DescriptorValueChanged) {
|
| event_router()->GattDescriptorRemoved(chrc0_.get(), desc1_.get());
|
| event_router()->GattDescriptorRemoved(chrc0_.get(), desc0_.get());
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ReadDescriptorValue) {
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
| event_router()->GattDescriptorAdded(chrc0_.get(), desc0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(3)
|
| - .WillRepeatedly(Return(device_.get()));
|
| + .WillRepeatedly(Return(device0_.get()));
|
|
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(3)
|
| .WillRepeatedly(Return(service0_.get()));
|
|
|
| @@ -883,10 +909,11 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ReadDescriptorValue) {
|
| .Times(3)
|
| .WillRepeatedly(Return(desc0_.get()));
|
|
|
| + std::vector<uint8> value;
|
| EXPECT_CALL(*desc0_, ReadRemoteDescriptor(_, _))
|
| .Times(2)
|
| - .WillOnce(Invoke(&ReadValueErrorCallback))
|
| - .WillOnce(Invoke(&ReadValueSuccessCallback));
|
| + .WillOnce(InvokeCallbackArgument<1>())
|
| + .WillOnce(InvokeCallbackArgument<0>(value));
|
|
|
| ExtensionTestMessageListener listener("ready", true);
|
| ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII(
|
| @@ -899,24 +926,24 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ReadDescriptorValue) {
|
|
|
| event_router()->GattDescriptorRemoved(chrc0_.get(), desc0_.get());
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, WriteDescriptorValue) {
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
| event_router()->GattDescriptorAdded(chrc0_.get(), desc0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| .Times(3)
|
| - .WillRepeatedly(Return(device_.get()));
|
| + .WillRepeatedly(Return(device0_.get()));
|
|
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .Times(3)
|
| .WillRepeatedly(Return(service0_.get()));
|
|
|
| @@ -931,9 +958,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, WriteDescriptorValue) {
|
| std::vector<uint8> write_value;
|
| EXPECT_CALL(*desc0_, WriteRemoteDescriptor(_, _, _))
|
| .Times(2)
|
| - .WillOnce(Invoke(&WriteValueErrorCallback))
|
| - .WillOnce(
|
| - DoAll(SaveArg<0>(&write_value), Invoke(&WriteValueSuccessCallback)));
|
| + .WillOnce(InvokeCallbackArgument<2>())
|
| + .WillOnce(DoAll(SaveArg<0>(&write_value), InvokeCallbackArgument<1>()));
|
|
|
| EXPECT_CALL(*desc0_, GetValue()).Times(1).WillOnce(ReturnRef(write_value));
|
|
|
| @@ -948,8 +974,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, WriteDescriptorValue) {
|
|
|
| event_router()->GattDescriptorRemoved(chrc0_.get(), desc0_.get());
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, PermissionDenied) {
|
| @@ -965,8 +991,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, UuidPermissionMethods) {
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
| event_router()->GattDescriptorAdded(chrc0_.get(), desc0_.get());
|
|
|
| @@ -974,9 +1000,9 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, UuidPermissionMethods) {
|
| services.push_back(service0_.get());
|
|
|
| EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| - .WillRepeatedly(Return(device_.get()));
|
| - EXPECT_CALL(*device_, GetGattServices()).WillOnce(Return(services));
|
| - EXPECT_CALL(*device_, GetGattService(kTestServiceId0))
|
| + .WillRepeatedly(Return(device0_.get()));
|
| + EXPECT_CALL(*device0_, GetGattServices()).WillOnce(Return(services));
|
| + EXPECT_CALL(*device0_, GetGattService(kTestServiceId0))
|
| .WillRepeatedly(Return(service0_.get()));
|
| EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0))
|
| .WillRepeatedly(Return(chrc0_.get()));
|
| @@ -989,8 +1015,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, UuidPermissionMethods) {
|
|
|
| event_router()->GattDescriptorRemoved(chrc0_.get(), desc0_.get());
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, UuidPermissionEvents) {
|
| @@ -1002,8 +1028,8 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, UuidPermissionEvents) {
|
| "bluetooth_low_energy/uuid_permission_events")));
|
|
|
| // Cause events to be sent to the extension.
|
| - event_router()->DeviceAdded(mock_adapter_, device_.get());
|
| - event_router()->GattServiceAdded(device_.get(), service0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->GattServiceAdded(device0_.get(), service0_.get());
|
| event_router()->GattCharacteristicAdded(service0_.get(), chrc0_.get());
|
| event_router()->GattDescriptorAdded(chrc0_.get(), desc0_.get());
|
|
|
| @@ -1019,8 +1045,76 @@ IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, UuidPermissionEvents) {
|
|
|
| event_router()->GattDescriptorRemoved(chrc0_.get(), desc0_.get());
|
| event_router()->GattCharacteristicRemoved(service0_.get(), chrc0_.get());
|
| - event_router()->GattServiceRemoved(device_.get(), service0_.get());
|
| - event_router()->DeviceRemoved(mock_adapter_, device_.get());
|
| + event_router()->GattServiceRemoved(device0_.get(), service0_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GattConnection) {
|
| + ResultCatcher catcher;
|
| + catcher.RestrictToProfile(browser()->profile());
|
| +
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| + event_router()->DeviceAdded(mock_adapter_, device1_.get());
|
| +
|
| + EXPECT_CALL(*mock_adapter_, GetDevice(_))
|
| + .WillRepeatedly(Return(static_cast<BluetoothDevice*>(NULL)));
|
| + EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress0))
|
| + .WillRepeatedly(Return(device0_.get()));
|
| + EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress1))
|
| + .WillRepeatedly(Return(device1_.get()));
|
| + EXPECT_CALL(*device0_, CreateGattConnection(_, _))
|
| + .Times(3)
|
| + .WillOnce(InvokeCallbackArgument<1>(BluetoothDevice::ERROR_FAILED))
|
| + .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattConnection>(
|
| + CreateGattConnection(kTestLeDeviceAddress0,
|
| + true /* expect_disconnect */)))
|
| + .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattConnection>(
|
| + CreateGattConnection(kTestLeDeviceAddress0,
|
| + false /* expect_disconnect */)));
|
| + EXPECT_CALL(*device1_, CreateGattConnection(_, _))
|
| + .Times(1)
|
| + .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattConnection>(
|
| + CreateGattConnection(kTestLeDeviceAddress1,
|
| + true /* expect_disconnect */)));
|
| +
|
| + ASSERT_TRUE(LoadExtension(
|
| + test_data_dir_.AppendASCII("bluetooth_low_energy/gatt_connection")));
|
| + EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
| +
|
| + event_router()->DeviceRemoved(mock_adapter_, device1_.get());
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ReconnectAfterDisconnected) {
|
| + ResultCatcher catcher;
|
| + catcher.RestrictToProfile(browser()->profile());
|
| +
|
| + event_router()->DeviceAdded(mock_adapter_, device0_.get());
|
| +
|
| + EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress0))
|
| + .WillRepeatedly(Return(device0_.get()));
|
| +
|
| + MockBluetoothGattConnection* first_conn =
|
| + static_cast<MockBluetoothGattConnection*>(CreateGattConnection(
|
| + kTestLeDeviceAddress0, false /* expect_disconnect */));
|
| + EXPECT_CALL(*first_conn, IsConnected())
|
| + .Times(2)
|
| + .WillOnce(Return(true))
|
| + .WillOnce(Return(false));
|
| +
|
| + EXPECT_CALL(*device0_, CreateGattConnection(_, _))
|
| + .Times(2)
|
| + .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattConnection>(
|
| + first_conn))
|
| + .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattConnection>(
|
| + CreateGattConnection(kTestLeDeviceAddress0,
|
| + false /* expect_disconnect */)));
|
| +
|
| + ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII(
|
| + "bluetooth_low_energy/reconnect_after_disconnected")));
|
| + EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
|
| +
|
| + event_router()->DeviceRemoved(mock_adapter_, device0_.get());
|
| }
|
|
|
| } // namespace
|
|
|