blob: a43468a166687564104691da9ce57ec4f03476de [file] [log] [blame]
// Copyright 2024 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/page_info/page_info_ui.h"
#include "build/buildflag.h"
#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/page_info/page_info_ui_delegate.h"
#include "components/strings/grit/components_strings.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/l10n/l10n_util.h"
namespace {
class MockPageInfoUiDelegate : public PageInfoUiDelegate {
public:
#if !BUILDFLAG(IS_ANDROID)
MOCK_METHOD(bool, IsBlockAutoPlayEnabled, (), (override));
MOCK_METHOD(bool, IsMultipleTabsOpen, (), (override));
MOCK_METHOD(void, OpenSiteSettingsFileSystem, (), (override));
#endif
MOCK_METHOD(content::PermissionResult,
GetPermissionResult,
(blink::PermissionType permission),
(override));
MOCK_METHOD(std::optional<content::PermissionResult>,
GetEmbargoResult,
(ContentSettingsType type),
(override));
MOCK_METHOD(void,
GetMerchantTrustInfo,
(page_info::MerchantDataCallback callback),
(override));
};
} // namespace
#if !BUILDFLAG(IS_ANDROID)
TEST(PageInfoUITest, PermissionStateToUIString) {
content_settings::ContentSettingsRegistry::GetInstance();
MockPageInfoUiDelegate delegate;
PageInfo::PermissionInfo permission_info;
permission_info.setting = CONTENT_SETTING_ASK;
permission_info.type = ContentSettingsType::KEYBOARD_LOCK;
EXPECT_EQ(
l10n_util::GetStringUTF16(IDS_PAGE_INFO_STATE_TEXT_KEYBOARD_LOCK_ASK),
PageInfoUI::PermissionStateToUIString(&delegate, permission_info));
permission_info.type = ContentSettingsType::POINTER_LOCK;
EXPECT_EQ(
l10n_util::GetStringUTF16(IDS_PAGE_INFO_STATE_TEXT_POINTER_LOCK_ASK),
PageInfoUI::PermissionStateToUIString(&delegate, permission_info));
}
#endif