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

Unified Diff: device/bluetooth/bluetooth_gatt_chromeos_unittest.cc

Issue 402303002: bluetoothLowEnergy: Send onServiceAdded after all characteristics are discovered (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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
« no previous file with comments | « device/bluetooth/bluetooth_device_chromeos.cc ('k') | device/bluetooth/bluetooth_gatt_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/bluetooth/bluetooth_gatt_chromeos_unittest.cc
diff --git a/device/bluetooth/bluetooth_gatt_chromeos_unittest.cc b/device/bluetooth/bluetooth_gatt_chromeos_unittest.cc
index 673ed5f35fb01974d7edf4acbb0dbb03ecb0fccc..a585f819799a78255a5b281678bc843a616dc696 100644
--- a/device/bluetooth/bluetooth_gatt_chromeos_unittest.cc
+++ b/device/bluetooth/bluetooth_gatt_chromeos_unittest.cc
@@ -134,6 +134,7 @@ class TestGattServiceObserver : public BluetoothGattService::Observer {
BluetoothDevice* device,
BluetoothGattService* service)
: gatt_service_changed_count_(0),
+ gatt_discovery_complete_count_(0),
gatt_characteristic_added_count_(0),
gatt_characteristic_removed_count_(0),
gatt_characteristic_value_changed_count_(0),
@@ -160,6 +161,14 @@ class TestGattServiceObserver : public BluetoothGattService::Observer {
}
// BluetoothGattService::Observer overrides.
+ virtual void GattDiscoveryCompleteForService(
+ BluetoothGattService* service) OVERRIDE {
+ ASSERT_EQ(gatt_service_id_, service->GetIdentifier());
+ ++gatt_discovery_complete_count_;
+
+ QuitMessageLoop();
+ }
+
virtual void GattServiceChanged(BluetoothGattService* service) OVERRIDE {
ASSERT_EQ(gatt_service_id_, service->GetIdentifier());
++gatt_service_changed_count_;
@@ -268,6 +277,7 @@ class TestGattServiceObserver : public BluetoothGattService::Observer {
}
int gatt_service_changed_count_;
+ int gatt_discovery_complete_count_;
int gatt_characteristic_added_count_;
int gatt_characteristic_removed_count_;
int gatt_characteristic_value_changed_count_;
@@ -608,6 +618,7 @@ TEST_F(BluetoothGattChromeOSTest, GattCharacteristicAddedAndRemoved) {
TestGattServiceObserver service_observer(adapter_, device, service);
EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_discovery_complete_count_);
EXPECT_EQ(0, service_observer.gatt_characteristic_added_count_);
EXPECT_EQ(0, service_observer.gatt_characteristic_removed_count_);
EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_);
@@ -619,7 +630,8 @@ TEST_F(BluetoothGattChromeOSTest, GattCharacteristicAddedAndRemoved) {
// 3 characteristics should appear. Only 1 of the characteristics sends
// value changed signals. Service changed should be fired once for
// descriptor added.
- EXPECT_EQ(4, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(1, service_observer.gatt_discovery_complete_count_);
EXPECT_EQ(3, service_observer.gatt_characteristic_added_count_);
EXPECT_EQ(0, service_observer.gatt_characteristic_removed_count_);
EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_);
@@ -627,16 +639,20 @@ TEST_F(BluetoothGattChromeOSTest, GattCharacteristicAddedAndRemoved) {
// Hide the characteristics. 3 removed signals should be received.
fake_bluetooth_gatt_characteristic_client_->HideHeartRateCharacteristics();
- EXPECT_EQ(8, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
EXPECT_EQ(3, service_observer.gatt_characteristic_added_count_);
EXPECT_EQ(3, service_observer.gatt_characteristic_removed_count_);
EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_);
EXPECT_TRUE(service->GetCharacteristics().empty());
- // Re-expose the heart rate characteristics.
+ // Re-expose the heart rate characteristics. We shouldn't get another
+ // GattDiscoveryCompleteForService call, since the service thinks that
+ // discovery is done. On the bluetoothd side, characteristics will be removed
+ // only if the service will also be subsequently removed.
fake_bluetooth_gatt_characteristic_client_->ExposeHeartRateCharacteristics(
fake_bluetooth_gatt_service_client_->GetHeartRateServicePath());
- EXPECT_EQ(12, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(1, service_observer.gatt_discovery_complete_count_);
EXPECT_EQ(6, service_observer.gatt_characteristic_added_count_);
EXPECT_EQ(3, service_observer.gatt_characteristic_removed_count_);
EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_);
@@ -644,7 +660,7 @@ TEST_F(BluetoothGattChromeOSTest, GattCharacteristicAddedAndRemoved) {
// Hide the service. All characteristics should disappear.
fake_bluetooth_gatt_service_client_->HideHeartRateService();
- EXPECT_EQ(16, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
EXPECT_EQ(6, service_observer.gatt_characteristic_added_count_);
EXPECT_EQ(6, service_observer.gatt_characteristic_removed_count_);
EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_);
@@ -679,7 +695,7 @@ TEST_F(BluetoothGattChromeOSTest, GattDescriptorAddedAndRemoved) {
// Run the message loop so that the characteristics appear.
base::MessageLoop::current()->Run();
- EXPECT_EQ(4, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
// Only the Heart Rate Measurement characteristic has a descriptor.
EXPECT_EQ(1, service_observer.gatt_descriptor_added_count_);
@@ -717,7 +733,7 @@ TEST_F(BluetoothGattChromeOSTest, GattDescriptorAddedAndRemoved) {
fake_bluetooth_gatt_descriptor_client_->HideDescriptor(
dbus::ObjectPath(descriptor->GetIdentifier()));
EXPECT_TRUE(characteristic->GetDescriptors().empty());
- EXPECT_EQ(5, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
EXPECT_EQ(1, service_observer.gatt_descriptor_added_count_);
EXPECT_EQ(1, service_observer.gatt_descriptor_removed_count_);
EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_);
@@ -729,7 +745,7 @@ TEST_F(BluetoothGattChromeOSTest, GattDescriptorAddedAndRemoved) {
dbus::ObjectPath(characteristic->GetIdentifier()),
FakeBluetoothGattDescriptorClient::
kClientCharacteristicConfigurationUUID);
- EXPECT_EQ(6, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
EXPECT_EQ(1U, characteristic->GetDescriptors().size());
EXPECT_EQ(2, service_observer.gatt_descriptor_added_count_);
EXPECT_EQ(1, service_observer.gatt_descriptor_removed_count_);
@@ -1001,12 +1017,14 @@ TEST_F(BluetoothGattChromeOSTest, GattDescriptorValue) {
TestGattServiceObserver service_observer(adapter_, device, service);
EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_discovery_complete_count_);
EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_);
EXPECT_TRUE(service->GetCharacteristics().empty());
// Run the message loop so that the characteristics appear.
base::MessageLoop::current()->Run();
- EXPECT_EQ(4, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(1, service_observer.gatt_discovery_complete_count_);
// Only the Heart Rate Measurement characteristic has a descriptor.
BluetoothGattCharacteristic* characteristic = service->GetCharacteristic(
@@ -1043,7 +1061,7 @@ TEST_F(BluetoothGattChromeOSTest, GattDescriptorValue) {
EXPECT_EQ(0, error_callback_count_);
EXPECT_TRUE(ValuesEqual(last_read_value_, descriptor->GetValue()));
EXPECT_TRUE(ValuesEqual(desc_value, descriptor->GetValue()));
- EXPECT_EQ(4, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
EXPECT_EQ(1, service_observer.gatt_descriptor_value_changed_count_);
// Write value. Writes to this descriptor will fail.
@@ -1058,7 +1076,7 @@ TEST_F(BluetoothGattChromeOSTest, GattDescriptorValue) {
EXPECT_EQ(1, error_callback_count_);
EXPECT_TRUE(ValuesEqual(last_read_value_, descriptor->GetValue()));
EXPECT_FALSE(ValuesEqual(desc_value, descriptor->GetValue()));
- EXPECT_EQ(4, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
EXPECT_EQ(1, service_observer.gatt_descriptor_value_changed_count_);
// Read new value.
@@ -1071,7 +1089,7 @@ TEST_F(BluetoothGattChromeOSTest, GattDescriptorValue) {
EXPECT_EQ(1, error_callback_count_);
EXPECT_TRUE(ValuesEqual(last_read_value_, descriptor->GetValue()));
EXPECT_FALSE(ValuesEqual(desc_value, descriptor->GetValue()));
- EXPECT_EQ(4, service_observer.gatt_service_changed_count_);
+ EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
EXPECT_EQ(2, service_observer.gatt_descriptor_value_changed_count_);
}
« no previous file with comments | « device/bluetooth/bluetooth_device_chromeos.cc ('k') | device/bluetooth/bluetooth_gatt_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698