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

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

Issue 1373883003: Move geolocation and permission mojoms into components. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/permissions/permission_manager.h" 5 #include "chrome/browser/permissions/permission_manager.h"
6 6
7 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" 7 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
8 #include "chrome/browser/permissions/permission_manager_factory.h" 8 #include "chrome/browser/permissions/permission_manager_factory.h"
9 #include "chrome/test/base/testing_profile.h" 9 #include "chrome/test/base/testing_profile.h"
10 #include "components/content_settings/core/browser/host_content_settings_map.h" 10 #include "components/content_settings/core/browser/host_content_settings_map.h"
11 #include "content/public/browser/permission_type.h" 11 #include "content/public/browser/permission_type.h"
12 #include "content/public/test/test_browser_thread_bundle.h" 12 #include "content/public/test/test_browser_thread_bundle.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 using content::PermissionType; 15 using content::PermissionType;
16 using content::PermissionStatus;
17 16
18 namespace { 17 namespace {
19 18
20 class PermissionManagerTestingProfile final : public TestingProfile { 19 class PermissionManagerTestingProfile final : public TestingProfile {
21 public: 20 public:
22 PermissionManagerTestingProfile() {} 21 PermissionManagerTestingProfile() {}
23 ~PermissionManagerTestingProfile() override {} 22 ~PermissionManagerTestingProfile() override {}
24 23
25 PermissionManager* GetPermissionManager() override { 24 PermissionManager* GetPermissionManager() override {
26 return PermissionManagerFactory::GetForProfile(this); 25 return PermissionManagerFactory::GetForProfile(this);
27 } 26 }
28 27
29 DISALLOW_COPY_AND_ASSIGN(PermissionManagerTestingProfile); 28 DISALLOW_COPY_AND_ASSIGN(PermissionManagerTestingProfile);
30 }; 29 };
31 30
32 } // anonymous namespace 31 } // anonymous namespace
33 32
34 class PermissionManagerTest : public testing::Test { 33 class PermissionManagerTest : public testing::Test {
35 public: 34 public:
36 void OnPermissionChange(PermissionStatus permission) { 35 void OnPermissionChange(permission::Status permission) {
37 callback_called_ = true; 36 callback_called_ = true;
38 callback_result_ = permission; 37 callback_result_ = permission;
39 } 38 }
40 39
41 protected: 40 protected:
42 PermissionManagerTest() 41 PermissionManagerTest()
43 : url_("https://example.com"), 42 : url_("https://example.com"),
44 other_url_("https://foo.com"), 43 other_url_("https://foo.com"),
45 callback_called_(false), 44 callback_called_(false),
46 callback_result_(content::PERMISSION_STATUS_ASK) { 45 callback_result_(permission::STATUS_ASK) {}
47 }
48 46
49 PermissionManager* GetPermissionManager() { 47 PermissionManager* GetPermissionManager() {
50 return profile_.GetPermissionManager(); 48 return profile_.GetPermissionManager();
51 } 49 }
52 50
53 HostContentSettingsMap* GetHostContentSettingsMap() { 51 HostContentSettingsMap* GetHostContentSettingsMap() {
54 return HostContentSettingsMapFactory::GetForProfile(&profile_); 52 return HostContentSettingsMapFactory::GetForProfile(&profile_);
55 } 53 }
56 54
57 void CheckPermissionStatus(PermissionType type, 55 void CheckPermissionStatus(PermissionType type, permission::Status expected) {
58 PermissionStatus expected) {
59 EXPECT_EQ(expected, GetPermissionManager()->GetPermissionStatus( 56 EXPECT_EQ(expected, GetPermissionManager()->GetPermissionStatus(
60 type, url_.GetOrigin(), url_.GetOrigin())); 57 type, url_.GetOrigin(), url_.GetOrigin()));
61 } 58 }
62 59
63 void SetPermission(ContentSettingsType type, ContentSetting value) { 60 void SetPermission(ContentSettingsType type, ContentSetting value) {
64 HostContentSettingsMapFactory::GetForProfile(&profile_)->SetContentSetting( 61 HostContentSettingsMapFactory::GetForProfile(&profile_)->SetContentSetting(
65 ContentSettingsPattern::FromURLNoWildcard(url_), 62 ContentSettingsPattern::FromURLNoWildcard(url_),
66 ContentSettingsPattern::FromURLNoWildcard(url_), 63 ContentSettingsPattern::FromURLNoWildcard(url_),
67 type, std::string(), value); 64 type, std::string(), value);
68 } 65 }
69 66
70 const GURL& url() const { 67 const GURL& url() const {
71 return url_; 68 return url_;
72 } 69 }
73 70
74 const GURL& other_url() const { 71 const GURL& other_url() const {
75 return other_url_; 72 return other_url_;
76 } 73 }
77 74
78 bool callback_called() const { 75 bool callback_called() const {
79 return callback_called_; 76 return callback_called_;
80 } 77 }
81 78
82 PermissionStatus callback_result() const { return callback_result_; } 79 permission::Status callback_result() const { return callback_result_; }
83 80
84 void Reset() { 81 void Reset() {
85 callback_called_ = false; 82 callback_called_ = false;
86 callback_result_ = content::PERMISSION_STATUS_ASK; 83 callback_result_ = permission::STATUS_ASK;
87 } 84 }
88 85
89 private: 86 private:
90 const GURL url_; 87 const GURL url_;
91 const GURL other_url_; 88 const GURL other_url_;
92 bool callback_called_; 89 bool callback_called_;
93 PermissionStatus callback_result_; 90 permission::Status callback_result_;
94 content::TestBrowserThreadBundle thread_bundle_; 91 content::TestBrowserThreadBundle thread_bundle_;
95 PermissionManagerTestingProfile profile_; 92 PermissionManagerTestingProfile profile_;
96 }; 93 };
97 94
98 TEST_F(PermissionManagerTest, GetPermissionStatusDefault) { 95 TEST_F(PermissionManagerTest, GetPermissionStatusDefault) {
99 CheckPermissionStatus(PermissionType::MIDI_SYSEX, 96 CheckPermissionStatus(PermissionType::MIDI_SYSEX, permission::STATUS_ASK);
100 content::PERMISSION_STATUS_ASK); 97 CheckPermissionStatus(PermissionType::PUSH_MESSAGING, permission::STATUS_ASK);
101 CheckPermissionStatus(PermissionType::PUSH_MESSAGING, 98 CheckPermissionStatus(PermissionType::NOTIFICATIONS, permission::STATUS_ASK);
102 content::PERMISSION_STATUS_ASK); 99 CheckPermissionStatus(PermissionType::GEOLOCATION, permission::STATUS_ASK);
103 CheckPermissionStatus(PermissionType::NOTIFICATIONS,
104 content::PERMISSION_STATUS_ASK);
105 CheckPermissionStatus(PermissionType::GEOLOCATION,
106 content::PERMISSION_STATUS_ASK);
107 #if defined(OS_ANDROID) 100 #if defined(OS_ANDROID)
108 CheckPermissionStatus(PermissionType::PROTECTED_MEDIA_IDENTIFIER, 101 CheckPermissionStatus(PermissionType::PROTECTED_MEDIA_IDENTIFIER,
109 content::PERMISSION_STATUS_ASK); 102 permission::STATUS_ASK);
110 #endif 103 #endif
111 } 104 }
112 105
113 TEST_F(PermissionManagerTest, GetPermissionStatusAfterSet) { 106 TEST_F(PermissionManagerTest, GetPermissionStatusAfterSet) {
114 SetPermission(CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW); 107 SetPermission(CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW);
115 CheckPermissionStatus(PermissionType::GEOLOCATION, 108 CheckPermissionStatus(PermissionType::GEOLOCATION,
116 content::PERMISSION_STATUS_GRANTED); 109 permission::STATUS_GRANTED);
117 110
118 SetPermission(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW); 111 SetPermission(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW);
119 CheckPermissionStatus(PermissionType::NOTIFICATIONS, 112 CheckPermissionStatus(PermissionType::NOTIFICATIONS,
120 content::PERMISSION_STATUS_GRANTED); 113 permission::STATUS_GRANTED);
121 114
122 SetPermission(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, CONTENT_SETTING_ALLOW); 115 SetPermission(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, CONTENT_SETTING_ALLOW);
123 CheckPermissionStatus(PermissionType::MIDI_SYSEX, 116 CheckPermissionStatus(PermissionType::MIDI_SYSEX, permission::STATUS_GRANTED);
124 content::PERMISSION_STATUS_GRANTED);
125 117
126 SetPermission(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, CONTENT_SETTING_ALLOW); 118 SetPermission(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, CONTENT_SETTING_ALLOW);
127 CheckPermissionStatus(PermissionType::PUSH_MESSAGING, 119 CheckPermissionStatus(PermissionType::PUSH_MESSAGING,
128 content::PERMISSION_STATUS_GRANTED); 120 permission::STATUS_GRANTED);
129 121
130 #if defined(OS_ANDROID) 122 #if defined(OS_ANDROID)
131 SetPermission(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, 123 SetPermission(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER,
132 CONTENT_SETTING_ALLOW); 124 CONTENT_SETTING_ALLOW);
133 CheckPermissionStatus(PermissionType::PROTECTED_MEDIA_IDENTIFIER, 125 CheckPermissionStatus(PermissionType::PROTECTED_MEDIA_IDENTIFIER,
134 content::PERMISSION_STATUS_GRANTED); 126 permission::STATUS_GRANTED);
135 #endif 127 #endif
136 } 128 }
137 129
138 TEST_F(PermissionManagerTest, SameTypeChangeNotifies) { 130 TEST_F(PermissionManagerTest, SameTypeChangeNotifies) {
139 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( 131 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange(
140 PermissionType::GEOLOCATION, url(), url(), 132 PermissionType::GEOLOCATION, url(), url(),
141 base::Bind(&PermissionManagerTest::OnPermissionChange, 133 base::Bind(&PermissionManagerTest::OnPermissionChange,
142 base::Unretained(this))); 134 base::Unretained(this)));
143 135
144 GetHostContentSettingsMap()->SetContentSetting( 136 GetHostContentSettingsMap()->SetContentSetting(
145 ContentSettingsPattern::FromURLNoWildcard(url()), 137 ContentSettingsPattern::FromURLNoWildcard(url()),
146 ContentSettingsPattern::FromURLNoWildcard(url()), 138 ContentSettingsPattern::FromURLNoWildcard(url()),
147 CONTENT_SETTINGS_TYPE_GEOLOCATION, 139 CONTENT_SETTINGS_TYPE_GEOLOCATION,
148 std::string(), 140 std::string(),
149 CONTENT_SETTING_ALLOW); 141 CONTENT_SETTING_ALLOW);
150 142
151 EXPECT_TRUE(callback_called()); 143 EXPECT_TRUE(callback_called());
152 EXPECT_EQ(content::PERMISSION_STATUS_GRANTED, callback_result()); 144 EXPECT_EQ(permission::STATUS_GRANTED, callback_result());
153 145
154 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); 146 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id);
155 } 147 }
156 148
157 TEST_F(PermissionManagerTest, DifferentTypeChangeDoesNotNotify) { 149 TEST_F(PermissionManagerTest, DifferentTypeChangeDoesNotNotify) {
158 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( 150 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange(
159 PermissionType::GEOLOCATION, url(), url(), 151 PermissionType::GEOLOCATION, url(), url(),
160 base::Bind(&PermissionManagerTest::OnPermissionChange, 152 base::Bind(&PermissionManagerTest::OnPermissionChange,
161 base::Unretained(this))); 153 base::Unretained(this)));
162 154
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 base::Unretained(this))); 225 base::Unretained(this)));
234 226
235 GetHostContentSettingsMap()->SetContentSetting( 227 GetHostContentSettingsMap()->SetContentSetting(
236 ContentSettingsPattern::Wildcard(), 228 ContentSettingsPattern::Wildcard(),
237 ContentSettingsPattern::Wildcard(), 229 ContentSettingsPattern::Wildcard(),
238 CONTENT_SETTINGS_TYPE_GEOLOCATION, 230 CONTENT_SETTINGS_TYPE_GEOLOCATION,
239 std::string(), 231 std::string(),
240 CONTENT_SETTING_ALLOW); 232 CONTENT_SETTING_ALLOW);
241 233
242 EXPECT_TRUE(callback_called()); 234 EXPECT_TRUE(callback_called());
243 EXPECT_EQ(content::PERMISSION_STATUS_GRANTED, callback_result()); 235 EXPECT_EQ(permission::STATUS_GRANTED, callback_result());
244 236
245 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); 237 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id);
246 } 238 }
247 239
248 TEST_F(PermissionManagerTest, ClearSettingsNotifies) { 240 TEST_F(PermissionManagerTest, ClearSettingsNotifies) {
249 GetHostContentSettingsMap()->SetContentSetting( 241 GetHostContentSettingsMap()->SetContentSetting(
250 ContentSettingsPattern::FromURLNoWildcard(url()), 242 ContentSettingsPattern::FromURLNoWildcard(url()),
251 ContentSettingsPattern::FromURLNoWildcard(url()), 243 ContentSettingsPattern::FromURLNoWildcard(url()),
252 CONTENT_SETTINGS_TYPE_GEOLOCATION, 244 CONTENT_SETTINGS_TYPE_GEOLOCATION,
253 std::string(), 245 std::string(),
254 CONTENT_SETTING_ALLOW); 246 CONTENT_SETTING_ALLOW);
255 247
256 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( 248 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange(
257 PermissionType::GEOLOCATION, url(), url(), 249 PermissionType::GEOLOCATION, url(), url(),
258 base::Bind(&PermissionManagerTest::OnPermissionChange, 250 base::Bind(&PermissionManagerTest::OnPermissionChange,
259 base::Unretained(this))); 251 base::Unretained(this)));
260 252
261 GetHostContentSettingsMap()->ClearSettingsForOneType( 253 GetHostContentSettingsMap()->ClearSettingsForOneType(
262 CONTENT_SETTINGS_TYPE_GEOLOCATION); 254 CONTENT_SETTINGS_TYPE_GEOLOCATION);
263 255
264 EXPECT_TRUE(callback_called()); 256 EXPECT_TRUE(callback_called());
265 EXPECT_EQ(content::PERMISSION_STATUS_ASK, callback_result()); 257 EXPECT_EQ(permission::STATUS_ASK, callback_result());
266 258
267 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); 259 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id);
268 } 260 }
269 261
270 TEST_F(PermissionManagerTest, NewValueCorrectlyPassed) { 262 TEST_F(PermissionManagerTest, NewValueCorrectlyPassed) {
271 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( 263 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange(
272 PermissionType::GEOLOCATION, url(), url(), 264 PermissionType::GEOLOCATION, url(), url(),
273 base::Bind(&PermissionManagerTest::OnPermissionChange, 265 base::Bind(&PermissionManagerTest::OnPermissionChange,
274 base::Unretained(this))); 266 base::Unretained(this)));
275 267
276 GetHostContentSettingsMap()->SetContentSetting( 268 GetHostContentSettingsMap()->SetContentSetting(
277 ContentSettingsPattern::FromURLNoWildcard(url()), 269 ContentSettingsPattern::FromURLNoWildcard(url()),
278 ContentSettingsPattern::FromURLNoWildcard(url()), 270 ContentSettingsPattern::FromURLNoWildcard(url()),
279 CONTENT_SETTINGS_TYPE_GEOLOCATION, 271 CONTENT_SETTINGS_TYPE_GEOLOCATION,
280 std::string(), 272 std::string(),
281 CONTENT_SETTING_BLOCK); 273 CONTENT_SETTING_BLOCK);
282 274
283 EXPECT_TRUE(callback_called()); 275 EXPECT_TRUE(callback_called());
284 EXPECT_EQ(content::PERMISSION_STATUS_DENIED, callback_result()); 276 EXPECT_EQ(permission::STATUS_DENIED, callback_result());
285 277
286 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); 278 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id);
287 } 279 }
288 280
289 TEST_F(PermissionManagerTest, ChangeWithoutPermissionChangeDoesNotNotify) { 281 TEST_F(PermissionManagerTest, ChangeWithoutPermissionChangeDoesNotNotify) {
290 GetHostContentSettingsMap()->SetContentSetting( 282 GetHostContentSettingsMap()->SetContentSetting(
291 ContentSettingsPattern::FromURLNoWildcard(url()), 283 ContentSettingsPattern::FromURLNoWildcard(url()),
292 ContentSettingsPattern::FromURLNoWildcard(url()), 284 ContentSettingsPattern::FromURLNoWildcard(url()),
293 CONTENT_SETTINGS_TYPE_GEOLOCATION, 285 CONTENT_SETTINGS_TYPE_GEOLOCATION,
294 std::string(), 286 std::string(),
(...skipping 30 matching lines...) Expand all
325 base::Unretained(this))); 317 base::Unretained(this)));
326 318
327 GetHostContentSettingsMap()->SetContentSetting( 319 GetHostContentSettingsMap()->SetContentSetting(
328 ContentSettingsPattern::FromURLNoWildcard(url()), 320 ContentSettingsPattern::FromURLNoWildcard(url()),
329 ContentSettingsPattern::FromURLNoWildcard(url()), 321 ContentSettingsPattern::FromURLNoWildcard(url()),
330 CONTENT_SETTINGS_TYPE_GEOLOCATION, 322 CONTENT_SETTINGS_TYPE_GEOLOCATION,
331 std::string(), 323 std::string(),
332 CONTENT_SETTING_ALLOW); 324 CONTENT_SETTING_ALLOW);
333 325
334 EXPECT_TRUE(callback_called()); 326 EXPECT_TRUE(callback_called());
335 EXPECT_EQ(content::PERMISSION_STATUS_GRANTED, callback_result()); 327 EXPECT_EQ(permission::STATUS_GRANTED, callback_result());
336 328
337 Reset(); 329 Reset();
338 330
339 GetHostContentSettingsMap()->SetContentSetting( 331 GetHostContentSettingsMap()->SetContentSetting(
340 ContentSettingsPattern::FromURLNoWildcard(url()), 332 ContentSettingsPattern::FromURLNoWildcard(url()),
341 ContentSettingsPattern::FromURLNoWildcard(url()), 333 ContentSettingsPattern::FromURLNoWildcard(url()),
342 CONTENT_SETTINGS_TYPE_GEOLOCATION, 334 CONTENT_SETTINGS_TYPE_GEOLOCATION,
343 std::string(), 335 std::string(),
344 CONTENT_SETTING_ASK); 336 CONTENT_SETTING_ASK);
345 337
346 EXPECT_TRUE(callback_called()); 338 EXPECT_TRUE(callback_called());
347 EXPECT_EQ(content::PERMISSION_STATUS_ASK, callback_result()); 339 EXPECT_EQ(permission::STATUS_ASK, callback_result());
348 340
349 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); 341 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id);
350 } 342 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_manager.cc ('k') | chrome/browser/push_messaging/push_messaging_service_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698