OLD | NEW |
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 "base/macros.h" | 7 #include "base/macros.h" |
8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
9 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 9 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
10 #include "chrome/browser/permissions/permission_manager_factory.h" | 10 #include "chrome/browser/permissions/permission_manager_factory.h" |
(...skipping 27 matching lines...) Expand all Loading... |
38 void OnPermissionChange(PermissionStatus permission) { | 38 void OnPermissionChange(PermissionStatus permission) { |
39 callback_called_ = true; | 39 callback_called_ = true; |
40 callback_result_ = permission; | 40 callback_result_ = permission; |
41 } | 41 } |
42 | 42 |
43 protected: | 43 protected: |
44 PermissionManagerTest() | 44 PermissionManagerTest() |
45 : url_("https://example.com"), | 45 : url_("https://example.com"), |
46 other_url_("https://foo.com"), | 46 other_url_("https://foo.com"), |
47 callback_called_(false), | 47 callback_called_(false), |
48 callback_result_(content::PERMISSION_STATUS_ASK) { | 48 callback_result_(content::PermissionStatus::ASK) {} |
49 } | |
50 | 49 |
51 PermissionManager* GetPermissionManager() { | 50 PermissionManager* GetPermissionManager() { |
52 return profile_.GetPermissionManager(); | 51 return profile_.GetPermissionManager(); |
53 } | 52 } |
54 | 53 |
55 HostContentSettingsMap* GetHostContentSettingsMap() { | 54 HostContentSettingsMap* GetHostContentSettingsMap() { |
56 return HostContentSettingsMapFactory::GetForProfile(&profile_); | 55 return HostContentSettingsMapFactory::GetForProfile(&profile_); |
57 } | 56 } |
58 | 57 |
59 void CheckPermissionStatus(PermissionType type, | 58 void CheckPermissionStatus(PermissionType type, |
(...skipping 18 matching lines...) Expand all Loading... |
78 } | 77 } |
79 | 78 |
80 bool callback_called() const { | 79 bool callback_called() const { |
81 return callback_called_; | 80 return callback_called_; |
82 } | 81 } |
83 | 82 |
84 PermissionStatus callback_result() const { return callback_result_; } | 83 PermissionStatus callback_result() const { return callback_result_; } |
85 | 84 |
86 void Reset() { | 85 void Reset() { |
87 callback_called_ = false; | 86 callback_called_ = false; |
88 callback_result_ = content::PERMISSION_STATUS_ASK; | 87 callback_result_ = content::PermissionStatus::ASK; |
89 } | 88 } |
90 | 89 |
91 private: | 90 private: |
92 const GURL url_; | 91 const GURL url_; |
93 const GURL other_url_; | 92 const GURL other_url_; |
94 bool callback_called_; | 93 bool callback_called_; |
95 PermissionStatus callback_result_; | 94 PermissionStatus callback_result_; |
96 content::TestBrowserThreadBundle thread_bundle_; | 95 content::TestBrowserThreadBundle thread_bundle_; |
97 PermissionManagerTestingProfile profile_; | 96 PermissionManagerTestingProfile profile_; |
98 }; | 97 }; |
99 | 98 |
100 TEST_F(PermissionManagerTest, GetPermissionStatusDefault) { | 99 TEST_F(PermissionManagerTest, GetPermissionStatusDefault) { |
101 CheckPermissionStatus(PermissionType::MIDI_SYSEX, | 100 CheckPermissionStatus(PermissionType::MIDI_SYSEX, |
102 content::PERMISSION_STATUS_ASK); | 101 content::PermissionStatus::ASK); |
103 CheckPermissionStatus(PermissionType::PUSH_MESSAGING, | 102 CheckPermissionStatus(PermissionType::PUSH_MESSAGING, |
104 content::PERMISSION_STATUS_ASK); | 103 content::PermissionStatus::ASK); |
105 CheckPermissionStatus(PermissionType::NOTIFICATIONS, | 104 CheckPermissionStatus(PermissionType::NOTIFICATIONS, |
106 content::PERMISSION_STATUS_ASK); | 105 content::PermissionStatus::ASK); |
107 CheckPermissionStatus(PermissionType::GEOLOCATION, | 106 CheckPermissionStatus(PermissionType::GEOLOCATION, |
108 content::PERMISSION_STATUS_ASK); | 107 content::PermissionStatus::ASK); |
109 #if defined(OS_ANDROID) | 108 #if defined(OS_ANDROID) |
110 CheckPermissionStatus(PermissionType::PROTECTED_MEDIA_IDENTIFIER, | 109 CheckPermissionStatus(PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
111 content::PERMISSION_STATUS_ASK); | 110 content::PermissionStatus::ASK); |
112 #endif | 111 #endif |
113 } | 112 } |
114 | 113 |
115 TEST_F(PermissionManagerTest, GetPermissionStatusAfterSet) { | 114 TEST_F(PermissionManagerTest, GetPermissionStatusAfterSet) { |
116 SetPermission(CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW); | 115 SetPermission(CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW); |
117 CheckPermissionStatus(PermissionType::GEOLOCATION, | 116 CheckPermissionStatus(PermissionType::GEOLOCATION, |
118 content::PERMISSION_STATUS_GRANTED); | 117 content::PermissionStatus::GRANTED); |
119 | 118 |
120 SetPermission(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW); | 119 SetPermission(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW); |
121 CheckPermissionStatus(PermissionType::NOTIFICATIONS, | 120 CheckPermissionStatus(PermissionType::NOTIFICATIONS, |
122 content::PERMISSION_STATUS_GRANTED); | 121 content::PermissionStatus::GRANTED); |
123 | 122 |
124 SetPermission(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, CONTENT_SETTING_ALLOW); | 123 SetPermission(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, CONTENT_SETTING_ALLOW); |
125 CheckPermissionStatus(PermissionType::MIDI_SYSEX, | 124 CheckPermissionStatus(PermissionType::MIDI_SYSEX, |
126 content::PERMISSION_STATUS_GRANTED); | 125 content::PermissionStatus::GRANTED); |
127 | 126 |
128 SetPermission(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, CONTENT_SETTING_ALLOW); | 127 SetPermission(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, CONTENT_SETTING_ALLOW); |
129 CheckPermissionStatus(PermissionType::PUSH_MESSAGING, | 128 CheckPermissionStatus(PermissionType::PUSH_MESSAGING, |
130 content::PERMISSION_STATUS_GRANTED); | 129 content::PermissionStatus::GRANTED); |
131 | 130 |
132 #if defined(OS_ANDROID) | 131 #if defined(OS_ANDROID) |
133 SetPermission(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, | 132 SetPermission(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, |
134 CONTENT_SETTING_ALLOW); | 133 CONTENT_SETTING_ALLOW); |
135 CheckPermissionStatus(PermissionType::PROTECTED_MEDIA_IDENTIFIER, | 134 CheckPermissionStatus(PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
136 content::PERMISSION_STATUS_GRANTED); | 135 content::PermissionStatus::GRANTED); |
137 #endif | 136 #endif |
138 } | 137 } |
139 | 138 |
140 TEST_F(PermissionManagerTest, SameTypeChangeNotifies) { | 139 TEST_F(PermissionManagerTest, SameTypeChangeNotifies) { |
141 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( | 140 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( |
142 PermissionType::GEOLOCATION, url(), url(), | 141 PermissionType::GEOLOCATION, url(), url(), |
143 base::Bind(&PermissionManagerTest::OnPermissionChange, | 142 base::Bind(&PermissionManagerTest::OnPermissionChange, |
144 base::Unretained(this))); | 143 base::Unretained(this))); |
145 | 144 |
146 GetHostContentSettingsMap()->SetContentSetting( | 145 GetHostContentSettingsMap()->SetContentSetting( |
147 ContentSettingsPattern::FromURLNoWildcard(url()), | 146 ContentSettingsPattern::FromURLNoWildcard(url()), |
148 ContentSettingsPattern::FromURLNoWildcard(url()), | 147 ContentSettingsPattern::FromURLNoWildcard(url()), |
149 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 148 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
150 std::string(), | 149 std::string(), |
151 CONTENT_SETTING_ALLOW); | 150 CONTENT_SETTING_ALLOW); |
152 | 151 |
153 EXPECT_TRUE(callback_called()); | 152 EXPECT_TRUE(callback_called()); |
154 EXPECT_EQ(content::PERMISSION_STATUS_GRANTED, callback_result()); | 153 EXPECT_EQ(content::PermissionStatus::GRANTED, callback_result()); |
155 | 154 |
156 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); | 155 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); |
157 } | 156 } |
158 | 157 |
159 TEST_F(PermissionManagerTest, DifferentTypeChangeDoesNotNotify) { | 158 TEST_F(PermissionManagerTest, DifferentTypeChangeDoesNotNotify) { |
160 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( | 159 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( |
161 PermissionType::GEOLOCATION, url(), url(), | 160 PermissionType::GEOLOCATION, url(), url(), |
162 base::Bind(&PermissionManagerTest::OnPermissionChange, | 161 base::Bind(&PermissionManagerTest::OnPermissionChange, |
163 base::Unretained(this))); | 162 base::Unretained(this))); |
164 | 163 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 base::Unretained(this))); | 234 base::Unretained(this))); |
236 | 235 |
237 GetHostContentSettingsMap()->SetContentSetting( | 236 GetHostContentSettingsMap()->SetContentSetting( |
238 ContentSettingsPattern::Wildcard(), | 237 ContentSettingsPattern::Wildcard(), |
239 ContentSettingsPattern::Wildcard(), | 238 ContentSettingsPattern::Wildcard(), |
240 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 239 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
241 std::string(), | 240 std::string(), |
242 CONTENT_SETTING_ALLOW); | 241 CONTENT_SETTING_ALLOW); |
243 | 242 |
244 EXPECT_TRUE(callback_called()); | 243 EXPECT_TRUE(callback_called()); |
245 EXPECT_EQ(content::PERMISSION_STATUS_GRANTED, callback_result()); | 244 EXPECT_EQ(content::PermissionStatus::GRANTED, callback_result()); |
246 | 245 |
247 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); | 246 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); |
248 } | 247 } |
249 | 248 |
250 TEST_F(PermissionManagerTest, ClearSettingsNotifies) { | 249 TEST_F(PermissionManagerTest, ClearSettingsNotifies) { |
251 GetHostContentSettingsMap()->SetContentSetting( | 250 GetHostContentSettingsMap()->SetContentSetting( |
252 ContentSettingsPattern::FromURLNoWildcard(url()), | 251 ContentSettingsPattern::FromURLNoWildcard(url()), |
253 ContentSettingsPattern::FromURLNoWildcard(url()), | 252 ContentSettingsPattern::FromURLNoWildcard(url()), |
254 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 253 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
255 std::string(), | 254 std::string(), |
256 CONTENT_SETTING_ALLOW); | 255 CONTENT_SETTING_ALLOW); |
257 | 256 |
258 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( | 257 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( |
259 PermissionType::GEOLOCATION, url(), url(), | 258 PermissionType::GEOLOCATION, url(), url(), |
260 base::Bind(&PermissionManagerTest::OnPermissionChange, | 259 base::Bind(&PermissionManagerTest::OnPermissionChange, |
261 base::Unretained(this))); | 260 base::Unretained(this))); |
262 | 261 |
263 GetHostContentSettingsMap()->ClearSettingsForOneType( | 262 GetHostContentSettingsMap()->ClearSettingsForOneType( |
264 CONTENT_SETTINGS_TYPE_GEOLOCATION); | 263 CONTENT_SETTINGS_TYPE_GEOLOCATION); |
265 | 264 |
266 EXPECT_TRUE(callback_called()); | 265 EXPECT_TRUE(callback_called()); |
267 EXPECT_EQ(content::PERMISSION_STATUS_ASK, callback_result()); | 266 EXPECT_EQ(content::PermissionStatus::ASK, callback_result()); |
268 | 267 |
269 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); | 268 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); |
270 } | 269 } |
271 | 270 |
272 TEST_F(PermissionManagerTest, NewValueCorrectlyPassed) { | 271 TEST_F(PermissionManagerTest, NewValueCorrectlyPassed) { |
273 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( | 272 int subscription_id = GetPermissionManager()->SubscribePermissionStatusChange( |
274 PermissionType::GEOLOCATION, url(), url(), | 273 PermissionType::GEOLOCATION, url(), url(), |
275 base::Bind(&PermissionManagerTest::OnPermissionChange, | 274 base::Bind(&PermissionManagerTest::OnPermissionChange, |
276 base::Unretained(this))); | 275 base::Unretained(this))); |
277 | 276 |
278 GetHostContentSettingsMap()->SetContentSetting( | 277 GetHostContentSettingsMap()->SetContentSetting( |
279 ContentSettingsPattern::FromURLNoWildcard(url()), | 278 ContentSettingsPattern::FromURLNoWildcard(url()), |
280 ContentSettingsPattern::FromURLNoWildcard(url()), | 279 ContentSettingsPattern::FromURLNoWildcard(url()), |
281 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 280 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
282 std::string(), | 281 std::string(), |
283 CONTENT_SETTING_BLOCK); | 282 CONTENT_SETTING_BLOCK); |
284 | 283 |
285 EXPECT_TRUE(callback_called()); | 284 EXPECT_TRUE(callback_called()); |
286 EXPECT_EQ(content::PERMISSION_STATUS_DENIED, callback_result()); | 285 EXPECT_EQ(content::PermissionStatus::DENIED, callback_result()); |
287 | 286 |
288 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); | 287 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); |
289 } | 288 } |
290 | 289 |
291 TEST_F(PermissionManagerTest, ChangeWithoutPermissionChangeDoesNotNotify) { | 290 TEST_F(PermissionManagerTest, ChangeWithoutPermissionChangeDoesNotNotify) { |
292 GetHostContentSettingsMap()->SetContentSetting( | 291 GetHostContentSettingsMap()->SetContentSetting( |
293 ContentSettingsPattern::FromURLNoWildcard(url()), | 292 ContentSettingsPattern::FromURLNoWildcard(url()), |
294 ContentSettingsPattern::FromURLNoWildcard(url()), | 293 ContentSettingsPattern::FromURLNoWildcard(url()), |
295 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 294 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
296 std::string(), | 295 std::string(), |
(...skipping 30 matching lines...) Expand all Loading... |
327 base::Unretained(this))); | 326 base::Unretained(this))); |
328 | 327 |
329 GetHostContentSettingsMap()->SetContentSetting( | 328 GetHostContentSettingsMap()->SetContentSetting( |
330 ContentSettingsPattern::FromURLNoWildcard(url()), | 329 ContentSettingsPattern::FromURLNoWildcard(url()), |
331 ContentSettingsPattern::FromURLNoWildcard(url()), | 330 ContentSettingsPattern::FromURLNoWildcard(url()), |
332 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 331 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
333 std::string(), | 332 std::string(), |
334 CONTENT_SETTING_ALLOW); | 333 CONTENT_SETTING_ALLOW); |
335 | 334 |
336 EXPECT_TRUE(callback_called()); | 335 EXPECT_TRUE(callback_called()); |
337 EXPECT_EQ(content::PERMISSION_STATUS_GRANTED, callback_result()); | 336 EXPECT_EQ(content::PermissionStatus::GRANTED, callback_result()); |
338 | 337 |
339 Reset(); | 338 Reset(); |
340 | 339 |
341 GetHostContentSettingsMap()->SetContentSetting( | 340 GetHostContentSettingsMap()->SetContentSetting( |
342 ContentSettingsPattern::FromURLNoWildcard(url()), | 341 ContentSettingsPattern::FromURLNoWildcard(url()), |
343 ContentSettingsPattern::FromURLNoWildcard(url()), | 342 ContentSettingsPattern::FromURLNoWildcard(url()), |
344 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 343 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
345 std::string(), | 344 std::string(), |
346 CONTENT_SETTING_ASK); | 345 CONTENT_SETTING_ASK); |
347 | 346 |
348 EXPECT_TRUE(callback_called()); | 347 EXPECT_TRUE(callback_called()); |
349 EXPECT_EQ(content::PERMISSION_STATUS_ASK, callback_result()); | 348 EXPECT_EQ(content::PermissionStatus::ASK, callback_result()); |
350 | 349 |
351 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); | 350 GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); |
352 } | 351 } |
OLD | NEW |