| // Copyright 2025 The Chromium Authors | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "headless/lib/browser/headless_bluetooth_delegate.h" | 
 |  | 
 | #include "device/bluetooth/public/cpp/bluetooth_uuid.h" | 
 | #include "testing/gtest/include/gtest/gtest.h" | 
 | #include "third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h" | 
 | #include "third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom.h" | 
 |  | 
 | namespace headless { | 
 |  | 
 | using ::blink::WebBluetoothDeviceId; | 
 | using ::device::BluetoothUUID; | 
 |  | 
 | class HeadlessBluetoothDelegateTest : public testing::Test { | 
 |  protected: | 
 |   HeadlessBluetoothDelegate delegate_; | 
 | }; | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, RunBluetoothChooser) { | 
 |   auto chooser = | 
 |       delegate_.RunBluetoothChooser(/*frame=*/nullptr, /*event_handler=*/{}); | 
 |   EXPECT_NE(chooser, nullptr); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, ShowBluetoothScanningPrompt) { | 
 |   auto prompt = delegate_.ShowBluetoothScanningPrompt(/*frame=*/nullptr, | 
 |                                                       /*event_handler=*/{}); | 
 |   EXPECT_EQ(prompt, nullptr); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, GetWebBluetoothDeviceId) { | 
 |   auto id = | 
 |       delegate_.GetWebBluetoothDeviceId(/*frame=*/nullptr, "12:34:56:78:90:AB"); | 
 |   EXPECT_FALSE(id.IsValid()); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, GetDeviceAddress) { | 
 |   WebBluetoothDeviceId id; | 
 |   auto address = delegate_.GetDeviceAddress(/*frame=*/nullptr, id); | 
 |   EXPECT_TRUE(address.empty()); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, AddScannedDevice) { | 
 |   auto id = delegate_.AddScannedDevice(/*frame=*/nullptr, "12:34:56:78:90:AB"); | 
 |   EXPECT_FALSE(id.IsValid()); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, GrantServiceAccessPermission) { | 
 |   auto id = delegate_.GrantServiceAccessPermission( | 
 |       /*frame=*/nullptr, /*device=*/nullptr, /*options=*/nullptr); | 
 |   EXPECT_FALSE(id.IsValid()); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, HasDevicePermission) { | 
 |   EXPECT_FALSE( | 
 |       delegate_.HasDevicePermission(/*frame=*/nullptr, WebBluetoothDeviceId())); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, MayUseBluetooth) { | 
 |   EXPECT_TRUE(delegate_.MayUseBluetooth(/*rfh=*/nullptr)); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, IsAllowedToAccessService) { | 
 |   EXPECT_FALSE(delegate_.IsAllowedToAccessService( | 
 |       /*frame=*/nullptr, WebBluetoothDeviceId(), | 
 |       BluetoothUUID("12345678-1234-5678-9abc-def123456789"))); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, IsAllowedToAccessAtLeastOneService) { | 
 |   EXPECT_FALSE(delegate_.IsAllowedToAccessAtLeastOneService( | 
 |       /*frame=*/nullptr, WebBluetoothDeviceId())); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, IsAllowedToAccessManufacturerData) { | 
 |   EXPECT_FALSE(delegate_.IsAllowedToAccessManufacturerData( | 
 |       /*frame=*/nullptr, WebBluetoothDeviceId(), /*manufacturer_code=*/0)); | 
 | } | 
 |  | 
 | TEST_F(HeadlessBluetoothDelegateTest, GetPermittedDevices) { | 
 |   EXPECT_TRUE(delegate_.GetPermittedDevices(/*frame=*/nullptr).empty()); | 
 | } | 
 |  | 
 | }  // namespace headless |