Index: device/bluetooth/bluetooth_device_unittest.cc |
diff --git a/device/bluetooth/bluetooth_device_unittest.cc b/device/bluetooth/bluetooth_device_unittest.cc |
index 7fb505925368ef7368e882e42b5168d93a17559d..c92392d1327d80b24175c263957cc0e690ac60b5 100644 |
--- a/device/bluetooth/bluetooth_device_unittest.cc |
+++ b/device/bluetooth/bluetooth_device_unittest.cc |
@@ -5,8 +5,15 @@ |
#include "device/bluetooth/bluetooth_device.h" |
#include "base/macros.h" |
+#include "base/run_loop.h" |
+#include "base/strings/utf_string_conversions.h" |
+#include "device/bluetooth/test/test_bluetooth_adapter_observer.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#if defined(OS_ANDROID) |
+#include "device/bluetooth/test/bluetooth_test_android.h" |
+#endif |
+ |
namespace device { |
TEST(BluetoothDeviceTest, CanonicalizeAddressFormat_AcceptsAllValidFormats) { |
@@ -56,4 +63,56 @@ TEST(BluetoothDeviceTest, CanonicalizeAddressFormat_RejectsInvalidFormats) { |
} |
} |
+#if defined(OS_ANDROID) |
+// Verifies basic device properties, e.g. GetAddress, GetName, ... |
+TEST_F(BluetoothTest, DeviceProperties) { |
+ InitWithFakeAdapter(); |
+ TestBluetoothAdapterObserver observer(adapter_); |
+ |
+ adapter_->StartDiscoverySession(GetDiscoverySessionCallback(), |
+ GetErrorCallback()); |
+ base::RunLoop().RunUntilIdle(); |
+ DiscoverLowEnergyDevice(1); |
+ base::RunLoop().RunUntilIdle(); |
+ BluetoothDevice* device = observer.last_device(); |
+ ASSERT_TRUE(device); |
+ EXPECT_EQ(0x1F00u, device->GetBluetoothClass()); |
+ EXPECT_EQ("AA:00:00:00:00:01", device->GetAddress()); |
+ EXPECT_EQ(BluetoothDevice::VENDOR_ID_UNKNOWN, device->GetVendorIDSource()); |
+ EXPECT_EQ(0, device->GetVendorID()); |
+ EXPECT_EQ(0, device->GetProductID()); |
+ EXPECT_EQ(0, device->GetDeviceID()); |
+ EXPECT_EQ(base::UTF8ToUTF16("FakeBluetoothDevice"), device->GetName()); |
+ EXPECT_EQ(true, device->IsPaired()); |
+ BluetoothDevice::UUIDList uuids = device->GetUUIDs(); |
+ EXPECT_TRUE(ContainsValue(uuids, BluetoothUUID("1800"))); |
+ EXPECT_TRUE(ContainsValue(uuids, BluetoothUUID("1801"))); |
+} |
+#endif // defined(OS_ANDROID) |
+ |
+#if defined(OS_ANDROID) |
+// Device with no advertised Service UUIDs. |
+TEST_F(BluetoothTest, DeviceNoUUIDs) { |
+ InitWithFakeAdapter(); |
+ TestBluetoothAdapterObserver observer(adapter_); |
+ |
+ adapter_->StartDiscoverySession(GetDiscoverySessionCallback(), |
+ GetErrorCallback()); |
+ base::RunLoop().RunUntilIdle(); |
+ DiscoverLowEnergyDevice(3); |
+ base::RunLoop().RunUntilIdle(); |
+ BluetoothDevice* device = observer.last_device(); |
+ ASSERT_TRUE(device); |
+ BluetoothDevice::UUIDList uuids = device->GetUUIDs(); |
+ EXPECT_EQ(0u, uuids.size()); |
+} |
+#endif // defined(OS_ANDROID) |
+ |
+// TODO(scheib): Test with a device with no name. http://crbug.com/506415 |
+// BluetoothDevice::GetAddressWithLocalizedDeviceTypeName() will run, which |
+// requires string resources to be loaded. For that, something like |
+// InitSharedInstance must be run. See unittest files that call that. It will |
+// also require build configuration to generate string resources into a .pak |
+// file. |
+ |
} // namespace device |