| OLD | NEW |
| 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_device.h" | 5 #include "device/bluetooth/bluetooth_device.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 "1:A2:B3:C4:D5:E6F", | 86 "1:A2:B3:C4:D5:E6F", |
| 87 }; | 87 }; |
| 88 | 88 |
| 89 for (size_t i = 0; i < arraysize(kValidFormats); ++i) { | 89 for (size_t i = 0; i < arraysize(kValidFormats); ++i) { |
| 90 SCOPED_TRACE(std::string("Input format: '") + kValidFormats[i] + "'"); | 90 SCOPED_TRACE(std::string("Input format: '") + kValidFormats[i] + "'"); |
| 91 EXPECT_EQ(std::string(), | 91 EXPECT_EQ(std::string(), |
| 92 BluetoothDevice::CanonicalizeAddress(kValidFormats[i])); | 92 BluetoothDevice::CanonicalizeAddress(kValidFormats[i])); |
| 93 } | 93 } |
| 94 } | 94 } |
| 95 | 95 |
| 96 #if defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) | |
| 97 // Verifies basic device properties, e.g. GetAddress, GetName, ... | 96 // Verifies basic device properties, e.g. GetAddress, GetName, ... |
| 98 TEST_F(BluetoothTest, LowEnergyDeviceProperties) { | 97 TEST_F(BluetoothTest, LowEnergyDeviceProperties) { |
| 99 if (!PlatformSupportsLowEnergy()) { | 98 if (!PlatformSupportsLowEnergy()) { |
| 100 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; | 99 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; |
| 101 return; | 100 return; |
| 102 } | 101 } |
| 103 InitWithFakeAdapter(); | 102 InitWithFakeAdapter(); |
| 104 StartLowEnergyDiscoverySession(); | 103 StartLowEnergyDiscoverySession(); |
| 105 BluetoothDevice* device = SimulateLowEnergyDevice(1); | 104 BluetoothDevice* device = SimulateLowEnergyDevice(1); |
| 106 ASSERT_TRUE(device); | 105 ASSERT_TRUE(device); |
| 107 // Bluetooth class information for BLE device is not available on Windows. | 106 // Bluetooth class information for BLE device is not available on Windows. |
| 108 #ifndef OS_WIN | 107 #ifndef OS_WIN |
| 109 EXPECT_EQ(0x1F00u, device->GetBluetoothClass()); | 108 EXPECT_EQ(0x1F00u, device->GetBluetoothClass()); |
| 110 #endif | 109 #endif |
| 111 EXPECT_EQ(kTestDeviceAddress1, device->GetAddress()); | 110 EXPECT_EQ(kTestDeviceAddress1, device->GetAddress()); |
| 112 EXPECT_EQ(BluetoothDevice::VENDOR_ID_UNKNOWN, device->GetVendorIDSource()); | 111 EXPECT_EQ(BluetoothDevice::VENDOR_ID_UNKNOWN, device->GetVendorIDSource()); |
| 113 EXPECT_EQ(0, device->GetVendorID()); | 112 EXPECT_EQ(0, device->GetVendorID()); |
| 114 EXPECT_EQ(0, device->GetProductID()); | 113 EXPECT_EQ(0, device->GetProductID()); |
| 115 EXPECT_EQ(0, device->GetDeviceID()); | 114 EXPECT_EQ(0, device->GetDeviceID()); |
| 116 EXPECT_EQ(base::UTF8ToUTF16(kTestDeviceName), device->GetNameForDisplay()); | 115 EXPECT_EQ(base::UTF8ToUTF16(kTestDeviceName), device->GetNameForDisplay()); |
| 117 EXPECT_FALSE(device->IsPaired()); | 116 EXPECT_FALSE(device->IsPaired()); |
| 118 UUIDSet uuids = device->GetUUIDs(); | 117 UUIDSet uuids = device->GetUUIDs(); |
| 119 EXPECT_TRUE(base::ContainsKey(uuids, BluetoothUUID(kTestUUIDGenericAccess))); | 118 EXPECT_TRUE(base::ContainsKey(uuids, BluetoothUUID(kTestUUIDGenericAccess))); |
| 120 EXPECT_TRUE( | 119 EXPECT_TRUE( |
| 121 base::ContainsKey(uuids, BluetoothUUID(kTestUUIDGenericAttribute))); | 120 base::ContainsKey(uuids, BluetoothUUID(kTestUUIDGenericAttribute))); |
| 122 } | 121 } |
| 123 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) | |
| 124 | 122 |
| 125 #if defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) | |
| 126 // Device with no advertised Service UUIDs. | 123 // Device with no advertised Service UUIDs. |
| 127 TEST_F(BluetoothTest, LowEnergyDeviceNoUUIDs) { | 124 TEST_F(BluetoothTest, LowEnergyDeviceNoUUIDs) { |
| 128 if (!PlatformSupportsLowEnergy()) { | 125 if (!PlatformSupportsLowEnergy()) { |
| 129 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; | 126 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; |
| 130 return; | 127 return; |
| 131 } | 128 } |
| 132 InitWithFakeAdapter(); | 129 InitWithFakeAdapter(); |
| 133 StartLowEnergyDiscoverySession(); | 130 StartLowEnergyDiscoverySession(); |
| 134 BluetoothDevice* device = SimulateLowEnergyDevice(3); | 131 BluetoothDevice* device = SimulateLowEnergyDevice(3); |
| 135 ASSERT_TRUE(device); | 132 ASSERT_TRUE(device); |
| 136 UUIDSet uuids = device->GetUUIDs(); | 133 UUIDSet uuids = device->GetUUIDs(); |
| 137 EXPECT_EQ(0u, uuids.size()); | 134 EXPECT_EQ(0u, uuids.size()); |
| 138 } | 135 } |
| 139 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) | |
| 140 | 136 |
| 141 #if defined(OS_MACOSX) | 137 #if defined(OS_MACOSX) |
| 142 // TODO(ortuno): Enable on Android once it supports Service Data. | 138 // TODO(ortuno): Enable on Android once it supports Service Data. |
| 143 // http://crbug.com/639408 | 139 // http://crbug.com/639408 |
| 144 TEST_F(BluetoothTest, GetServiceDataUUIDs_GetServiceDataForUUID) { | 140 TEST_F(BluetoothTest, GetServiceDataUUIDs_GetServiceDataForUUID) { |
| 145 if (!PlatformSupportsLowEnergy()) { | 141 if (!PlatformSupportsLowEnergy()) { |
| 146 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; | 142 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; |
| 147 return; | 143 return; |
| 148 } | 144 } |
| 149 InitWithFakeAdapter(); | 145 InitWithFakeAdapter(); |
| (...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 670 EXPECT_TRUE(device->GetUUIDs().empty()); | 666 EXPECT_TRUE(device->GetUUIDs().empty()); |
| 671 #if defined(OS_MACOSX) | 667 #if defined(OS_MACOSX) |
| 672 // TODO(ortuno): Enable on Android once it supports Service Data. | 668 // TODO(ortuno): Enable on Android once it supports Service Data. |
| 673 // http://crbug.com/639408 | 669 // http://crbug.com/639408 |
| 674 EXPECT_TRUE(device->GetServiceData().empty()); | 670 EXPECT_TRUE(device->GetServiceData().empty()); |
| 675 #endif // defined(OS_MACOSX) | 671 #endif // defined(OS_MACOSX) |
| 676 EXPECT_FALSE(device->GetInquiryTxPower()); | 672 EXPECT_FALSE(device->GetInquiryTxPower()); |
| 677 } | 673 } |
| 678 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) | 674 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) |
| 679 | 675 |
| 680 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) | 676 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \ |
| 677 defined(OS_LINUX) |
| 681 // GetName for Device with no name. | 678 // GetName for Device with no name. |
| 682 TEST_F(BluetoothTest, GetName_NullName) { | 679 TEST_F(BluetoothTest, GetName_NullName) { |
| 683 if (!PlatformSupportsLowEnergy()) { | 680 if (!PlatformSupportsLowEnergy()) { |
| 684 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; | 681 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; |
| 685 return; | 682 return; |
| 686 } | 683 } |
| 687 InitWithFakeAdapter(); | 684 InitWithFakeAdapter(); |
| 688 | 685 |
| 689 // StartLowEnergyDiscoverySession is not yet implemented on ChromeOS|bluez, | 686 // StartLowEnergyDiscoverySession is not yet implemented on ChromeOS|bluez, |
| 690 // and is non trivial to implement. On ChromeOS, it is not essential for | 687 // and is non trivial to implement. On ChromeOS, it is not essential for |
| 691 // this test to operate, and so it is simply skipped. Android at least | 688 // this test to operate, and so it is simply skipped. Android at least |
| 692 // does require this step. | 689 // does require this step. |
| 693 #if !defined(OS_CHROMEOS) | 690 #if !defined(OS_CHROMEOS) |
| 694 StartLowEnergyDiscoverySession(); | 691 StartLowEnergyDiscoverySession(); |
| 695 #endif | 692 #endif |
| 696 | 693 |
| 697 BluetoothDevice* device = SimulateLowEnergyDevice(5); | 694 BluetoothDevice* device = SimulateLowEnergyDevice(5); |
| 698 EXPECT_FALSE(device->GetName()); | 695 EXPECT_FALSE(device->GetName()); |
| 699 } | 696 } |
| 700 #endif // defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) | 697 #endif // defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || |
| 698 // defined(OS_LINUX) |
| 701 | 699 |
| 702 // TODO(506415): Test GetNameForDisplay with a device with no name. | 700 // TODO(506415): Test GetNameForDisplay with a device with no name. |
| 703 // BluetoothDevice::GetAddressWithLocalizedDeviceTypeName() will run, which | 701 // BluetoothDevice::GetAddressWithLocalizedDeviceTypeName() will run, which |
| 704 // requires string resources to be loaded. For that, something like | 702 // requires string resources to be loaded. For that, something like |
| 705 // InitSharedInstance must be run. See unittest files that call that. It will | 703 // InitSharedInstance must be run. See unittest files that call that. It will |
| 706 // also require build configuration to generate string resources into a .pak | 704 // also require build configuration to generate string resources into a .pak |
| 707 // file. | 705 // file. |
| 708 | 706 |
| 709 #if defined(OS_ANDROID) || defined(OS_MACOSX) | 707 #if defined(OS_ANDROID) || defined(OS_MACOSX) |
| 710 // Basic CreateGattConnection test. | 708 // Basic CreateGattConnection test. |
| (...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1334 | 1332 |
| 1335 BluetoothDevice* device2 = SimulateLowEnergyDevice(6); | 1333 BluetoothDevice* device2 = SimulateLowEnergyDevice(6); |
| 1336 EXPECT_EQ(BLUETOOTH_TRANSPORT_DUAL, device2->GetType()); | 1334 EXPECT_EQ(BLUETOOTH_TRANSPORT_DUAL, device2->GetType()); |
| 1337 | 1335 |
| 1338 BluetoothDevice* device3 = SimulateClassicDevice(); | 1336 BluetoothDevice* device3 = SimulateClassicDevice(); |
| 1339 EXPECT_EQ(BLUETOOTH_TRANSPORT_CLASSIC, device3->GetType()); | 1337 EXPECT_EQ(BLUETOOTH_TRANSPORT_CLASSIC, device3->GetType()); |
| 1340 } | 1338 } |
| 1341 #endif // defined(OS_CHROMEOS) || defined(OS_LINUX) | 1339 #endif // defined(OS_CHROMEOS) || defined(OS_LINUX) |
| 1342 | 1340 |
| 1343 } // namespace device | 1341 } // namespace device |
| OLD | NEW |