| 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 |