// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "device/bluetooth/bluetooth_advertisement.h" #include #include #include "base/memory/ptr_util.h" #include "testing/gtest/include/gtest/gtest.h" namespace device { namespace { TEST(BluetoothAdvertisementTest, DataMembersAreAssignedCorrectly) { // Sample manufacturer data. BluetoothAdvertisement::ManufacturerData manufacturer_data; std::vector sample_data(5, 0); manufacturer_data[0] = std::vector(5, 0); // Sample UUID List. const BluetoothAdvertisement::UUIDList uuids(1, "1234"); // Sample Service Data. BluetoothAdvertisement::ServiceData service_data; service_data["1234"] = std::vector(5, 0); // Sample Scan Response Data. BluetoothAdvertisement::ScanResponseData scan_response_data; scan_response_data[0x16] = std::vector(5, 0); BluetoothAdvertisement::Data data( BluetoothAdvertisement::ADVERTISEMENT_TYPE_BROADCAST); ASSERT_EQ(data.type(), BluetoothAdvertisement::ADVERTISEMENT_TYPE_BROADCAST); // Try without assiging Service UUID. ASSERT_FALSE(data.service_uuids().get()); // Assign Service UUID. data.set_service_uuids( std::make_unique(uuids)); // Retrieve Service UUID. ASSERT_EQ(*data.service_uuids(), uuids); // Retrieve again. ASSERT_FALSE(data.service_uuids().get()); // Try without assigning Manufacturer Data. ASSERT_FALSE(data.manufacturer_data().get()); // Assign Manufacturer Data. data.set_manufacturer_data( std::make_unique( manufacturer_data)); // Retrieve Manufacturer Data. ASSERT_EQ(*data.manufacturer_data(), manufacturer_data); // Retrieve again. ASSERT_FALSE(data.manufacturer_data().get()); // Try without assigning Solicit UUIDs. ASSERT_FALSE(data.solicit_uuids().get()); // Assign Solicit UUIDs. data.set_solicit_uuids( std::make_unique(uuids)); // Retrieve Solicit UUIDs. ASSERT_EQ(*data.solicit_uuids(), uuids); // Retieve again. ASSERT_FALSE(data.solicit_uuids().get()); // Try without assigning Service Data. ASSERT_FALSE(data.service_data().get()); // Assign Service Data. data.set_service_data( std::make_unique(service_data)); // Retrieve Service Data. ASSERT_EQ(*data.service_data(), service_data); // Retrieve again. ASSERT_FALSE(data.service_data().get()); // Try without assigning Scan Response Data. ASSERT_FALSE(data.scan_response_data().get()); // Assign Service Data. data.set_scan_response_data( std::make_unique( scan_response_data)); // Retrieve Service Data. ASSERT_EQ(*data.scan_response_data(), scan_response_data); // Retrieve again. ASSERT_FALSE(data.scan_response_data().get()); } } // namespace } // namespace device