// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/services/app_service/public/cpp/permission.h"
#include <memory>
#include <utility>
#include "testing/gtest/include/gtest/gtest.h"
namespace apps {
using PermissionTest = testing::Test;
TEST_F(PermissionTest, VerifyPermissionConvert) {
{
// Verify the convert function can work for null permission.
EXPECT_FALSE(ConvertDictToPermission(ConvertPermissionToDict(nullptr)));
}
{
auto permission = std::make_unique<Permission>(
PermissionType::kCamera, /*PermissionValue=*/true, /*is_managed=*/true,
"details");
EXPECT_EQ(*permission,
*ConvertDictToPermission(ConvertPermissionToDict(permission)));
}
{
auto permission = std::make_unique<Permission>(
PermissionType::kMicrophone, /*PermissionValue=*/TriState::kAllow,
/*is_managed=*/false);
EXPECT_EQ(*permission,
*ConvertDictToPermission(ConvertPermissionToDict(permission)));
}
}
TEST_F(PermissionTest, VerifyPermissionsConvert) {
{
// Verify the convert function can work for the empty permissions.
Permissions permissions;
base::Value::List list = ConvertPermissionsToList(permissions);
EXPECT_TRUE(IsEqual(permissions, ConvertListToPermissions(&list)));
}
{
Permissions permissions;
permissions.push_back(std::make_unique<Permission>(
PermissionType::kLocation, /*PermissionValue=*/false,
/*is_managed=*/true, "details"));
permissions.push_back(std::make_unique<Permission>(
PermissionType::kPrinting, /*PermissionValue=*/TriState::kBlock,
/*is_managed=*/false));
base::Value::List list = ConvertPermissionsToList(permissions);
EXPECT_TRUE(IsEqual(permissions, ConvertListToPermissions(&list)));
}
}
} // namespace apps