chromium/components/permissions/permission_uma_util_unittest.cc

// Copyright 2016 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/permissions/permission_uma_util.h"

#include "base/files/scoped_temp_dir.h"
#include "base/strings/strcat.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "base/test/simple_test_clock.h"
#include "base/time/clock.h"
#include "base/time/time.h"
#include "base/values.h"
#include "components/content_settings/core/browser/content_settings_uma_util.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/content_settings/core/common/features.h"
#include "components/permissions/constants.h"
#include "components/permissions/permission_request_manager.h"
#include "components/permissions/permission_util.h"
#include "components/permissions/test/test_permissions_client.h"
#include "components/ukm/content/source_url_recorder.h"
#include "components/ukm/test_ukm_recorder.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_task_environment.h"
#include "content/public/test/navigation_simulator.h"
#include "content/public/test/test_browser_context.h"
#include "content/public/test/test_renderer_host.h"
#include "content/test/test_render_frame_host.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom.h"

namespace permissions {

namespace {

constexpr const char* kTopLevelUrl =;
constexpr const char* kSameOriginFrameUrl =;
constexpr const char* kCrossOriginFrameUrl =;
constexpr const char* kCrossOriginFrameUrl2 =;

constexpr const char* kGeolocationUsageHistogramName =;
constexpr const char* kGeolocationPermissionsPolicyUsageHistogramName =;
constexpr const char* kGeolocationPermissionsPolicyActionHistogramName =;

blink::ParsedPermissionsPolicy CreatePermissionsPolicy(
    blink::mojom::PermissionsPolicyFeature feature,
    const std::vector<std::string>& origins,
    bool matches_all_origins = false) {}

PermissionRequestManager* SetupRequestManager(
    content::WebContents* web_contents) {}

struct PermissionsDelegationTestConfig {};

#if !BUILDFLAG(IS_ANDROID)
ContentSettingsForOneType GetRevokedUnusedPermissions(
    HostContentSettingsMap* hcsm) {}
#endif

// Wrapper class so that we can pass a closure to the PermissionRequest
// ctor, to handle all dtor paths (avoid crash in dtor of WebContent)
class PermissionRequestWrapper {};

}  // namespace

class PermissionsDelegationUmaUtilTest
    : public content::RenderViewHostTestHarness,
      public testing::WithParamInterface<PermissionsDelegationTestConfig> {};

class PermissionUmaUtilTest : public testing::Test {};

TEST_F(PermissionUmaUtilTest, ScopedRevocationReporter) {}

TEST_F(PermissionUmaUtilTest, CrowdDenyVersionTest) {}

// Test that the appropriate UMA metrics have been recorded when the DSE is
// disabled.
TEST_F(PermissionUmaUtilTest, MetricsAreRecordedWhenAutoDSEPermissionReverted) {}

TEST_F(PermissionsDelegationUmaUtilTest, UsageAndPromptInTopLevelFrame) {}

TEST_F(PermissionUmaUtilTest, LhsIndicatorsShowTest) {}

TEST_F(PermissionUmaUtilTest, LhsIndicatorsClickTest) {}

TEST_F(PermissionUmaUtilTest, PageInfoPermissionReallowedTest) {}

#if !BUILDFLAG(IS_ANDROID)
TEST_F(PermissionUmaUtilTest, RecordPermissionRegrantForUnusedSites) {}

TEST_F(PermissionUmaUtilTest, GetDaysSinceUnusedSitePermissionRevocation) {}
#endif

// Inside your PermissionRecorderTest test fixture from earlier
TEST_F(PermissionsDelegationUmaUtilTest, SiteLevelAndOSPromptVariantsTest) {}

TEST_F(PermissionsDelegationUmaUtilTest, SameOriginFrame) {}

TEST_P(PermissionsDelegationUmaUtilTest, TopLevelFrame) {}

INSTANTIATE_TEST_SUITE_P();

class CrossFramePermissionsDelegationUmaUtilTest
    : public PermissionsDelegationUmaUtilTest {};

TEST_P(CrossFramePermissionsDelegationUmaUtilTest, CrossOriginFrame) {}

INSTANTIATE_TEST_SUITE_P();

class UkmRecorderPermissionUmaUtilTest
    : public content::RenderViewHostTestHarness {};

TEST_F(UkmRecorderPermissionUmaUtilTest,
       NotificationRevocationHistogramDidRecordUkmTest) {}

TEST_F(UkmRecorderPermissionUmaUtilTest,
       NotificationRevocationHistogramDroppedUkmTest) {}

TEST_F(UkmRecorderPermissionUmaUtilTest,
       NotificationUsageHistogramDidRecordUkmTest) {}

TEST_F(UkmRecorderPermissionUmaUtilTest,
       NotificationUsageHistogramDroppedUkmTest) {}
}  // namespace permissions