| Index: chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
|
| diff --git a/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc b/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
|
| index ae72ce6b551b84db1af3574e286e7ce27e6f2b35..9629d0ae073b20fc7a95d20a0f95de8e7efd8840 100644
|
| --- a/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
|
| +++ b/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
|
| @@ -8,6 +8,8 @@
|
| #include "base/command_line.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| +#include "base/test/histogram_tester.h"
|
| +#include "chrome/browser/permissions/permission_uma_util.h"
|
| #include "chrome/browser/ui/website_settings/mock_permission_bubble_factory.h"
|
| #include "chrome/browser/ui/website_settings/mock_permission_bubble_request.h"
|
| #include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
|
| @@ -20,8 +22,8 @@ class PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness {
|
| public:
|
| PermissionBubbleManagerTest()
|
| : ChromeRenderViewHostTestHarness(),
|
| - request1_("test1"),
|
| - request2_("test2"),
|
| + request1_("test1", PermissionBubbleType::QUOTA),
|
| + request2_("test2", PermissionBubbleType::DOWNLOAD),
|
| iframe_request_same_domain_("iframe",
|
| GURL("http://www.google.com/some/url")),
|
| iframe_request_other_domain_("iframe",
|
| @@ -51,6 +53,10 @@ class PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness {
|
| manager_->Accept();
|
| }
|
|
|
| + void Deny() {
|
| + manager_->Deny();
|
| + }
|
| +
|
| void Closing() {
|
| manager_->Closing();
|
| }
|
| @@ -447,3 +453,154 @@ TEST_F(PermissionBubbleManagerTest, RequestsDontNeedUserGesture) {
|
|
|
| EXPECT_TRUE(view_factory_->is_visible());
|
| }
|
| +
|
| +TEST_F(PermissionBubbleManagerTest, UMAForSimpleAcceptedBubble) {
|
| + base::HistogramTester histograms;
|
| +
|
| + manager_->AddRequest(&request1_);
|
| + manager_->DisplayPendingRequests();
|
| + WaitForCoalescing();
|
| + histograms.ExpectUniqueSample(
|
| + PermissionUmaUtil::kPermissionsPromptShown,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA),
|
| + 1);
|
| + histograms.ExpectUniqueSample(
|
| + PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 1, 1);
|
| +
|
| + ToggleAccept(0, true);
|
| + Accept();
|
| + histograms.ExpectUniqueSample(
|
| + PermissionUmaUtil::kPermissionsPromptAccepted,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1);
|
| +}
|
| +
|
| +TEST_F(PermissionBubbleManagerTest, UMAForSimpleDeniedBubble) {
|
| + base::HistogramTester histograms;
|
| +
|
| + manager_->AddRequest(&request1_);
|
| + manager_->DisplayPendingRequests();
|
| + WaitForCoalescing();
|
| + // No need to test UMA for showing prompts again, they were tested in
|
| + // UMAForSimpleAcceptedBubble.
|
| +
|
| + Deny();
|
| + histograms.ExpectUniqueSample(
|
| + PermissionUmaUtil::kPermissionsPromptDenied,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1);
|
| +}
|
| +
|
| +// This code path (calling Accept on a non-merged bubble, with no accepted
|
| +// permission) would never be used in actual Chrome, but its still tested for
|
| +// completeness.
|
| +TEST_F(PermissionBubbleManagerTest, UMAForSimpleDeniedBubbleAlternatePath) {
|
| + base::HistogramTester histograms;
|
| +
|
| + manager_->AddRequest(&request1_);
|
| + manager_->DisplayPendingRequests();
|
| + WaitForCoalescing();
|
| + // No need to test UMA for showing prompts again, they were tested in
|
| + // UMAForSimpleAcceptedBubble.
|
| +
|
| + ToggleAccept(0, false);
|
| + Accept();
|
| + histograms.ExpectUniqueSample(
|
| + PermissionUmaUtil::kPermissionsPromptDenied,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1);
|
| +}
|
| +
|
| +TEST_F(PermissionBubbleManagerTest, UMAForMergedAcceptedBubble) {
|
| + base::HistogramTester histograms;
|
| +
|
| + manager_->AddRequest(&request1_);
|
| + manager_->AddRequest(&request2_);
|
| + manager_->DisplayPendingRequests();
|
| + WaitForCoalescing();
|
| +
|
| + histograms.ExpectUniqueSample(
|
| + PermissionUmaUtil::kPermissionsPromptShown,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE),
|
| + 1);
|
| + histograms.ExpectBucketCount(
|
| + PermissionUmaUtil::kPermissionsPromptMergedBubbleTypes,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA),
|
| + 1);
|
| + histograms.ExpectBucketCount(
|
| + PermissionUmaUtil::kPermissionsPromptMergedBubbleTypes,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD),
|
| + 1);
|
| + histograms.ExpectUniqueSample(
|
| + PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 2, 1);
|
| +
|
| + ToggleAccept(0, true);
|
| + ToggleAccept(1, true);
|
| + Accept();
|
| +
|
| + histograms.ExpectUniqueSample(
|
| + PermissionUmaUtil::kPermissionsPromptAccepted,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE),
|
| + 1);
|
| + histograms.ExpectBucketCount(
|
| + PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA),
|
| + 1);
|
| + histograms.ExpectBucketCount(
|
| + PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD),
|
| + 1);
|
| +}
|
| +
|
| +TEST_F(PermissionBubbleManagerTest, UMAForMergedMixedBubble) {
|
| + base::HistogramTester histograms;
|
| +
|
| + manager_->AddRequest(&request1_);
|
| + manager_->AddRequest(&request2_);
|
| + manager_->DisplayPendingRequests();
|
| + WaitForCoalescing();
|
| + // No need to test UMA for showing prompts again, they were tested in
|
| + // UMAForMergedAcceptedBubble.
|
| +
|
| + ToggleAccept(0, true);
|
| + ToggleAccept(1, false);
|
| + Accept();
|
| +
|
| + histograms.ExpectUniqueSample(
|
| + PermissionUmaUtil::kPermissionsPromptDenied,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE),
|
| + 1);
|
| + histograms.ExpectBucketCount(
|
| + PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA),
|
| + 1);
|
| + histograms.ExpectBucketCount(
|
| + PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD),
|
| + 1);
|
| +}
|
| +
|
| +TEST_F(PermissionBubbleManagerTest, UMAForMergedDeniedBubble) {
|
| + base::HistogramTester histograms;
|
| +
|
| + manager_->AddRequest(&request1_);
|
| + manager_->AddRequest(&request2_);
|
| + manager_->DisplayPendingRequests();
|
| + WaitForCoalescing();
|
| + // No need to test UMA for showing prompts again, they were tested in
|
| + // UMAForMergedAcceptedBubble.
|
| +
|
| + ToggleAccept(0, false);
|
| + ToggleAccept(1, false);
|
| + Accept();
|
| +
|
| + histograms.ExpectUniqueSample(
|
| + PermissionUmaUtil::kPermissionsPromptDenied,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE),
|
| + 1);
|
| + histograms.ExpectBucketCount(
|
| + PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA),
|
| + 1);
|
| + histograms.ExpectBucketCount(
|
| + PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD),
|
| + 1);
|
| +}
|
|
|