Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Unified Diff: chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc

Issue 349433002: chrome.bluetoothLowEnergy: Introduce connect and disconnect methods. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698