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

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

Issue 12093036: Move Extension Location and Type enums to Manifest, and move InstallWarning to its own file. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/extensions/admin_policy.h" 5 #include "chrome/browser/extensions/admin_policy.h"
6 6
7 #include "base/values.h" 7 #include "base/values.h"
8 #include "chrome/common/extensions/extension.h" 8 #include "chrome/common/extensions/extension.h"
9 #include "chrome/common/extensions/extension_manifest_constants.h" 9 #include "chrome/common/extensions/extension_manifest_constants.h"
10 #include "chrome/common/extensions/manifest.h"
10 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
11 12
12 using base::Value; 13 using base::Value;
13 using extensions::Extension; 14 using extensions::Extension;
15 using extensions::Manifest;
14 16
15 namespace ap = extensions::admin_policy; 17 namespace ap = extensions::admin_policy;
16 18
17 class ExtensionAdminPolicyTest : public testing::Test { 19 class ExtensionAdminPolicyTest : public testing::Test {
18 public: 20 public:
19 void CreateExtension(Extension::Location location) { 21 void CreateExtension(Manifest::Location location) {
20 base::DictionaryValue values; 22 base::DictionaryValue values;
21 CreateExtensionFromValues(location, &values); 23 CreateExtensionFromValues(location, &values);
22 } 24 }
23 25
24 void CreateHostedApp(Extension::Location location) { 26 void CreateHostedApp(Manifest::Location location) {
25 base::DictionaryValue values; 27 base::DictionaryValue values;
26 values.Set(extension_manifest_keys::kWebURLs, new base::ListValue()); 28 values.Set(extension_manifest_keys::kWebURLs, new base::ListValue());
27 values.SetString(extension_manifest_keys::kLaunchWebURL, 29 values.SetString(extension_manifest_keys::kLaunchWebURL,
28 "http://www.example.com"); 30 "http://www.example.com");
29 CreateExtensionFromValues(location, &values); 31 CreateExtensionFromValues(location, &values);
30 } 32 }
31 33
32 void CreateExtensionFromValues(Extension::Location location, 34 void CreateExtensionFromValues(Manifest::Location location,
33 base::DictionaryValue* values) { 35 base::DictionaryValue* values) {
34 values->SetString(extension_manifest_keys::kName, "test"); 36 values->SetString(extension_manifest_keys::kName, "test");
35 values->SetString(extension_manifest_keys::kVersion, "0.1"); 37 values->SetString(extension_manifest_keys::kVersion, "0.1");
36 std::string error; 38 std::string error;
37 extension_ = Extension::Create(FilePath(), location, *values, 39 extension_ = Extension::Create(FilePath(), location, *values,
38 Extension::NO_FLAGS, &error); 40 Extension::NO_FLAGS, &error);
39 ASSERT_TRUE(extension_.get()); 41 ASSERT_TRUE(extension_.get());
40 } 42 }
41 43
42 protected: 44 protected:
(...skipping 10 matching lines...) Expand all
53 blacklist.Append(Value::CreateStringValue("*")); 55 blacklist.Append(Value::CreateStringValue("*"));
54 EXPECT_TRUE(ap::BlacklistedByDefault(&blacklist)); 56 EXPECT_TRUE(ap::BlacklistedByDefault(&blacklist));
55 57
56 blacklist.Clear(); 58 blacklist.Clear();
57 blacklist.Append(Value::CreateStringValue("*")); 59 blacklist.Append(Value::CreateStringValue("*"));
58 EXPECT_TRUE(ap::BlacklistedByDefault(&blacklist)); 60 EXPECT_TRUE(ap::BlacklistedByDefault(&blacklist));
59 } 61 }
60 62
61 // Tests UserMayLoad for required extensions. 63 // Tests UserMayLoad for required extensions.
62 TEST_F(ExtensionAdminPolicyTest, UserMayLoadRequired) { 64 TEST_F(ExtensionAdminPolicyTest, UserMayLoadRequired) {
63 CreateExtension(Extension::COMPONENT); 65 CreateExtension(Manifest::COMPONENT);
64 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); 66 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL));
65 string16 error; 67 string16 error;
66 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), 68 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(),
67 &error)); 69 &error));
68 EXPECT_TRUE(error.empty()); 70 EXPECT_TRUE(error.empty());
69 71
70 // Required extensions may load even if they're on the blacklist. 72 // Required extensions may load even if they're on the blacklist.
71 base::ListValue blacklist; 73 base::ListValue blacklist;
72 blacklist.Append(Value::CreateStringValue(extension_->id())); 74 blacklist.Append(Value::CreateStringValue(extension_->id()));
73 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), 75 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(),
74 NULL)); 76 NULL));
75 77
76 blacklist.Append(Value::CreateStringValue("*")); 78 blacklist.Append(Value::CreateStringValue("*"));
77 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), 79 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(),
78 NULL)); 80 NULL));
79 } 81 }
80 82
81 // Tests UserMayLoad when no blacklist exists, or it's empty. 83 // Tests UserMayLoad when no blacklist exists, or it's empty.
82 TEST_F(ExtensionAdminPolicyTest, UserMayLoadNoBlacklist) { 84 TEST_F(ExtensionAdminPolicyTest, UserMayLoadNoBlacklist) {
83 CreateExtension(Extension::INTERNAL); 85 CreateExtension(Manifest::INTERNAL);
84 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); 86 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL));
85 base::ListValue blacklist; 87 base::ListValue blacklist;
86 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), 88 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(),
87 NULL)); 89 NULL));
88 string16 error; 90 string16 error;
89 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), 91 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(),
90 &error)); 92 &error));
91 EXPECT_TRUE(error.empty()); 93 EXPECT_TRUE(error.empty());
92 } 94 }
93 95
94 // Tests UserMayLoad for an extension on the whitelist. 96 // Tests UserMayLoad for an extension on the whitelist.
95 TEST_F(ExtensionAdminPolicyTest, UserMayLoadWhitelisted) { 97 TEST_F(ExtensionAdminPolicyTest, UserMayLoadWhitelisted) {
96 CreateExtension(Extension::INTERNAL); 98 CreateExtension(Manifest::INTERNAL);
97 99
98 base::ListValue whitelist; 100 base::ListValue whitelist;
99 whitelist.Append(Value::CreateStringValue(extension_->id())); 101 whitelist.Append(Value::CreateStringValue(extension_->id()));
100 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), 102 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(),
101 NULL)); 103 NULL));
102 104
103 base::ListValue blacklist; 105 base::ListValue blacklist;
104 blacklist.Append(Value::CreateStringValue(extension_->id())); 106 blacklist.Append(Value::CreateStringValue(extension_->id()));
105 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), 107 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(),
106 NULL)); 108 NULL));
107 string16 error; 109 string16 error;
108 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), 110 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(),
109 &error)); 111 &error));
110 EXPECT_TRUE(error.empty()); 112 EXPECT_TRUE(error.empty());
111 } 113 }
112 114
113 // Tests UserMayLoad for an extension on the blacklist. 115 // Tests UserMayLoad for an extension on the blacklist.
114 TEST_F(ExtensionAdminPolicyTest, UserMayLoadBlacklisted) { 116 TEST_F(ExtensionAdminPolicyTest, UserMayLoadBlacklisted) {
115 CreateExtension(Extension::INTERNAL); 117 CreateExtension(Manifest::INTERNAL);
116 118
117 // Blacklisted by default. 119 // Blacklisted by default.
118 base::ListValue blacklist; 120 base::ListValue blacklist;
119 blacklist.Append(Value::CreateStringValue("*")); 121 blacklist.Append(Value::CreateStringValue("*"));
120 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), 122 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(),
121 NULL)); 123 NULL));
122 string16 error; 124 string16 error;
123 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), 125 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(),
124 &error)); 126 &error));
125 EXPECT_FALSE(error.empty()); 127 EXPECT_FALSE(error.empty());
(...skipping 12 matching lines...) Expand all
138 whitelist.Append( 140 whitelist.Append(
139 Value::CreateStringValue("behllobkkfkfnphdnhnkndlbkcpglgmj")); 141 Value::CreateStringValue("behllobkkfkfnphdnhnkndlbkcpglgmj"));
140 EXPECT_FALSE(ap::UserMayLoad(&blacklist, &whitelist, NULL, NULL, 142 EXPECT_FALSE(ap::UserMayLoad(&blacklist, &whitelist, NULL, NULL,
141 extension_.get(), NULL)); 143 extension_.get(), NULL));
142 whitelist.Append(Value::CreateStringValue("*")); 144 whitelist.Append(Value::CreateStringValue("*"));
143 EXPECT_FALSE(ap::UserMayLoad(&blacklist, &whitelist, NULL, NULL, 145 EXPECT_FALSE(ap::UserMayLoad(&blacklist, &whitelist, NULL, NULL,
144 extension_.get(), NULL)); 146 extension_.get(), NULL));
145 } 147 }
146 148
147 TEST_F(ExtensionAdminPolicyTest, UserMayLoadAllowedTypes) { 149 TEST_F(ExtensionAdminPolicyTest, UserMayLoadAllowedTypes) {
148 CreateExtension(Extension::INTERNAL); 150 CreateExtension(Manifest::INTERNAL);
149 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); 151 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL));
150 152
151 base::ListValue allowed_types; 153 base::ListValue allowed_types;
152 EXPECT_FALSE(ap::UserMayLoad(NULL, NULL, NULL, &allowed_types, 154 EXPECT_FALSE(ap::UserMayLoad(NULL, NULL, NULL, &allowed_types,
153 extension_.get(), NULL)); 155 extension_.get(), NULL));
154 156
155 allowed_types.AppendInteger(Extension::TYPE_EXTENSION); 157 allowed_types.AppendInteger(Manifest::TYPE_EXTENSION);
156 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, &allowed_types, 158 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, &allowed_types,
157 extension_.get(), NULL)); 159 extension_.get(), NULL));
158 160
159 CreateHostedApp(Extension::INTERNAL); 161 CreateHostedApp(Manifest::INTERNAL);
160 EXPECT_FALSE(ap::UserMayLoad(NULL, NULL, NULL, &allowed_types, 162 EXPECT_FALSE(ap::UserMayLoad(NULL, NULL, NULL, &allowed_types,
161 extension_.get(), NULL)); 163 extension_.get(), NULL));
162 164
163 CreateHostedApp(Extension::EXTERNAL_POLICY_DOWNLOAD); 165 CreateHostedApp(Manifest::EXTERNAL_POLICY_DOWNLOAD);
164 EXPECT_FALSE(ap::UserMayLoad(NULL, NULL, NULL, &allowed_types, 166 EXPECT_FALSE(ap::UserMayLoad(NULL, NULL, NULL, &allowed_types,
165 extension_.get(), NULL)); 167 extension_.get(), NULL));
166 } 168 }
167 169
168 TEST_F(ExtensionAdminPolicyTest, UserMayModifySettings) { 170 TEST_F(ExtensionAdminPolicyTest, UserMayModifySettings) {
169 CreateExtension(Extension::INTERNAL); 171 CreateExtension(Manifest::INTERNAL);
170 EXPECT_TRUE(ap::UserMayModifySettings(extension_.get(), NULL)); 172 EXPECT_TRUE(ap::UserMayModifySettings(extension_.get(), NULL));
171 string16 error; 173 string16 error;
172 EXPECT_TRUE(ap::UserMayModifySettings(extension_.get(), &error)); 174 EXPECT_TRUE(ap::UserMayModifySettings(extension_.get(), &error));
173 EXPECT_TRUE(error.empty()); 175 EXPECT_TRUE(error.empty());
174 176
175 CreateExtension(Extension::EXTERNAL_POLICY_DOWNLOAD); 177 CreateExtension(Manifest::EXTERNAL_POLICY_DOWNLOAD);
176 error.clear(); 178 error.clear();
177 EXPECT_FALSE(ap::UserMayModifySettings(extension_.get(), NULL)); 179 EXPECT_FALSE(ap::UserMayModifySettings(extension_.get(), NULL));
178 EXPECT_FALSE(ap::UserMayModifySettings(extension_.get(), &error)); 180 EXPECT_FALSE(ap::UserMayModifySettings(extension_.get(), &error));
179 EXPECT_FALSE(error.empty()); 181 EXPECT_FALSE(error.empty());
180 } 182 }
181 183
182 TEST_F(ExtensionAdminPolicyTest, MustRemainEnabled) { 184 TEST_F(ExtensionAdminPolicyTest, MustRemainEnabled) {
183 CreateExtension(Extension::EXTERNAL_POLICY_DOWNLOAD); 185 CreateExtension(Manifest::EXTERNAL_POLICY_DOWNLOAD);
184 EXPECT_TRUE(ap::MustRemainEnabled(extension_.get(), NULL)); 186 EXPECT_TRUE(ap::MustRemainEnabled(extension_.get(), NULL));
185 string16 error; 187 string16 error;
186 EXPECT_TRUE(ap::MustRemainEnabled(extension_.get(), &error)); 188 EXPECT_TRUE(ap::MustRemainEnabled(extension_.get(), &error));
187 EXPECT_FALSE(error.empty()); 189 EXPECT_FALSE(error.empty());
188 190
189 CreateExtension(Extension::INTERNAL); 191 CreateExtension(Manifest::INTERNAL);
190 error.clear(); 192 error.clear();
191 EXPECT_FALSE(ap::MustRemainEnabled(extension_.get(), NULL)); 193 EXPECT_FALSE(ap::MustRemainEnabled(extension_.get(), NULL));
192 EXPECT_FALSE(ap::MustRemainEnabled(extension_.get(), &error)); 194 EXPECT_FALSE(ap::MustRemainEnabled(extension_.get(), &error));
193 EXPECT_TRUE(error.empty()); 195 EXPECT_TRUE(error.empty());
194 } 196 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/admin_policy.cc ('k') | chrome/browser/extensions/api/alarms/alarms_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698