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

Side by Side Diff: chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc

Issue 2184823007: Add a feature which, when enabled, blocks permissions after X prompt dismissals. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 4 years, 4 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/permissions/permission_decision_auto_blocker.h"
6
7 #include "base/bind.h"
8 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
9 #include "chrome/test/base/testing_profile.h"
10 #include "content/public/browser/permission_type.h"
11
12 namespace {
13
14 bool FilterGoogle(const GURL& url) {
15 return url == GURL("https://www.google.com");
16 }
17
18 bool FilterAll(const GURL& url) {
19 return true;
20 }
21
22 } // namespace
23
24 class PermissionDecisionAutoBlockerUnitTest
25 : public ChromeRenderViewHostTestHarness {
26 protected:
27 int GetDismissalCount(const GURL& url,
28 content::PermissionType permission) {
29 PermissionDecisionAutoBlocker blocker;
30 return blocker.GetDismissalCount(profile(), url, permission);
31 }
32
33 int RecordDismissalCount(const GURL& url,
34 content::PermissionType permission) {
35 PermissionDecisionAutoBlocker blocker;
36 blocker.ShouldChangeDismissalToBlock(profile(), url, permission);
37 return blocker.GetDismissalCount(profile(), url, permission);
38 }
39 };
40
41 TEST_F(PermissionDecisionAutoBlockerUnitTest, RemoveCountsByUrl) {
42 GURL url1("https://www.google.com");
43 GURL url2("https://www.example.com");
44
45 EXPECT_EQ(1,
46 RecordDismissalCount(url1, content::PermissionType::GEOLOCATION));
47 EXPECT_EQ(2,
48 RecordDismissalCount(url1, content::PermissionType::GEOLOCATION));
49 EXPECT_EQ(3,
50 RecordDismissalCount(url1, content::PermissionType::GEOLOCATION));
51
52 EXPECT_EQ(1,
53 RecordDismissalCount(url1, content::PermissionType::NOTIFICATIONS));
54
55 EXPECT_EQ(1,
56 RecordDismissalCount(url2, content::PermissionType::GEOLOCATION));
57
58 PermissionDecisionAutoBlocker::RemoveCountsByUrl(profile(),
59 base::Bind(&FilterGoogle));
60
61 // Expect that url1's dismissals are gone, but url2's remain.
62 EXPECT_EQ(0, GetDismissalCount(url1, content::PermissionType::GEOLOCATION));
63 EXPECT_EQ(0, GetDismissalCount(url1, content::PermissionType::NOTIFICATIONS));
64 EXPECT_EQ(1, GetDismissalCount(url2, content::PermissionType::GEOLOCATION));
65
66 // Add some more dismissals.
67 EXPECT_EQ(1,
68 RecordDismissalCount(url1, content::PermissionType::GEOLOCATION));
69 EXPECT_EQ(1,
70 RecordDismissalCount(url1, content::PermissionType::NOTIFICATIONS));
71 EXPECT_EQ(2,
72 RecordDismissalCount(url2, content::PermissionType::GEOLOCATION));
73
74 // Remove everything and expect that it's all gone.
75 PermissionDecisionAutoBlocker::RemoveCountsByUrl(profile(),
76 base::Bind(&FilterAll));
77
78 EXPECT_EQ(0, GetDismissalCount(url1, content::PermissionType::GEOLOCATION));
79 EXPECT_EQ(0, GetDismissalCount(url1, content::PermissionType::NOTIFICATIONS));
80 EXPECT_EQ(0, GetDismissalCount(url2, content::PermissionType::GEOLOCATION));
81 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698