Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2127)

Unified Diff: chrome/browser/permissions/permission_request_manager_unittest.cc

Issue 2952003003: Log site engagement scores for permission actions (Closed)
Patch Set: use histogram_functions Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/permissions/permission_request_manager_unittest.cc
diff --git a/chrome/browser/permissions/permission_request_manager_unittest.cc b/chrome/browser/permissions/permission_request_manager_unittest.cc
index 4acacd9008e774e1ae44407eecf4d1d3c594cb53..a3b39c5bdd76e0e1a420bcf687a4ed50ef4c0a9c 100644
--- a/chrome/browser/permissions/permission_request_manager_unittest.cc
+++ b/chrome/browser/permissions/permission_request_manager_unittest.cc
@@ -10,6 +10,7 @@
#include "base/strings/utf_string_conversions.h"
#include "base/test/histogram_tester.h"
#include "build/build_config.h"
+#include "chrome/browser/engagement/site_engagement_service.h"
#include "chrome/browser/permissions/mock_permission_request.h"
#include "chrome/browser/permissions/permission_request.h"
#include "chrome/browser/permissions/permission_request_manager.h"
@@ -17,8 +18,11 @@
#include "chrome/browser/ui/permission_bubble/mock_permission_prompt_factory.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
+#include "chrome/test/base/testing_profile.h"
#include "testing/gtest/include/gtest/gtest.h"
+const double kTestEngagementScore = 29;
+
class PermissionRequestManagerTest : public ChromeRenderViewHostTestHarness {
public:
PermissionRequestManagerTest()
@@ -35,12 +39,14 @@ class PermissionRequestManagerTest : public ChromeRenderViewHostTestHarness {
request_camera_("cam",
PermissionRequestType::PERMISSION_MEDIASTREAM_CAMERA,
PermissionRequestGestureType::NO_GESTURE),
- iframe_request_same_domain_("iframe",
- PermissionRequestType::UNKNOWN,
- GURL("http://www.google.com/some/url")),
- iframe_request_other_domain_("iframe",
- PermissionRequestType::UNKNOWN,
- GURL("http://www.youtube.com")),
+ iframe_request_same_domain_(
+ "iframe",
+ PermissionRequestType::PERMISSION_NOTIFICATIONS,
+ GURL("http://www.google.com/some/url")),
+ iframe_request_other_domain_(
+ "iframe",
+ PermissionRequestType::PERMISSION_GEOLOCATION,
+ GURL("http://www.youtube.com")),
iframe_request_mic_other_domain_(
"iframe",
PermissionRequestType::PERMISSION_MEDIASTREAM_MIC,
@@ -50,7 +56,11 @@ class PermissionRequestManagerTest : public ChromeRenderViewHostTestHarness {
void SetUp() override {
ChromeRenderViewHostTestHarness::SetUp();
SetContents(CreateTestWebContents());
- NavigateAndCommit(GURL("http://www.google.com"));
+ url_ = GURL("http://www.google.com");
+ NavigateAndCommit(url_);
+
+ SiteEngagementService::Get(profile())->ResetBaseScoreForURL(
+ url_, kTestEngagementScore);
PermissionRequestManager::CreateForWebContents(web_contents());
manager_ = PermissionRequestManager::FromWebContents(web_contents());
@@ -95,6 +105,7 @@ class PermissionRequestManagerTest : public ChromeRenderViewHostTestHarness {
}
protected:
+ GURL url_;
MockPermissionRequest request1_;
MockPermissionRequest request2_;
MockPermissionRequest request_mic_;
@@ -515,6 +526,7 @@ TEST_F(PermissionRequestManagerTest, UMAForSimpleAcceptedGestureBubble) {
PermissionUmaUtil::kPermissionsPromptShownNoGesture, 0);
histograms.ExpectUniqueSample(
PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 1, 1);
+ histograms.ExpectTotalCount("Permissions.Engagement.Accepted.Quota", 0);
Accept();
histograms.ExpectUniqueSample(
@@ -530,6 +542,8 @@ TEST_F(PermissionRequestManagerTest, UMAForSimpleAcceptedGestureBubble) {
1);
histograms.ExpectTotalCount(
PermissionUmaUtil::kPermissionsPromptAcceptedNoGesture, 0);
+ histograms.ExpectUniqueSample("Permissions.Engagement.Accepted.Quota",
+ kTestEngagementScore, 1);
}
TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedNoGestureBubble) {
@@ -545,6 +559,8 @@ TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedNoGestureBubble) {
PermissionUmaUtil::kPermissionsPromptShownNoGesture,
static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD),
1);
+ histograms.ExpectTotalCount("Permissions.Engagement.Denied.MultipleDownload",
+ 0);
// No need to test the other UMA for showing prompts again, they were tested
// in UMAForSimpleAcceptedBubble.
@@ -562,6 +578,9 @@ TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedNoGestureBubble) {
1);
histograms.ExpectTotalCount(
PermissionUmaUtil::kPermissionsPromptDeniedGesture, 0);
+ histograms.ExpectUniqueSample(
+ "Permissions.Engagement.Denied.MultipleDownload", kTestEngagementScore,
+ 1);
}
// This code path (calling Accept on a non-merged bubble, with no accepted
@@ -611,6 +630,8 @@ TEST_F(PermissionRequestManagerTest, UMAForMergedAcceptedBubble) {
PermissionUmaUtil::kPermissionsPromptShownGesture, 0);
histograms.ExpectTotalCount(
PermissionUmaUtil::kPermissionsPromptShownNoGesture, 0);
+ histograms.ExpectTotalCount(
+ "Permissions.Engagement.Accepted.AudioAndVideoCapture", 0);
Accept();
@@ -628,6 +649,9 @@ TEST_F(PermissionRequestManagerTest, UMAForMergedAcceptedBubble) {
static_cast<base::HistogramBase::Sample>(
PermissionRequestType::PERMISSION_MEDIASTREAM_CAMERA),
1);
+ histograms.ExpectUniqueSample(
+ "Permissions.Engagement.Accepted.AudioAndVideoCapture",
+ kTestEngagementScore, 1);
}
TEST_F(PermissionRequestManagerTest, UMAForMergedDeniedBubble) {
@@ -637,6 +661,8 @@ TEST_F(PermissionRequestManagerTest, UMAForMergedDeniedBubble) {
manager_->AddRequest(&request_camera_);
manager_->DisplayPendingRequests();
WaitForBubbleToBeShown();
+ histograms.ExpectTotalCount(
+ "Permissions.Engagement.Denied.AudioAndVideoCapture", 0);
// No need to test UMA for showing prompts again, they were tested in
// UMAForMergedAcceptedBubble.
@@ -656,4 +682,31 @@ TEST_F(PermissionRequestManagerTest, UMAForMergedDeniedBubble) {
static_cast<base::HistogramBase::Sample>(
PermissionRequestType::PERMISSION_MEDIASTREAM_CAMERA),
1);
+ histograms.ExpectUniqueSample(
+ "Permissions.Engagement.Denied.AudioAndVideoCapture",
+ kTestEngagementScore, 1);
+}
+
+TEST_F(PermissionRequestManagerTest, UMAForIgnores) {
+ base::HistogramTester histograms;
+
+ manager_->AddRequest(&request1_);
+ manager_->DisplayPendingRequests();
+ WaitForBubbleToBeShown();
+ histograms.ExpectTotalCount("Permissions.Engagement.Ignored.Quota", 0);
+
+ GURL youtube("http://www.youtube.com/");
+ NavigateAndCommit(youtube);
+ histograms.ExpectUniqueSample("Permissions.Engagement.Ignored.Quota",
+ kTestEngagementScore, 1);
+
+ MockPermissionRequest youtube_request(
+ "request2", PermissionRequestType::PERMISSION_GEOLOCATION, youtube);
+ manager_->AddRequest(&youtube_request);
+ manager_->DisplayPendingRequests();
+ WaitForBubbleToBeShown();
+
+ NavigateAndCommit(GURL("http://www.google.com/"));
+ histograms.ExpectUniqueSample("Permissions.Engagement.Ignored.Geolocation", 0,
+ 1);
}
« no previous file with comments | « chrome/browser/permissions/permission_request_manager.cc ('k') | chrome/browser/permissions/permission_uma_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698