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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/scoped_vector.h" 5 #include "base/memory/scoped_vector.h"
6 #include "base/message_loop/message_loop.h" 6 #include "base/message_loop/message_loop.h"
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "chromeos/dbus/fake_bluetooth_adapter_client.h" 8 #include "chromeos/dbus/fake_bluetooth_adapter_client.h"
9 #include "chromeos/dbus/fake_bluetooth_agent_manager_client.h" 9 #include "chromeos/dbus/fake_bluetooth_agent_manager_client.h"
10 #include "chromeos/dbus/fake_bluetooth_device_client.h" 10 #include "chromeos/dbus/fake_bluetooth_device_client.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 std::string device_address_; 127 std::string device_address_;
128 scoped_refptr<BluetoothAdapter> adapter_; 128 scoped_refptr<BluetoothAdapter> adapter_;
129 }; 129 };
130 130
131 class TestGattServiceObserver : public BluetoothGattService::Observer { 131 class TestGattServiceObserver : public BluetoothGattService::Observer {
132 public: 132 public:
133 TestGattServiceObserver(scoped_refptr<BluetoothAdapter> adapter, 133 TestGattServiceObserver(scoped_refptr<BluetoothAdapter> adapter,
134 BluetoothDevice* device, 134 BluetoothDevice* device,
135 BluetoothGattService* service) 135 BluetoothGattService* service)
136 : gatt_service_changed_count_(0), 136 : gatt_service_changed_count_(0),
137 gatt_discovery_complete_count_(0),
137 gatt_characteristic_added_count_(0), 138 gatt_characteristic_added_count_(0),
138 gatt_characteristic_removed_count_(0), 139 gatt_characteristic_removed_count_(0),
139 gatt_characteristic_value_changed_count_(0), 140 gatt_characteristic_value_changed_count_(0),
140 gatt_descriptor_added_count_(0), 141 gatt_descriptor_added_count_(0),
141 gatt_descriptor_removed_count_(0), 142 gatt_descriptor_removed_count_(0),
142 gatt_descriptor_value_changed_count_(0), 143 gatt_descriptor_value_changed_count_(0),
143 device_address_(device->GetAddress()), 144 device_address_(device->GetAddress()),
144 gatt_service_id_(service->GetIdentifier()), 145 gatt_service_id_(service->GetIdentifier()),
145 adapter_(adapter) { 146 adapter_(adapter) {
146 service->AddObserver(this); 147 service->AddObserver(this);
147 } 148 }
148 149
149 virtual ~TestGattServiceObserver() { 150 virtual ~TestGattServiceObserver() {
150 // See if either the device or the service even exist. 151 // See if either the device or the service even exist.
151 BluetoothDevice* device = adapter_->GetDevice(device_address_); 152 BluetoothDevice* device = adapter_->GetDevice(device_address_);
152 if (!device) 153 if (!device)
153 return; 154 return;
154 155
155 BluetoothGattService* service = device->GetGattService(gatt_service_id_); 156 BluetoothGattService* service = device->GetGattService(gatt_service_id_);
156 if (!service) 157 if (!service)
157 return; 158 return;
158 159
159 service->RemoveObserver(this); 160 service->RemoveObserver(this);
160 } 161 }
161 162
162 // BluetoothGattService::Observer overrides. 163 // BluetoothGattService::Observer overrides.
164 virtual void GattDiscoveryCompleteForService(
165 BluetoothGattService* service) OVERRIDE {
166 ASSERT_EQ(gatt_service_id_, service->GetIdentifier());
167 ++gatt_discovery_complete_count_;
168
169 QuitMessageLoop();
170 }
171
163 virtual void GattServiceChanged(BluetoothGattService* service) OVERRIDE { 172 virtual void GattServiceChanged(BluetoothGattService* service) OVERRIDE {
164 ASSERT_EQ(gatt_service_id_, service->GetIdentifier()); 173 ASSERT_EQ(gatt_service_id_, service->GetIdentifier());
165 ++gatt_service_changed_count_; 174 ++gatt_service_changed_count_;
166 175
167 QuitMessageLoop(); 176 QuitMessageLoop();
168 } 177 }
169 178
170 virtual void GattCharacteristicAdded( 179 virtual void GattCharacteristicAdded(
171 BluetoothGattService* service, 180 BluetoothGattService* service,
172 BluetoothGattCharacteristic* characteristic) OVERRIDE { 181 BluetoothGattCharacteristic* characteristic) OVERRIDE {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 last_changed_descriptor_value_ = value; 270 last_changed_descriptor_value_ = value;
262 271
263 EXPECT_EQ(characteristic->GetDescriptor(last_gatt_descriptor_id_), 272 EXPECT_EQ(characteristic->GetDescriptor(last_gatt_descriptor_id_),
264 descriptor); 273 descriptor);
265 EXPECT_EQ(characteristic, descriptor->GetCharacteristic()); 274 EXPECT_EQ(characteristic, descriptor->GetCharacteristic());
266 275
267 QuitMessageLoop(); 276 QuitMessageLoop();
268 } 277 }
269 278
270 int gatt_service_changed_count_; 279 int gatt_service_changed_count_;
280 int gatt_discovery_complete_count_;
271 int gatt_characteristic_added_count_; 281 int gatt_characteristic_added_count_;
272 int gatt_characteristic_removed_count_; 282 int gatt_characteristic_removed_count_;
273 int gatt_characteristic_value_changed_count_; 283 int gatt_characteristic_value_changed_count_;
274 int gatt_descriptor_added_count_; 284 int gatt_descriptor_added_count_;
275 int gatt_descriptor_removed_count_; 285 int gatt_descriptor_removed_count_;
276 int gatt_descriptor_value_changed_count_; 286 int gatt_descriptor_value_changed_count_;
277 std::string last_gatt_characteristic_id_; 287 std::string last_gatt_characteristic_id_;
278 BluetoothUUID last_gatt_characteristic_uuid_; 288 BluetoothUUID last_gatt_characteristic_uuid_;
279 std::vector<uint8> last_changed_characteristic_value_; 289 std::vector<uint8> last_changed_characteristic_value_;
280 std::string last_gatt_descriptor_id_; 290 std::string last_gatt_descriptor_id_;
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 // characteristics. 611 // characteristics.
602 fake_bluetooth_gatt_service_client_->ExposeHeartRateService( 612 fake_bluetooth_gatt_service_client_->ExposeHeartRateService(
603 dbus::ObjectPath(FakeBluetoothDeviceClient::kLowEnergyPath)); 613 dbus::ObjectPath(FakeBluetoothDeviceClient::kLowEnergyPath));
604 ASSERT_EQ(1, observer.gatt_service_added_count_); 614 ASSERT_EQ(1, observer.gatt_service_added_count_);
605 615
606 BluetoothGattService* service = 616 BluetoothGattService* service =
607 device->GetGattService(observer.last_gatt_service_id_); 617 device->GetGattService(observer.last_gatt_service_id_);
608 618
609 TestGattServiceObserver service_observer(adapter_, device, service); 619 TestGattServiceObserver service_observer(adapter_, device, service);
610 EXPECT_EQ(0, service_observer.gatt_service_changed_count_); 620 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
621 EXPECT_EQ(0, service_observer.gatt_discovery_complete_count_);
611 EXPECT_EQ(0, service_observer.gatt_characteristic_added_count_); 622 EXPECT_EQ(0, service_observer.gatt_characteristic_added_count_);
612 EXPECT_EQ(0, service_observer.gatt_characteristic_removed_count_); 623 EXPECT_EQ(0, service_observer.gatt_characteristic_removed_count_);
613 EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_); 624 EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_);
614 EXPECT_TRUE(service->GetCharacteristics().empty()); 625 EXPECT_TRUE(service->GetCharacteristics().empty());
615 626
616 // Run the message loop so that the characteristics appear. 627 // Run the message loop so that the characteristics appear.
617 base::MessageLoop::current()->Run(); 628 base::MessageLoop::current()->Run();
618 629
619 // 3 characteristics should appear. Only 1 of the characteristics sends 630 // 3 characteristics should appear. Only 1 of the characteristics sends
620 // value changed signals. Service changed should be fired once for 631 // value changed signals. Service changed should be fired once for
621 // descriptor added. 632 // descriptor added.
622 EXPECT_EQ(4, service_observer.gatt_service_changed_count_); 633 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
634 EXPECT_EQ(1, service_observer.gatt_discovery_complete_count_);
623 EXPECT_EQ(3, service_observer.gatt_characteristic_added_count_); 635 EXPECT_EQ(3, service_observer.gatt_characteristic_added_count_);
624 EXPECT_EQ(0, service_observer.gatt_characteristic_removed_count_); 636 EXPECT_EQ(0, service_observer.gatt_characteristic_removed_count_);
625 EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_); 637 EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_);
626 EXPECT_EQ(3U, service->GetCharacteristics().size()); 638 EXPECT_EQ(3U, service->GetCharacteristics().size());
627 639
628 // Hide the characteristics. 3 removed signals should be received. 640 // Hide the characteristics. 3 removed signals should be received.
629 fake_bluetooth_gatt_characteristic_client_->HideHeartRateCharacteristics(); 641 fake_bluetooth_gatt_characteristic_client_->HideHeartRateCharacteristics();
630 EXPECT_EQ(8, service_observer.gatt_service_changed_count_); 642 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
631 EXPECT_EQ(3, service_observer.gatt_characteristic_added_count_); 643 EXPECT_EQ(3, service_observer.gatt_characteristic_added_count_);
632 EXPECT_EQ(3, service_observer.gatt_characteristic_removed_count_); 644 EXPECT_EQ(3, service_observer.gatt_characteristic_removed_count_);
633 EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_); 645 EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_);
634 EXPECT_TRUE(service->GetCharacteristics().empty()); 646 EXPECT_TRUE(service->GetCharacteristics().empty());
635 647
636 // Re-expose the heart rate characteristics. 648 // Re-expose the heart rate characteristics. We shouldn't get another
649 // GattDiscoveryCompleteForService call, since the service thinks that
650 // discovery is done. On the bluetoothd side, characteristics will be removed
651 // only if the service will also be subsequently removed.
637 fake_bluetooth_gatt_characteristic_client_->ExposeHeartRateCharacteristics( 652 fake_bluetooth_gatt_characteristic_client_->ExposeHeartRateCharacteristics(
638 fake_bluetooth_gatt_service_client_->GetHeartRateServicePath()); 653 fake_bluetooth_gatt_service_client_->GetHeartRateServicePath());
639 EXPECT_EQ(12, service_observer.gatt_service_changed_count_); 654 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
655 EXPECT_EQ(1, service_observer.gatt_discovery_complete_count_);
640 EXPECT_EQ(6, service_observer.gatt_characteristic_added_count_); 656 EXPECT_EQ(6, service_observer.gatt_characteristic_added_count_);
641 EXPECT_EQ(3, service_observer.gatt_characteristic_removed_count_); 657 EXPECT_EQ(3, service_observer.gatt_characteristic_removed_count_);
642 EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_); 658 EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_);
643 EXPECT_EQ(3U, service->GetCharacteristics().size()); 659 EXPECT_EQ(3U, service->GetCharacteristics().size());
644 660
645 // Hide the service. All characteristics should disappear. 661 // Hide the service. All characteristics should disappear.
646 fake_bluetooth_gatt_service_client_->HideHeartRateService(); 662 fake_bluetooth_gatt_service_client_->HideHeartRateService();
647 EXPECT_EQ(16, service_observer.gatt_service_changed_count_); 663 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
648 EXPECT_EQ(6, service_observer.gatt_characteristic_added_count_); 664 EXPECT_EQ(6, service_observer.gatt_characteristic_added_count_);
649 EXPECT_EQ(6, service_observer.gatt_characteristic_removed_count_); 665 EXPECT_EQ(6, service_observer.gatt_characteristic_removed_count_);
650 EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_); 666 EXPECT_EQ(0, service_observer.gatt_characteristic_value_changed_count_);
651 } 667 }
652 668
653 TEST_F(BluetoothGattChromeOSTest, GattDescriptorAddedAndRemoved) { 669 TEST_F(BluetoothGattChromeOSTest, GattDescriptorAddedAndRemoved) {
654 fake_bluetooth_device_client_->CreateDevice( 670 fake_bluetooth_device_client_->CreateDevice(
655 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 671 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
656 dbus::ObjectPath(FakeBluetoothDeviceClient::kLowEnergyPath)); 672 dbus::ObjectPath(FakeBluetoothDeviceClient::kLowEnergyPath));
657 BluetoothDevice* device = adapter_->GetDevice( 673 BluetoothDevice* device = adapter_->GetDevice(
(...skipping 14 matching lines...) Expand all
672 TestGattServiceObserver service_observer(adapter_, device, service); 688 TestGattServiceObserver service_observer(adapter_, device, service);
673 EXPECT_EQ(0, service_observer.gatt_service_changed_count_); 689 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
674 EXPECT_EQ(0, service_observer.gatt_descriptor_added_count_); 690 EXPECT_EQ(0, service_observer.gatt_descriptor_added_count_);
675 EXPECT_EQ(0, service_observer.gatt_descriptor_removed_count_); 691 EXPECT_EQ(0, service_observer.gatt_descriptor_removed_count_);
676 EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_); 692 EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_);
677 693
678 EXPECT_TRUE(service->GetCharacteristics().empty()); 694 EXPECT_TRUE(service->GetCharacteristics().empty());
679 695
680 // Run the message loop so that the characteristics appear. 696 // Run the message loop so that the characteristics appear.
681 base::MessageLoop::current()->Run(); 697 base::MessageLoop::current()->Run();
682 EXPECT_EQ(4, service_observer.gatt_service_changed_count_); 698 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
683 699
684 // Only the Heart Rate Measurement characteristic has a descriptor. 700 // Only the Heart Rate Measurement characteristic has a descriptor.
685 EXPECT_EQ(1, service_observer.gatt_descriptor_added_count_); 701 EXPECT_EQ(1, service_observer.gatt_descriptor_added_count_);
686 EXPECT_EQ(0, service_observer.gatt_descriptor_removed_count_); 702 EXPECT_EQ(0, service_observer.gatt_descriptor_removed_count_);
687 EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_); 703 EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_);
688 704
689 BluetoothGattCharacteristic* characteristic = service->GetCharacteristic( 705 BluetoothGattCharacteristic* characteristic = service->GetCharacteristic(
690 fake_bluetooth_gatt_characteristic_client_-> 706 fake_bluetooth_gatt_characteristic_client_->
691 GetBodySensorLocationPath().value()); 707 GetBodySensorLocationPath().value());
692 ASSERT_TRUE(characteristic); 708 ASSERT_TRUE(characteristic);
(...skipping 17 matching lines...) Expand all
710 descriptor->GetUUID()); 726 descriptor->GetUUID());
711 EXPECT_EQ(descriptor->GetUUID(), 727 EXPECT_EQ(descriptor->GetUUID(),
712 service_observer.last_gatt_descriptor_uuid_); 728 service_observer.last_gatt_descriptor_uuid_);
713 EXPECT_EQ(descriptor->GetIdentifier(), 729 EXPECT_EQ(descriptor->GetIdentifier(),
714 service_observer.last_gatt_descriptor_id_); 730 service_observer.last_gatt_descriptor_id_);
715 731
716 // Hide the descriptor. 732 // Hide the descriptor.
717 fake_bluetooth_gatt_descriptor_client_->HideDescriptor( 733 fake_bluetooth_gatt_descriptor_client_->HideDescriptor(
718 dbus::ObjectPath(descriptor->GetIdentifier())); 734 dbus::ObjectPath(descriptor->GetIdentifier()));
719 EXPECT_TRUE(characteristic->GetDescriptors().empty()); 735 EXPECT_TRUE(characteristic->GetDescriptors().empty());
720 EXPECT_EQ(5, service_observer.gatt_service_changed_count_); 736 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
721 EXPECT_EQ(1, service_observer.gatt_descriptor_added_count_); 737 EXPECT_EQ(1, service_observer.gatt_descriptor_added_count_);
722 EXPECT_EQ(1, service_observer.gatt_descriptor_removed_count_); 738 EXPECT_EQ(1, service_observer.gatt_descriptor_removed_count_);
723 EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_); 739 EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_);
724 740
725 // Expose the descriptor again. 741 // Expose the descriptor again.
726 service_observer.last_gatt_descriptor_id_.clear(); 742 service_observer.last_gatt_descriptor_id_.clear();
727 service_observer.last_gatt_descriptor_uuid_ = BluetoothUUID(); 743 service_observer.last_gatt_descriptor_uuid_ = BluetoothUUID();
728 fake_bluetooth_gatt_descriptor_client_->ExposeDescriptor( 744 fake_bluetooth_gatt_descriptor_client_->ExposeDescriptor(
729 dbus::ObjectPath(characteristic->GetIdentifier()), 745 dbus::ObjectPath(characteristic->GetIdentifier()),
730 FakeBluetoothGattDescriptorClient:: 746 FakeBluetoothGattDescriptorClient::
731 kClientCharacteristicConfigurationUUID); 747 kClientCharacteristicConfigurationUUID);
732 EXPECT_EQ(6, service_observer.gatt_service_changed_count_); 748 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
733 EXPECT_EQ(1U, characteristic->GetDescriptors().size()); 749 EXPECT_EQ(1U, characteristic->GetDescriptors().size());
734 EXPECT_EQ(2, service_observer.gatt_descriptor_added_count_); 750 EXPECT_EQ(2, service_observer.gatt_descriptor_added_count_);
735 EXPECT_EQ(1, service_observer.gatt_descriptor_removed_count_); 751 EXPECT_EQ(1, service_observer.gatt_descriptor_removed_count_);
736 EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_); 752 EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_);
737 753
738 descriptor = characteristic->GetDescriptors()[0]; 754 descriptor = characteristic->GetDescriptors()[0];
739 EXPECT_FALSE(descriptor->IsLocal()); 755 EXPECT_FALSE(descriptor->IsLocal());
740 EXPECT_EQ(BluetoothGattDescriptor::ClientCharacteristicConfigurationUuid(), 756 EXPECT_EQ(BluetoothGattDescriptor::ClientCharacteristicConfigurationUuid(),
741 descriptor->GetUUID()); 757 descriptor->GetUUID());
742 EXPECT_EQ(descriptor->GetUUID(), service_observer.last_gatt_descriptor_uuid_); 758 EXPECT_EQ(descriptor->GetUUID(), service_observer.last_gatt_descriptor_uuid_);
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
994 // characteristics. 1010 // characteristics.
995 fake_bluetooth_gatt_service_client_->ExposeHeartRateService( 1011 fake_bluetooth_gatt_service_client_->ExposeHeartRateService(
996 dbus::ObjectPath(FakeBluetoothDeviceClient::kLowEnergyPath)); 1012 dbus::ObjectPath(FakeBluetoothDeviceClient::kLowEnergyPath));
997 ASSERT_EQ(1, observer.gatt_service_added_count_); 1013 ASSERT_EQ(1, observer.gatt_service_added_count_);
998 1014
999 BluetoothGattService* service = 1015 BluetoothGattService* service =
1000 device->GetGattService(observer.last_gatt_service_id_); 1016 device->GetGattService(observer.last_gatt_service_id_);
1001 1017
1002 TestGattServiceObserver service_observer(adapter_, device, service); 1018 TestGattServiceObserver service_observer(adapter_, device, service);
1003 EXPECT_EQ(0, service_observer.gatt_service_changed_count_); 1019 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
1020 EXPECT_EQ(0, service_observer.gatt_discovery_complete_count_);
1004 EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_); 1021 EXPECT_EQ(0, service_observer.gatt_descriptor_value_changed_count_);
1005 EXPECT_TRUE(service->GetCharacteristics().empty()); 1022 EXPECT_TRUE(service->GetCharacteristics().empty());
1006 1023
1007 // Run the message loop so that the characteristics appear. 1024 // Run the message loop so that the characteristics appear.
1008 base::MessageLoop::current()->Run(); 1025 base::MessageLoop::current()->Run();
1009 EXPECT_EQ(4, service_observer.gatt_service_changed_count_); 1026 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
1027 EXPECT_EQ(1, service_observer.gatt_discovery_complete_count_);
1010 1028
1011 // Only the Heart Rate Measurement characteristic has a descriptor. 1029 // Only the Heart Rate Measurement characteristic has a descriptor.
1012 BluetoothGattCharacteristic* characteristic = service->GetCharacteristic( 1030 BluetoothGattCharacteristic* characteristic = service->GetCharacteristic(
1013 fake_bluetooth_gatt_characteristic_client_-> 1031 fake_bluetooth_gatt_characteristic_client_->
1014 GetHeartRateMeasurementPath().value()); 1032 GetHeartRateMeasurementPath().value());
1015 ASSERT_TRUE(characteristic); 1033 ASSERT_TRUE(characteristic);
1016 EXPECT_EQ(1U, characteristic->GetDescriptors().size()); 1034 EXPECT_EQ(1U, characteristic->GetDescriptors().size());
1017 1035
1018 BluetoothGattDescriptor* descriptor = characteristic->GetDescriptors()[0]; 1036 BluetoothGattDescriptor* descriptor = characteristic->GetDescriptors()[0];
1019 EXPECT_FALSE(descriptor->IsLocal()); 1037 EXPECT_FALSE(descriptor->IsLocal());
(...skipping 16 matching lines...) Expand all
1036 // successful read. 1054 // successful read.
1037 descriptor->ReadRemoteDescriptor( 1055 descriptor->ReadRemoteDescriptor(
1038 base::Bind(&BluetoothGattChromeOSTest::ValueCallback, 1056 base::Bind(&BluetoothGattChromeOSTest::ValueCallback,
1039 base::Unretained(this)), 1057 base::Unretained(this)),
1040 base::Bind(&BluetoothGattChromeOSTest::ErrorCallback, 1058 base::Bind(&BluetoothGattChromeOSTest::ErrorCallback,
1041 base::Unretained(this))); 1059 base::Unretained(this)));
1042 EXPECT_EQ(1, success_callback_count_); 1060 EXPECT_EQ(1, success_callback_count_);
1043 EXPECT_EQ(0, error_callback_count_); 1061 EXPECT_EQ(0, error_callback_count_);
1044 EXPECT_TRUE(ValuesEqual(last_read_value_, descriptor->GetValue())); 1062 EXPECT_TRUE(ValuesEqual(last_read_value_, descriptor->GetValue()));
1045 EXPECT_TRUE(ValuesEqual(desc_value, descriptor->GetValue())); 1063 EXPECT_TRUE(ValuesEqual(desc_value, descriptor->GetValue()));
1046 EXPECT_EQ(4, service_observer.gatt_service_changed_count_); 1064 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
1047 EXPECT_EQ(1, service_observer.gatt_descriptor_value_changed_count_); 1065 EXPECT_EQ(1, service_observer.gatt_descriptor_value_changed_count_);
1048 1066
1049 // Write value. Writes to this descriptor will fail. 1067 // Write value. Writes to this descriptor will fail.
1050 desc_value[0] = 0x03; 1068 desc_value[0] = 0x03;
1051 descriptor->WriteRemoteDescriptor( 1069 descriptor->WriteRemoteDescriptor(
1052 desc_value, 1070 desc_value,
1053 base::Bind(&BluetoothGattChromeOSTest::SuccessCallback, 1071 base::Bind(&BluetoothGattChromeOSTest::SuccessCallback,
1054 base::Unretained(this)), 1072 base::Unretained(this)),
1055 base::Bind(&BluetoothGattChromeOSTest::ErrorCallback, 1073 base::Bind(&BluetoothGattChromeOSTest::ErrorCallback,
1056 base::Unretained(this))); 1074 base::Unretained(this)));
1057 EXPECT_EQ(1, success_callback_count_); 1075 EXPECT_EQ(1, success_callback_count_);
1058 EXPECT_EQ(1, error_callback_count_); 1076 EXPECT_EQ(1, error_callback_count_);
1059 EXPECT_TRUE(ValuesEqual(last_read_value_, descriptor->GetValue())); 1077 EXPECT_TRUE(ValuesEqual(last_read_value_, descriptor->GetValue()));
1060 EXPECT_FALSE(ValuesEqual(desc_value, descriptor->GetValue())); 1078 EXPECT_FALSE(ValuesEqual(desc_value, descriptor->GetValue()));
1061 EXPECT_EQ(4, service_observer.gatt_service_changed_count_); 1079 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
1062 EXPECT_EQ(1, service_observer.gatt_descriptor_value_changed_count_); 1080 EXPECT_EQ(1, service_observer.gatt_descriptor_value_changed_count_);
1063 1081
1064 // Read new value. 1082 // Read new value.
1065 descriptor->ReadRemoteDescriptor( 1083 descriptor->ReadRemoteDescriptor(
1066 base::Bind(&BluetoothGattChromeOSTest::ValueCallback, 1084 base::Bind(&BluetoothGattChromeOSTest::ValueCallback,
1067 base::Unretained(this)), 1085 base::Unretained(this)),
1068 base::Bind(&BluetoothGattChromeOSTest::ErrorCallback, 1086 base::Bind(&BluetoothGattChromeOSTest::ErrorCallback,
1069 base::Unretained(this))); 1087 base::Unretained(this)));
1070 EXPECT_EQ(2, success_callback_count_); 1088 EXPECT_EQ(2, success_callback_count_);
1071 EXPECT_EQ(1, error_callback_count_); 1089 EXPECT_EQ(1, error_callback_count_);
1072 EXPECT_TRUE(ValuesEqual(last_read_value_, descriptor->GetValue())); 1090 EXPECT_TRUE(ValuesEqual(last_read_value_, descriptor->GetValue()));
1073 EXPECT_FALSE(ValuesEqual(desc_value, descriptor->GetValue())); 1091 EXPECT_FALSE(ValuesEqual(desc_value, descriptor->GetValue()));
1074 EXPECT_EQ(4, service_observer.gatt_service_changed_count_); 1092 EXPECT_EQ(0, service_observer.gatt_service_changed_count_);
1075 EXPECT_EQ(2, service_observer.gatt_descriptor_value_changed_count_); 1093 EXPECT_EQ(2, service_observer.gatt_descriptor_value_changed_count_);
1076 } 1094 }
1077 1095
1078 TEST_F(BluetoothGattChromeOSTest, NotifySessions) { 1096 TEST_F(BluetoothGattChromeOSTest, NotifySessions) {
1079 fake_bluetooth_device_client_->CreateDevice( 1097 fake_bluetooth_device_client_->CreateDevice(
1080 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 1098 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
1081 dbus::ObjectPath(FakeBluetoothDeviceClient::kLowEnergyPath)); 1099 dbus::ObjectPath(FakeBluetoothDeviceClient::kLowEnergyPath));
1082 BluetoothDevice* device = 1100 BluetoothDevice* device =
1083 adapter_->GetDevice(FakeBluetoothDeviceClient::kLowEnergyAddress); 1101 adapter_->GetDevice(FakeBluetoothDeviceClient::kLowEnergyAddress);
1084 ASSERT_TRUE(device); 1102 ASSERT_TRUE(device);
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
1337 1355
1338 EXPECT_EQ(1, success_callback_count_); 1356 EXPECT_EQ(1, success_callback_count_);
1339 EXPECT_EQ(0, error_callback_count_); 1357 EXPECT_EQ(0, error_callback_count_);
1340 EXPECT_EQ(1, service_observer.gatt_characteristic_value_changed_count_); 1358 EXPECT_EQ(1, service_observer.gatt_characteristic_value_changed_count_);
1341 EXPECT_TRUE(characteristic->IsNotifying()); 1359 EXPECT_TRUE(characteristic->IsNotifying());
1342 EXPECT_EQ(1U, update_sessions_.size()); 1360 EXPECT_EQ(1U, update_sessions_.size());
1343 EXPECT_TRUE(update_sessions_[0]->IsActive()); 1361 EXPECT_TRUE(update_sessions_[0]->IsActive());
1344 } 1362 }
1345 1363
1346 } // namespace chromeos 1364 } // namespace chromeos
OLDNEW
« 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