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

Side by Side Diff: chrome/browser/extensions/permission_messages_unittest.cc

Issue 1349613003: [Extensions] Un-refcount PermissionSet (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/utf_string_conversions.h"
7 #include "chrome/browser/extensions/extension_service.h" 7 #include "chrome/browser/extensions/extension_service.h"
8 #include "chrome/browser/extensions/permissions_updater.h" 8 #include "chrome/browser/extensions/permissions_updater.h"
9 #include "chrome/browser/extensions/test_extension_environment.h" 9 #include "chrome/browser/extensions/test_extension_environment.h"
10 #include "chrome/common/extensions/permissions/chrome_permission_message_provide r.h" 10 #include "chrome/common/extensions/permissions/chrome_permission_message_provide r.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 .Set("optional_permissions", optional_permissions)) 71 .Set("optional_permissions", optional_permissions))
72 .SetID(crx_file::id_util::GenerateId("extension")) 72 .SetID(crx_file::id_util::GenerateId("extension"))
73 .SetLocation(Manifest::INTERNAL) 73 .SetLocation(Manifest::INTERNAL)
74 .Build(); 74 .Build();
75 env_.GetExtensionService()->AddExtension(app_.get()); 75 env_.GetExtensionService()->AddExtension(app_.get());
76 } 76 }
77 77
78 // Returns the permission messages that would display in the prompt that 78 // Returns the permission messages that would display in the prompt that
79 // requests all the optional permissions for the current |app_|. 79 // requests all the optional permissions for the current |app_|.
80 std::vector<base::string16> GetOptionalPermissionMessages() { 80 std::vector<base::string16> GetOptionalPermissionMessages() {
81 scoped_refptr<const PermissionSet> granted_permissions = 81 scoped_ptr<const PermissionSet> granted_permissions =
82 env_.GetExtensionPrefs()->GetGrantedPermissions(app_->id()); 82 env_.GetExtensionPrefs()->GetGrantedPermissions(app_->id());
83 scoped_refptr<const PermissionSet> optional_permissions = 83 const PermissionSet* optional_permissions =
84 PermissionsParser::GetOptionalPermissions(app_.get()); 84 PermissionsParser::GetOptionalPermissions(app_.get());
85 scoped_refptr<const PermissionSet> requested_permissions = 85 scoped_ptr<const PermissionSet> requested_permissions =
86 PermissionSet::CreateDifference(*optional_permissions, 86 PermissionSet::CreateDifference(*optional_permissions,
87 *granted_permissions); 87 *granted_permissions);
88 return GetMessages(requested_permissions); 88 return GetMessages(*requested_permissions);
89 } 89 }
90 90
91 void GrantOptionalPermissions() { 91 void GrantOptionalPermissions() {
92 PermissionsUpdater perms_updater(env_.profile()); 92 PermissionsUpdater perms_updater(env_.profile());
93 perms_updater.AddPermissions( 93 perms_updater.AddPermissions(
94 app_.get(), 94 app_.get(), PermissionsParser::GetOptionalPermissions(app_.get()));
95 PermissionsParser::GetOptionalPermissions(app_.get()).get());
96 } 95 }
97 96
98 std::vector<base::string16> active_permissions() { 97 std::vector<base::string16> active_permissions() {
99 return GetMessages(app_->permissions_data()->active_permissions()); 98 return GetMessages(*app_->permissions_data()->active_permissions());
100 } 99 }
101 100
102 std::vector<base::string16> required_permissions() { 101 std::vector<base::string16> required_permissions() {
103 return GetMessages(PermissionsParser::GetRequiredPermissions(app_.get())); 102 return GetMessages(*PermissionsParser::GetRequiredPermissions(app_.get()));
104 } 103 }
105 104
106 std::vector<base::string16> optional_permissions() { 105 std::vector<base::string16> optional_permissions() {
107 return GetMessages(PermissionsParser::GetOptionalPermissions(app_.get())); 106 return GetMessages(*PermissionsParser::GetOptionalPermissions(app_.get()));
108 } 107 }
109 108
110 private: 109 private:
111 std::vector<base::string16> GetMessages( 110 std::vector<base::string16> GetMessages(const PermissionSet& permissions) {
112 scoped_refptr<const PermissionSet> permissions) {
113 std::vector<base::string16> messages; 111 std::vector<base::string16> messages;
114 for (const PermissionMessage& msg : 112 for (const PermissionMessage& msg :
115 message_provider_->GetPermissionMessages( 113 message_provider_->GetPermissionMessages(
116 message_provider_->GetAllPermissionIDs(permissions.get(), 114 message_provider_->GetAllPermissionIDs(&permissions,
117 app_->GetType()))) { 115 app_->GetType()))) {
118 messages.push_back(msg.message()); 116 messages.push_back(msg.message());
119 } 117 }
120 return messages; 118 return messages;
121 } 119 }
122 120
123 extensions::TestExtensionEnvironment env_; 121 extensions::TestExtensionEnvironment env_;
124 scoped_ptr<ChromePermissionMessageProvider> message_provider_; 122 scoped_ptr<ChromePermissionMessageProvider> message_provider_;
125 scoped_refptr<const Extension> app_; 123 scoped_refptr<const Extension> app_;
126 124
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 ASSERT_EQ(1U, messages.size()); 347 ASSERT_EQ(1U, messages.size());
350 EXPECT_EQ(base::ASCIIToUTF16(kMessage), messages.front().message()); 348 EXPECT_EQ(base::ASCIIToUTF16(kMessage), messages.front().message());
351 const std::vector<base::string16>& submessages = 349 const std::vector<base::string16>& submessages =
352 messages.front().submessages(); 350 messages.front().submessages();
353 ASSERT_EQ(arraysize(kDetails), submessages.size()); 351 ASSERT_EQ(arraysize(kDetails), submessages.size());
354 for (size_t i = 0; i < submessages.size(); i++) 352 for (size_t i = 0; i < submessages.size(); i++)
355 EXPECT_EQ(base::ASCIIToUTF16(kDetails[i]), submessages[i]); 353 EXPECT_EQ(base::ASCIIToUTF16(kDetails[i]), submessages[i]);
356 } 354 }
357 355
358 } // namespace extensions 356 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698