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

Side by Side Diff: device/bluetooth/bluetooth_adapter_unittest.cc

Issue 2499913002: bluetooth: android: Implement RetrieveGattConnectedDevicesWithFilter
Patch Set: rebase Created 4 years 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
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 "device/bluetooth/bluetooth_adapter.h" 5 #include "device/bluetooth/bluetooth_adapter.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 18 matching lines...) Expand all
29 #include "device/bluetooth/test/bluetooth_test_android.h" 29 #include "device/bluetooth/test/bluetooth_test_android.h"
30 #elif defined(OS_MACOSX) 30 #elif defined(OS_MACOSX)
31 #include "device/bluetooth/test/bluetooth_test_mac.h" 31 #include "device/bluetooth/test/bluetooth_test_mac.h"
32 #elif defined(OS_WIN) 32 #elif defined(OS_WIN)
33 #include "device/bluetooth/test/bluetooth_test_win.h" 33 #include "device/bluetooth/test/bluetooth_test_win.h"
34 #elif defined(OS_CHROMEOS) || defined(OS_LINUX) 34 #elif defined(OS_CHROMEOS) || defined(OS_LINUX)
35 #include "device/bluetooth/test/bluetooth_test_bluez.h" 35 #include "device/bluetooth/test/bluetooth_test_bluez.h"
36 #endif 36 #endif
37 37
38 using device::BluetoothDevice; 38 using device::BluetoothDevice;
39 using UUIDSet = BluetoothDevice::UUIDSet;
40 using DeviceToUUIDs = std::unordered_map<BluetoothDevice*, UUIDSet>;
39 41
40 namespace device { 42 namespace device {
41 43
42 class TestBluetoothAdapter : public BluetoothAdapter { 44 class TestBluetoothAdapter : public BluetoothAdapter {
43 public: 45 public:
44 TestBluetoothAdapter() { 46 TestBluetoothAdapter() {
45 } 47 }
46 48
47 std::string GetAddress() const override { return ""; } 49 std::string GetAddress() const override { return ""; }
48 50
(...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 device->CreateGattConnection(GetGattConnectionCallback(Call::EXPECTED), 860 device->CreateGattConnection(GetGattConnectionCallback(Call::EXPECTED),
859 GetConnectErrorCallback(Call::NOT_EXPECTED)); 861 GetConnectErrorCallback(Call::NOT_EXPECTED));
860 SimulateGattConnection(device); 862 SimulateGattConnection(device);
861 EXPECT_EQ(1u, adapter_->GetDevices().size()); 863 EXPECT_EQ(1u, adapter_->GetDevices().size());
862 RemoveTimedOutDevices(); 864 RemoveTimedOutDevices();
863 EXPECT_EQ(0, observer.device_removed_count()); 865 EXPECT_EQ(0, observer.device_removed_count());
864 EXPECT_EQ(1u, adapter_->GetDevices().size()); 866 EXPECT_EQ(1u, adapter_->GetDevices().size());
865 } 867 }
866 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) 868 #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
867 869
868 #if defined(OS_MACOSX) 870 #if defined(OS_ANDROID) || defined(OS_MACOSX)
871 // Make sure devices have a timestamp when they are added.
872 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDevice_Timestamp) {
873 if (!PlatformSupportsLowEnergy()) {
874 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
875 return;
876 }
877 InitWithFakeAdapter();
878 TestBluetoothAdapterObserver observer(adapter_);
879
880 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE);
881 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE);
882
883 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE);
884 std::unordered_map<BluetoothDevice*, UUIDSet> result =
885 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter(
886 discovery_filter);
887
888 EXPECT_EQ(2, observer.device_added_count());
889 EXPECT_EQ(0, observer.device_removed_count());
890 EXPECT_EQ(2u, adapter_->GetDevices().size());
891
892 observer.Reset();
893 RemoveTimedOutDevices();
894
895 EXPECT_EQ(0, observer.device_removed_count());
896 EXPECT_EQ(2u, adapter_->GetDevices().size());
897 }
898 #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
899
900 #if defined(OS_ANDROID) || defined(OS_MACOSX)
869 // Simulate two devices being connected before calling 901 // Simulate two devices being connected before calling
870 // RetrieveGattConnectedDevicesWithDiscoveryFilter() with no service filter. 902 // RetrieveGattConnectedDevicesWithDiscoveryFilter() with no service filter.
871 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDeviceWithNoFilter) { 903 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDeviceWithNoFilter) {
872 if (!PlatformSupportsLowEnergy()) { 904 if (!PlatformSupportsLowEnergy()) {
873 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; 905 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
874 return; 906 return;
875 } 907 }
876 InitWithFakeAdapter(); 908 InitWithFakeAdapter();
877 TestBluetoothAdapterObserver observer(adapter_); 909 TestBluetoothAdapterObserver observer(adapter_);
878 910
879 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE); 911 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE);
880 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE); 912 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE);
913
881 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE); 914 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE);
882 std::unordered_map<BluetoothDevice*, BluetoothDevice::UUIDSet> result = 915 std::unordered_map<BluetoothDevice*, UUIDSet> result =
883 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter( 916 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter(
884 discovery_filter); 917 discovery_filter);
885 918
886 EXPECT_EQ(2u, result.size());
887 for (const auto& pair : result) {
888 EXPECT_TRUE(adapter_->GetDevice(pair.first->GetAddress()));
889 EXPECT_TRUE(pair.second.empty());
890 }
891 EXPECT_EQ(BluetoothDevice::UUIDSet({BluetoothUUID(kTestUUIDGenericAccess)}),
892 RetrieveConnectedPeripheralServiceUUIDs());
893 EXPECT_EQ(2, observer.device_added_count()); 919 EXPECT_EQ(2, observer.device_added_count());
894 EXPECT_EQ(2u, adapter_->GetDevices().size()); 920 EXPECT_EQ(2u, adapter_->GetDevices().size());
921
922 BluetoothDevice* device1 = adapter_->GetDevice(kTestDeviceAddress1);
923 ASSERT_TRUE(device1);
924 BluetoothDevice* device2 = adapter_->GetDevice(kTestDeviceAddress2);
925 ASSERT_TRUE(device2);
926
927 EXPECT_EQ(DeviceToUUIDs({{device1, UUIDSet()}, {device2, UUIDSet()}}),
928 result);
929
930 #if defined(OS_MACOSX)
931 EXPECT_EQ(UUIDSet({BluetoothUUID(kTestUUIDGenericAccess)}),
932 RetrieveConnectedPeripheralServiceUUIDs());
933 #elif defined(OS_ANDROID)
934 EXPECT_EQ(1, manager_get_connected_devices_attempts_);
935 #endif // defined(OS_MACOSX)
895 } 936 }
937 #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
896 938
939 #if defined(OS_ANDROID) || defined(OS_MACOSX)
897 // Simulate two devices being connected before calling 940 // Simulate two devices being connected before calling
898 // RetrieveGattConnectedDevicesWithDiscoveryFilter() with one service filter. 941 // RetrieveGattConnectedDevicesWithDiscoveryFilter() with one service filter.
899 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDeviceWithFilter) { 942 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDeviceWithFilter) {
900 if (!PlatformSupportsLowEnergy()) { 943 if (!PlatformSupportsLowEnergy()) {
901 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; 944 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
902 return; 945 return;
903 } 946 }
904 InitWithFakeAdapter(); 947 InitWithFakeAdapter();
905 TestBluetoothAdapterObserver observer(adapter_); 948 TestBluetoothAdapterObserver observer(adapter_);
906 949
907 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE); 950 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE);
908 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE); 951 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE);
952
909 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE); 953 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE);
910 device::BluetoothUUID heart_service_uuid = 954 device::BluetoothUUID heart_service_uuid =
911 device::BluetoothUUID(kTestUUIDHeartRate); 955 device::BluetoothUUID(kTestUUIDHeartRate);
912 discovery_filter.AddUUID(heart_service_uuid); 956 discovery_filter.AddUUID(heart_service_uuid);
913 std::unordered_map<BluetoothDevice*, BluetoothDevice::UUIDSet> result = 957 std::unordered_map<BluetoothDevice*, UUIDSet> result =
914 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter( 958 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter(
915 discovery_filter); 959 discovery_filter);
916 960
917 EXPECT_EQ(1u, result.size());
918 for (const auto& pair : result) {
919 EXPECT_EQ(kTestDeviceAddress2, pair.first->GetAddress());
920 EXPECT_TRUE(adapter_->GetDevice(pair.first->GetAddress()));
921 EXPECT_EQ(BluetoothDevice::UUIDSet({heart_service_uuid}), pair.second);
922 }
923 EXPECT_EQ(BluetoothDevice::UUIDSet({heart_service_uuid}),
924 RetrieveConnectedPeripheralServiceUUIDs());
925 EXPECT_EQ(1, observer.device_added_count()); 961 EXPECT_EQ(1, observer.device_added_count());
926 EXPECT_EQ(1u, adapter_->GetDevices().size()); 962 EXPECT_EQ(1u, adapter_->GetDevices().size());
963
964 BluetoothDevice* device = adapter_->GetDevice(kTestDeviceAddress2);
965 ASSERT_TRUE(device);
966 EXPECT_EQ(DeviceToUUIDs({{device, UUIDSet({heart_service_uuid})}}), result);
967
968 #if defined(OS_MACOSX)
969 EXPECT_EQ(UUIDSet({heart_service_uuid}),
970 RetrieveConnectedPeripheralServiceUUIDs());
971 #elif defined(OS_ANDROID)
972 EXPECT_EQ(1, manager_get_connected_devices_attempts_);
973 #endif // defined(OS_MACOSX)
927 } 974 }
975 #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
928 976
929 // Simulate two devices being connected before calling 977 // Simulate two devices being connected before calling
930 // RetrieveGattConnectedDevicesWithDiscoveryFilter() with one service filter 978 // RetrieveGattConnectedDevicesWithDiscoveryFilter() with one service filter
931 // that doesn't match. 979 // that doesn't match.
980 #if defined(OS_ANDROID) || defined(OS_MACOSX)
932 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDeviceWithWrongFilter) { 981 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDeviceWithWrongFilter) {
933 if (!PlatformSupportsLowEnergy()) { 982 if (!PlatformSupportsLowEnergy()) {
934 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; 983 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
935 return; 984 return;
936 } 985 }
937 InitWithFakeAdapter(); 986 InitWithFakeAdapter();
938 TestBluetoothAdapterObserver observer(adapter_); 987 TestBluetoothAdapterObserver observer(adapter_);
939 988
940 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE); 989 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE);
941 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE); 990 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE);
991
942 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE); 992 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE);
943 discovery_filter.AddUUID(device::BluetoothUUID(kTestUUIDLinkLoss)); 993 discovery_filter.AddUUID(device::BluetoothUUID(kTestUUIDLinkLoss));
944 std::unordered_map<BluetoothDevice*, BluetoothDevice::UUIDSet> result = 994 std::unordered_map<BluetoothDevice*, UUIDSet> result =
945 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter( 995 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter(
946 discovery_filter); 996 discovery_filter);
947 997
948 EXPECT_TRUE(result.empty());
949 EXPECT_EQ(
950 BluetoothDevice::UUIDSet({device::BluetoothUUID(kTestUUIDLinkLoss)}),
951 RetrieveConnectedPeripheralServiceUUIDs());
952 EXPECT_EQ(0, observer.device_added_count()); 998 EXPECT_EQ(0, observer.device_added_count());
953 EXPECT_EQ(0u, adapter_->GetDevices().size()); 999 EXPECT_EQ(0u, adapter_->GetDevices().size());
1000
1001 EXPECT_TRUE(result.empty());
1002
1003 #if defined(OS_MACOSX)
1004 EXPECT_EQ(UUIDSet({device::BluetoothUUID(kTestUUIDLinkLoss)}),
1005 RetrieveConnectedPeripheralServiceUUIDs());
1006 #elif defined(OS_ANDROID)
1007 EXPECT_EQ(1, manager_get_connected_devices_attempts_);
1008 #endif // defined(OS_MACOSX)
954 } 1009 }
1010 #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
955 1011
956 // Simulate two devices being connected before calling 1012 // Simulate two devices being connected before calling
957 // RetrieveGattConnectedDevicesWithDiscoveryFilter() with two service filters 1013 // RetrieveGattConnectedDevicesWithDiscoveryFilter() with two service filters
958 // that both match. 1014 // that both match.
1015 #if defined(OS_ANDROID) || defined(OS_MACOSX)
959 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDeviceWithTwoFilters) { 1016 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDeviceWithTwoFilters) {
960 if (!PlatformSupportsLowEnergy()) { 1017 if (!PlatformSupportsLowEnergy()) {
961 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; 1018 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
962 return; 1019 return;
963 } 1020 }
964 InitWithFakeAdapter(); 1021 InitWithFakeAdapter();
965 TestBluetoothAdapterObserver observer(adapter_); 1022 TestBluetoothAdapterObserver observer(adapter_);
966 1023
967 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE); 1024 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE);
968 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE); 1025 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE);
1026
969 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE); 1027 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE);
970 device::BluetoothUUID heart_service_uuid = 1028 device::BluetoothUUID heart_service_uuid =
971 device::BluetoothUUID(kTestUUIDHeartRate); 1029 device::BluetoothUUID(kTestUUIDHeartRate);
972 discovery_filter.AddUUID(heart_service_uuid); 1030 discovery_filter.AddUUID(heart_service_uuid);
973 device::BluetoothUUID generic_service_uuid = 1031 device::BluetoothUUID generic_service_uuid =
974 device::BluetoothUUID(kTestUUIDGenericAccess); 1032 device::BluetoothUUID(kTestUUIDGenericAccess);
975 discovery_filter.AddUUID(generic_service_uuid); 1033 discovery_filter.AddUUID(generic_service_uuid);
976 std::unordered_map<BluetoothDevice*, BluetoothDevice::UUIDSet> result = 1034 std::unordered_map<BluetoothDevice*, UUIDSet> result =
977 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter( 1035 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter(
978 discovery_filter); 1036 discovery_filter);
979 1037
980 EXPECT_EQ(2u, result.size());
981 for (const auto& pair : result) {
982 EXPECT_TRUE(adapter_->GetDevice(pair.first->GetAddress()));
983 if (pair.first->GetAddress() == kTestDeviceAddress2) {
984 EXPECT_EQ(
985 BluetoothDevice::UUIDSet({heart_service_uuid, generic_service_uuid}),
986 pair.second);
987 } else if (pair.first->GetAddress() == kTestDeviceAddress1) {
988 EXPECT_EQ(BluetoothDevice::UUIDSet({generic_service_uuid}), pair.second);
989 } else {
990 // Unknown device.
991 EXPECT_TRUE(false);
992 }
993 }
994 EXPECT_EQ(
995 BluetoothDevice::UUIDSet({generic_service_uuid, heart_service_uuid}),
996 RetrieveConnectedPeripheralServiceUUIDs());
997 EXPECT_EQ(2, observer.device_added_count()); 1038 EXPECT_EQ(2, observer.device_added_count());
998 EXPECT_EQ(2u, adapter_->GetDevices().size()); 1039 EXPECT_EQ(2u, adapter_->GetDevices().size());
1040
1041 BluetoothDevice* device1 = adapter_->GetDevice(kTestDeviceAddress1);
1042 ASSERT_TRUE(device1);
1043 BluetoothDevice* device2 = adapter_->GetDevice(kTestDeviceAddress2);
1044 ASSERT_TRUE(device2);
1045
1046 EXPECT_EQ(
1047 DeviceToUUIDs(
1048 {{device1, UUIDSet({generic_service_uuid})},
1049 {device2, UUIDSet({heart_service_uuid, generic_service_uuid})}}),
1050 result);
1051
1052 #if defined(OS_MACOSX)
1053 EXPECT_EQ(UUIDSet({generic_service_uuid, heart_service_uuid}),
1054 RetrieveConnectedPeripheralServiceUUIDs());
1055 #elif defined(OS_ANDROID)
1056 EXPECT_EQ(1, manager_get_connected_devices_attempts_);
1057 #endif // defined(OS_MACOSX)
999 } 1058 }
1059 #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
1000 1060
1001 // Simulate two devices being connected before calling 1061 // Simulate two devices being connected before calling
1002 // RetrieveGattConnectedDevicesWithDiscoveryFilter() with one service filter 1062 // RetrieveGattConnectedDevicesWithDiscoveryFilter() with one service filter
1003 // that one match device, and then 1063 // that one match device, and then
1004 // RetrieveGattConnectedDevicesWithDiscoveryFilter() again. 1064 // RetrieveGattConnectedDevicesWithDiscoveryFilter() again.
1065 #if defined(OS_ANDROID) || defined(OS_MACOSX)
1005 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDeviceTwice) { 1066 TEST_F(BluetoothTest, DiscoverConnectedLowEnergyDeviceTwice) {
1006 if (!PlatformSupportsLowEnergy()) { 1067 if (!PlatformSupportsLowEnergy()) {
1007 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; 1068 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
1008 return; 1069 return;
1009 } 1070 }
1010 InitWithFakeAdapter(); 1071 InitWithFakeAdapter();
1011 TestBluetoothAdapterObserver observer(adapter_); 1072 TestBluetoothAdapterObserver observer(adapter_);
1012 1073
1013 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE); 1074 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::GENERIC_DEVICE);
1014 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE); 1075 SimulateConnectedLowEnergyDevice(ConnectedDeviceType::HEART_RATE_DEVICE);
1076
1015 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE); 1077 BluetoothDiscoveryFilter discovery_filter(BLUETOOTH_TRANSPORT_LE);
1016 device::BluetoothUUID heart_service_uuid = 1078 device::BluetoothUUID heart_service_uuid =
1017 device::BluetoothUUID(kTestUUIDHeartRate); 1079 device::BluetoothUUID(kTestUUIDHeartRate);
1018 discovery_filter.AddUUID(heart_service_uuid); 1080 discovery_filter.AddUUID(heart_service_uuid);
1019 std::unordered_map<BluetoothDevice*, BluetoothDevice::UUIDSet> result = 1081 std::unordered_map<BluetoothDevice*, UUIDSet> result =
1020 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter( 1082 adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter(
1021 discovery_filter); 1083 discovery_filter);
1022 1084
1023 EXPECT_EQ(1u, result.size());
1024 for (const auto& pair : result) {
1025 EXPECT_EQ(kTestDeviceAddress2, pair.first->GetAddress());
1026 EXPECT_TRUE(adapter_->GetDevice(pair.first->GetAddress()));
1027 EXPECT_EQ(BluetoothDevice::UUIDSet({heart_service_uuid}), pair.second);
1028 }
1029 EXPECT_EQ(BluetoothDevice::UUIDSet({heart_service_uuid}),
1030 RetrieveConnectedPeripheralServiceUUIDs());
1031 EXPECT_EQ(1, observer.device_added_count()); 1085 EXPECT_EQ(1, observer.device_added_count());
1032 EXPECT_EQ(1u, adapter_->GetDevices().size()); 1086 EXPECT_EQ(1u, adapter_->GetDevices().size());
1033 1087
1088 BluetoothDevice* device = adapter_->GetDevice(kTestDeviceAddress2);
1089 ASSERT_TRUE(device);
1090 EXPECT_EQ(DeviceToUUIDs({{device, UUIDSet({heart_service_uuid})}}), result);
1091
1092 #if defined(OS_MACOSX)
1093 EXPECT_EQ(UUIDSet({heart_service_uuid}),
1094 RetrieveConnectedPeripheralServiceUUIDs());
1095 #elif defined(OS_ANDROID)
1096 EXPECT_EQ(1, manager_get_connected_devices_attempts_);
1097 #endif // defined(OS_MACOSX)
1098
1034 observer.Reset(); 1099 observer.Reset();
1100 #if defined(OS_MACOSX)
1035 ResetRetrieveConnectedPeripheralServiceUUIDs(); 1101 ResetRetrieveConnectedPeripheralServiceUUIDs();
1102 #endif // defined(OS_MACOSX)
1103
1036 result = adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter( 1104 result = adapter_->RetrieveGattConnectedDevicesWithDiscoveryFilter(
1037 discovery_filter); 1105 discovery_filter);
1038 1106
1039 EXPECT_EQ(1u, result.size());
1040 for (const auto& pair : result) {
1041 EXPECT_EQ(kTestDeviceAddress2, pair.first->GetAddress());
1042 EXPECT_TRUE(adapter_->GetDevice(pair.first->GetAddress()));
1043 EXPECT_EQ(BluetoothDevice::UUIDSet({heart_service_uuid}), pair.second);
1044 }
1045 EXPECT_EQ(BluetoothDevice::UUIDSet({heart_service_uuid}),
1046 RetrieveConnectedPeripheralServiceUUIDs());
1047
1048 EXPECT_EQ(0, observer.device_added_count()); 1107 EXPECT_EQ(0, observer.device_added_count());
1049 EXPECT_EQ(1u, adapter_->GetDevices().size()); 1108 EXPECT_EQ(1u, adapter_->GetDevices().size());
1109
1110 EXPECT_EQ(DeviceToUUIDs({{device, UUIDSet({heart_service_uuid})}}), result);
1111
1112 #if defined(OS_MACOSX)
1113 EXPECT_EQ(UUIDSet({heart_service_uuid}),
1114 RetrieveConnectedPeripheralServiceUUIDs());
1115 #elif defined(OS_ANDROID)
1116 EXPECT_EQ(2, manager_get_connected_devices_attempts_);
1117 #endif // defined(OS_MACOSX)
1050 } 1118 }
1051 #endif // defined(OS_MACOSX) 1119 #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
1052 1120
1053 } // namespace device 1121 } // namespace device
OLDNEW
« no previous file with comments | « device/bluetooth/bluetooth_adapter_android.cc ('k') | device/bluetooth/bluetooth_device_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698