| OLD | NEW |
| 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 "chrome/common/extensions/manifest.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 | 43 |
| 44 protected: | 44 protected: |
| 45 scoped_refptr<Extension> extension_; | 45 scoped_refptr<Extension> extension_; |
| 46 }; | 46 }; |
| 47 | 47 |
| 48 // Tests the flag value indicating that extensions are blacklisted by default. | 48 // Tests the flag value indicating that extensions are blacklisted by default. |
| 49 TEST_F(ExtensionAdminPolicyTest, BlacklistedByDefault) { | 49 TEST_F(ExtensionAdminPolicyTest, BlacklistedByDefault) { |
| 50 EXPECT_FALSE(ap::BlacklistedByDefault(NULL)); | 50 EXPECT_FALSE(ap::BlacklistedByDefault(NULL)); |
| 51 | 51 |
| 52 base::ListValue blacklist; | 52 base::ListValue blacklist; |
| 53 blacklist.Append(Value::CreateStringValue("http://www.google.com")); | 53 blacklist.Append(new base::StringValue("http://www.google.com")); |
| 54 EXPECT_FALSE(ap::BlacklistedByDefault(&blacklist)); | 54 EXPECT_FALSE(ap::BlacklistedByDefault(&blacklist)); |
| 55 blacklist.Append(Value::CreateStringValue("*")); | 55 blacklist.Append(new base::StringValue("*")); |
| 56 EXPECT_TRUE(ap::BlacklistedByDefault(&blacklist)); | 56 EXPECT_TRUE(ap::BlacklistedByDefault(&blacklist)); |
| 57 | 57 |
| 58 blacklist.Clear(); | 58 blacklist.Clear(); |
| 59 blacklist.Append(Value::CreateStringValue("*")); | 59 blacklist.Append(new base::StringValue("*")); |
| 60 EXPECT_TRUE(ap::BlacklistedByDefault(&blacklist)); | 60 EXPECT_TRUE(ap::BlacklistedByDefault(&blacklist)); |
| 61 } | 61 } |
| 62 | 62 |
| 63 // Tests UserMayLoad for required extensions. | 63 // Tests UserMayLoad for required extensions. |
| 64 TEST_F(ExtensionAdminPolicyTest, UserMayLoadRequired) { | 64 TEST_F(ExtensionAdminPolicyTest, UserMayLoadRequired) { |
| 65 CreateExtension(Manifest::COMPONENT); | 65 CreateExtension(Manifest::COMPONENT); |
| 66 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); | 66 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); |
| 67 string16 error; | 67 string16 error; |
| 68 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), | 68 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), |
| 69 &error)); | 69 &error)); |
| 70 EXPECT_TRUE(error.empty()); | 70 EXPECT_TRUE(error.empty()); |
| 71 | 71 |
| 72 // Required extensions may load even if they're on the blacklist. | 72 // Required extensions may load even if they're on the blacklist. |
| 73 base::ListValue blacklist; | 73 base::ListValue blacklist; |
| 74 blacklist.Append(Value::CreateStringValue(extension_->id())); | 74 blacklist.Append(new base::StringValue(extension_->id())); |
| 75 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), | 75 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), |
| 76 NULL)); | 76 NULL)); |
| 77 | 77 |
| 78 blacklist.Append(Value::CreateStringValue("*")); | 78 blacklist.Append(new base::StringValue("*")); |
| 79 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), | 79 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), |
| 80 NULL)); | 80 NULL)); |
| 81 } | 81 } |
| 82 | 82 |
| 83 // Tests UserMayLoad when no blacklist exists, or it's empty. | 83 // Tests UserMayLoad when no blacklist exists, or it's empty. |
| 84 TEST_F(ExtensionAdminPolicyTest, UserMayLoadNoBlacklist) { | 84 TEST_F(ExtensionAdminPolicyTest, UserMayLoadNoBlacklist) { |
| 85 CreateExtension(Manifest::INTERNAL); | 85 CreateExtension(Manifest::INTERNAL); |
| 86 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); | 86 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); |
| 87 base::ListValue blacklist; | 87 base::ListValue blacklist; |
| 88 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), | 88 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), |
| 89 NULL)); | 89 NULL)); |
| 90 string16 error; | 90 string16 error; |
| 91 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), | 91 EXPECT_TRUE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), |
| 92 &error)); | 92 &error)); |
| 93 EXPECT_TRUE(error.empty()); | 93 EXPECT_TRUE(error.empty()); |
| 94 } | 94 } |
| 95 | 95 |
| 96 // Tests UserMayLoad for an extension on the whitelist. | 96 // Tests UserMayLoad for an extension on the whitelist. |
| 97 TEST_F(ExtensionAdminPolicyTest, UserMayLoadWhitelisted) { | 97 TEST_F(ExtensionAdminPolicyTest, UserMayLoadWhitelisted) { |
| 98 CreateExtension(Manifest::INTERNAL); | 98 CreateExtension(Manifest::INTERNAL); |
| 99 | 99 |
| 100 base::ListValue whitelist; | 100 base::ListValue whitelist; |
| 101 whitelist.Append(Value::CreateStringValue(extension_->id())); | 101 whitelist.Append(new base::StringValue(extension_->id())); |
| 102 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), | 102 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), |
| 103 NULL)); | 103 NULL)); |
| 104 | 104 |
| 105 base::ListValue blacklist; | 105 base::ListValue blacklist; |
| 106 blacklist.Append(Value::CreateStringValue(extension_->id())); | 106 blacklist.Append(new base::StringValue(extension_->id())); |
| 107 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), | 107 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), |
| 108 NULL)); | 108 NULL)); |
| 109 string16 error; | 109 string16 error; |
| 110 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), | 110 EXPECT_TRUE(ap::UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), |
| 111 &error)); | 111 &error)); |
| 112 EXPECT_TRUE(error.empty()); | 112 EXPECT_TRUE(error.empty()); |
| 113 } | 113 } |
| 114 | 114 |
| 115 // Tests UserMayLoad for an extension on the blacklist. | 115 // Tests UserMayLoad for an extension on the blacklist. |
| 116 TEST_F(ExtensionAdminPolicyTest, UserMayLoadBlacklisted) { | 116 TEST_F(ExtensionAdminPolicyTest, UserMayLoadBlacklisted) { |
| 117 CreateExtension(Manifest::INTERNAL); | 117 CreateExtension(Manifest::INTERNAL); |
| 118 | 118 |
| 119 // Blacklisted by default. | 119 // Blacklisted by default. |
| 120 base::ListValue blacklist; | 120 base::ListValue blacklist; |
| 121 blacklist.Append(Value::CreateStringValue("*")); | 121 blacklist.Append(new base::StringValue("*")); |
| 122 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), | 122 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), |
| 123 NULL)); | 123 NULL)); |
| 124 string16 error; | 124 string16 error; |
| 125 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), | 125 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), |
| 126 &error)); | 126 &error)); |
| 127 EXPECT_FALSE(error.empty()); | 127 EXPECT_FALSE(error.empty()); |
| 128 | 128 |
| 129 // Extension on the blacklist, with and without wildcard. | 129 // Extension on the blacklist, with and without wildcard. |
| 130 blacklist.Append(Value::CreateStringValue(extension_->id())); | 130 blacklist.Append(new base::StringValue(extension_->id())); |
| 131 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), | 131 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), |
| 132 NULL)); | 132 NULL)); |
| 133 blacklist.Clear(); | 133 blacklist.Clear(); |
| 134 blacklist.Append(Value::CreateStringValue(extension_->id())); | 134 blacklist.Append(new base::StringValue(extension_->id())); |
| 135 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), | 135 EXPECT_FALSE(ap::UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), |
| 136 NULL)); | 136 NULL)); |
| 137 | 137 |
| 138 // With a whitelist. There's no such thing as a whitelist wildcard. | 138 // With a whitelist. There's no such thing as a whitelist wildcard. |
| 139 base::ListValue whitelist; | 139 base::ListValue whitelist; |
| 140 whitelist.Append( | 140 whitelist.Append( |
| 141 Value::CreateStringValue("behllobkkfkfnphdnhnkndlbkcpglgmj")); | 141 new base::StringValue("behllobkkfkfnphdnhnkndlbkcpglgmj")); |
| 142 EXPECT_FALSE(ap::UserMayLoad(&blacklist, &whitelist, NULL, NULL, | 142 EXPECT_FALSE(ap::UserMayLoad(&blacklist, &whitelist, NULL, NULL, |
| 143 extension_.get(), NULL)); | 143 extension_.get(), NULL)); |
| 144 whitelist.Append(Value::CreateStringValue("*")); | 144 whitelist.Append(new base::StringValue("*")); |
| 145 EXPECT_FALSE(ap::UserMayLoad(&blacklist, &whitelist, NULL, NULL, | 145 EXPECT_FALSE(ap::UserMayLoad(&blacklist, &whitelist, NULL, NULL, |
| 146 extension_.get(), NULL)); | 146 extension_.get(), NULL)); |
| 147 } | 147 } |
| 148 | 148 |
| 149 TEST_F(ExtensionAdminPolicyTest, UserMayLoadAllowedTypes) { | 149 TEST_F(ExtensionAdminPolicyTest, UserMayLoadAllowedTypes) { |
| 150 CreateExtension(Manifest::INTERNAL); | 150 CreateExtension(Manifest::INTERNAL); |
| 151 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); | 151 EXPECT_TRUE(ap::UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); |
| 152 | 152 |
| 153 base::ListValue allowed_types; | 153 base::ListValue allowed_types; |
| 154 EXPECT_FALSE(ap::UserMayLoad(NULL, NULL, NULL, &allowed_types, | 154 EXPECT_FALSE(ap::UserMayLoad(NULL, NULL, NULL, &allowed_types, |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 string16 error; | 187 string16 error; |
| 188 EXPECT_TRUE(ap::MustRemainEnabled(extension_.get(), &error)); | 188 EXPECT_TRUE(ap::MustRemainEnabled(extension_.get(), &error)); |
| 189 EXPECT_FALSE(error.empty()); | 189 EXPECT_FALSE(error.empty()); |
| 190 | 190 |
| 191 CreateExtension(Manifest::INTERNAL); | 191 CreateExtension(Manifest::INTERNAL); |
| 192 error.clear(); | 192 error.clear(); |
| 193 EXPECT_FALSE(ap::MustRemainEnabled(extension_.get(), NULL)); | 193 EXPECT_FALSE(ap::MustRemainEnabled(extension_.get(), NULL)); |
| 194 EXPECT_FALSE(ap::MustRemainEnabled(extension_.get(), &error)); | 194 EXPECT_FALSE(ap::MustRemainEnabled(extension_.get(), &error)); |
| 195 EXPECT_TRUE(error.empty()); | 195 EXPECT_TRUE(error.empty()); |
| 196 } | 196 } |
| OLD | NEW |