Index: chrome/browser/extensions/extension_prefs_unittest.cc |
diff --git a/chrome/browser/extensions/extension_prefs_unittest.cc b/chrome/browser/extensions/extension_prefs_unittest.cc |
index adbc0a7f5e9eb2c64429feb3706abca105ba546a..7c9733dd5fe9532cde4e0b3154d7cadc291f3436 100644 |
--- a/chrome/browser/extensions/extension_prefs_unittest.cc |
+++ b/chrome/browser/extensions/extension_prefs_unittest.cc |
@@ -171,6 +171,12 @@ class ExtensionPrefsGrantedPermissions : public ExtensionPrefsTest { |
api_perm_set2_.insert(ExtensionAPIPermission::kHistory); |
+ scopes_set1_.insert("scope1"); |
+ |
+ scopes_set2_.insert("scope1"); |
+ scopes_set2_.insert("scope2"); |
+ scopes_set2_.insert("scope3"); |
+ |
AddPattern(&ehost_perm_set1_, "http://*.google.com/*"); |
AddPattern(&ehost_perm_set1_, "http://example.com/*"); |
AddPattern(&ehost_perm_set1_, "chrome://favicon/*"); |
@@ -195,8 +201,13 @@ class ExtensionPrefsGrantedPermissions : public ExtensionPrefsTest { |
AddPattern(&shost_permissions_, "http://somesite.com/*"); |
AddPattern(&shost_permissions_, "http://example.com/*"); |
+ scope_permissions_.insert("scope1"); |
+ scope_permissions_.insert("scope2"); |
+ scope_permissions_.insert("scope3"); |
+ |
ExtensionAPIPermissionSet empty_set; |
URLPatternSet empty_extent; |
+ ExtensionOAuth2Scopes empty_scopes; |
scoped_refptr<ExtensionPermissionSet> permissions; |
scoped_refptr<ExtensionPermissionSet> granted_permissions; |
@@ -216,6 +227,7 @@ class ExtensionPrefsGrantedPermissions : public ExtensionPrefsTest { |
EXPECT_EQ(expected_apis, granted_permissions->apis()); |
EXPECT_TRUE(granted_permissions->effective_hosts().is_empty()); |
EXPECT_FALSE(granted_permissions->HasEffectiveFullAccess()); |
+ EXPECT_EQ(empty_scopes, granted_permissions->scopes()); |
granted_permissions = NULL; |
// Add part of the explicit host permissions. |
@@ -230,6 +242,7 @@ class ExtensionPrefsGrantedPermissions : public ExtensionPrefsTest { |
granted_permissions->explicit_hosts()); |
EXPECT_EQ(ehost_perm_set1_, |
granted_permissions->effective_hosts()); |
+ EXPECT_EQ(empty_scopes, granted_permissions->scopes()); |
// Add part of the scriptable host permissions. |
permissions = new ExtensionPermissionSet( |
@@ -243,14 +256,29 @@ class ExtensionPrefsGrantedPermissions : public ExtensionPrefsTest { |
granted_permissions->explicit_hosts()); |
EXPECT_EQ(shost_perm_set1_, |
granted_permissions->scriptable_hosts()); |
+ EXPECT_EQ(empty_scopes, granted_permissions->scopes()); |
URLPatternSet::CreateUnion(ehost_perm_set1_, shost_perm_set1_, |
&effective_permissions_); |
EXPECT_EQ(effective_permissions_, granted_permissions->effective_hosts()); |
- // Add the rest of both the permissions. |
+ // Add part of the oauth2 scopes. |
permissions = new ExtensionPermissionSet( |
- api_perm_set2_, ehost_perm_set2_, shost_perm_set2_); |
+ empty_set, empty_extent, empty_extent, scopes_set1_); |
+ prefs()->AddGrantedPermissions(extension_id_, permissions.get()); |
+ granted_permissions = prefs()->GetGrantedPermissions(extension_id_); |
+ EXPECT_FALSE(granted_permissions->IsEmpty()); |
+ EXPECT_FALSE(granted_permissions->HasEffectiveFullAccess()); |
+ EXPECT_EQ(expected_apis, granted_permissions->apis()); |
+ EXPECT_EQ(ehost_perm_set1_, |
+ granted_permissions->explicit_hosts()); |
+ EXPECT_EQ(shost_perm_set1_, |
+ granted_permissions->scriptable_hosts()); |
+ EXPECT_EQ(scopes_set1_, granted_permissions->scopes()); |
+ |
+ // Add the rest of the permissions. |
+ permissions = new ExtensionPermissionSet( |
+ api_perm_set2_, ehost_perm_set2_, shost_perm_set2_, scopes_set2_); |
std::set_union(expected_apis.begin(), expected_apis.end(), |
api_perm_set2_.begin(), api_perm_set2_.end(), |
@@ -265,6 +293,7 @@ class ExtensionPrefsGrantedPermissions : public ExtensionPrefsTest { |
granted_permissions->explicit_hosts()); |
EXPECT_EQ(shost_permissions_, |
granted_permissions->scriptable_hosts()); |
+ EXPECT_EQ(scope_permissions_, granted_permissions->scopes()); |
effective_permissions_.ClearPatterns(); |
URLPatternSet::CreateUnion(ehost_permissions_, shost_permissions_, |
&effective_permissions_); |
@@ -281,6 +310,8 @@ class ExtensionPrefsGrantedPermissions : public ExtensionPrefsTest { |
permissions->explicit_hosts()); |
EXPECT_EQ(shost_permissions_, |
permissions->scriptable_hosts()); |
+ EXPECT_EQ(scope_permissions_, |
+ permissions->scopes()); |
} |
private: |
@@ -291,10 +322,13 @@ class ExtensionPrefsGrantedPermissions : public ExtensionPrefsTest { |
URLPatternSet ehost_perm_set2_; |
URLPatternSet shost_perm_set1_; |
URLPatternSet shost_perm_set2_; |
+ ExtensionOAuth2Scopes scopes_set1_; |
+ ExtensionOAuth2Scopes scopes_set2_; |
ExtensionAPIPermissionSet api_permissions_; |
URLPatternSet ehost_permissions_; |
URLPatternSet shost_permissions_; |
+ ExtensionOAuth2Scopes scope_permissions_; |
URLPatternSet effective_permissions_; |
}; |
TEST_F(ExtensionPrefsGrantedPermissions, GrantedPermissions) {} |
@@ -319,7 +353,11 @@ class ExtensionPrefsActivePermissions : public ExtensionPrefsTest { |
AddPattern(&shosts, "https://*.google.com/*"); |
AddPattern(&shosts, "http://reddit.com/r/test/*"); |
- active_perms_ = new ExtensionPermissionSet(api_perms, ehosts, shosts); |
+ ExtensionOAuth2Scopes scopes; |
+ scopes.insert("my-new-scope"); |
+ |
+ active_perms_ = new ExtensionPermissionSet( |
+ api_perms, ehosts, shosts, scopes); |
// Make sure the active permissions start empty. |
scoped_refptr<ExtensionPermissionSet> active( |
@@ -332,6 +370,7 @@ class ExtensionPrefsActivePermissions : public ExtensionPrefsTest { |
EXPECT_EQ(active_perms_->apis(), active->apis()); |
EXPECT_EQ(active_perms_->explicit_hosts(), active->explicit_hosts()); |
EXPECT_EQ(active_perms_->scriptable_hosts(), active->scriptable_hosts()); |
+ EXPECT_EQ(active_perms_->scopes(), active->scopes()); |
EXPECT_EQ(*active_perms_, *active); |
} |