OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/strings/utf_string_conversions.h" | 5 #include "base/strings/utf_string_conversions.h" |
| 6 #include "extensions/browser/install_flag.h" |
6 #include "extensions/browser/management_policy.h" | 7 #include "extensions/browser/management_policy.h" |
7 #include "extensions/browser/test_management_policy.h" | 8 #include "extensions/browser/test_management_policy.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
9 | 10 |
10 typedef extensions::TestManagementPolicyProvider TestProvider; | 11 typedef extensions::TestManagementPolicyProvider TestProvider; |
11 using extensions::Extension; | 12 using extensions::Extension; |
12 | 13 |
| 14 const int kInstallFlags = extensions::kInstallFlagNone; |
| 15 |
13 class ManagementPolicyTest : public testing::Test { | 16 class ManagementPolicyTest : public testing::Test { |
14 public: | 17 public: |
15 virtual void SetUp() { | 18 virtual void SetUp() { |
16 allow_all_.SetProhibitedActions(TestProvider::ALLOW_ALL); | 19 allow_all_.SetProhibitedActions(TestProvider::ALLOW_ALL); |
17 no_modify_status_.SetProhibitedActions( | 20 no_modify_status_.SetProhibitedActions( |
18 TestProvider::PROHIBIT_MODIFY_STATUS); | 21 TestProvider::PROHIBIT_MODIFY_STATUS); |
19 no_load_.SetProhibitedActions(TestProvider::PROHIBIT_LOAD); | 22 no_load_.SetProhibitedActions(TestProvider::PROHIBIT_LOAD); |
20 must_remain_enabled_.SetProhibitedActions( | 23 must_remain_enabled_.SetProhibitedActions( |
21 TestProvider::MUST_REMAIN_ENABLED); | 24 TestProvider::MUST_REMAIN_ENABLED); |
22 must_remain_disabled_.SetProhibitedActions( | 25 must_remain_disabled_.SetProhibitedActions( |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 EXPECT_EQ(2, policy_.GetNumProviders()); | 62 EXPECT_EQ(2, policy_.GetNumProviders()); |
60 policy_.UnregisterAllProviders(); | 63 policy_.UnregisterAllProviders(); |
61 EXPECT_EQ(0, policy_.GetNumProviders()); | 64 EXPECT_EQ(0, policy_.GetNumProviders()); |
62 } | 65 } |
63 | 66 |
64 TEST_F(ManagementPolicyTest, UserMayLoad) { | 67 TEST_F(ManagementPolicyTest, UserMayLoad) { |
65 // No providers registered. | 68 // No providers registered. |
66 base::string16 error; | 69 base::string16 error; |
67 // The extension and location are irrelevant to the | 70 // The extension and location are irrelevant to the |
68 // TestManagementPolicyProviders. | 71 // TestManagementPolicyProviders. |
69 EXPECT_TRUE(policy_.UserMayLoad(NULL, &error)); | 72 EXPECT_TRUE(policy_.UserMayLoad(NULL, kInstallFlags, &error)); |
70 EXPECT_TRUE(error.empty()); | 73 EXPECT_TRUE(error.empty()); |
71 | 74 |
72 // One provider, no relevant restriction. | 75 // One provider, no relevant restriction. |
73 policy_.RegisterProvider(&no_modify_status_); | 76 policy_.RegisterProvider(&no_modify_status_); |
74 EXPECT_TRUE(policy_.UserMayLoad(NULL, &error)); | 77 EXPECT_TRUE(policy_.UserMayLoad(NULL, kInstallFlags, &error)); |
75 EXPECT_TRUE(error.empty()); | 78 EXPECT_TRUE(error.empty()); |
76 | 79 |
77 // Two providers, no relevant restrictions. | 80 // Two providers, no relevant restrictions. |
78 policy_.RegisterProvider(&must_remain_enabled_); | 81 policy_.RegisterProvider(&must_remain_enabled_); |
79 EXPECT_TRUE(policy_.UserMayLoad(NULL, &error)); | 82 EXPECT_TRUE(policy_.UserMayLoad(NULL, kInstallFlags, &error)); |
80 EXPECT_TRUE(error.empty()); | 83 EXPECT_TRUE(error.empty()); |
81 | 84 |
82 // Three providers, one with a relevant restriction. | 85 // Three providers, one with a relevant restriction. |
83 policy_.RegisterProvider(&no_load_); | 86 policy_.RegisterProvider(&no_load_); |
84 EXPECT_FALSE(policy_.UserMayLoad(NULL, &error)); | 87 EXPECT_FALSE(policy_.UserMayLoad(NULL, kInstallFlags, &error)); |
85 EXPECT_FALSE(error.empty()); | 88 EXPECT_FALSE(error.empty()); |
86 | 89 |
87 // Remove the restriction. | 90 // Remove the restriction. |
88 policy_.UnregisterProvider(&no_load_); | 91 policy_.UnregisterProvider(&no_load_); |
89 error.clear(); | 92 error.clear(); |
90 EXPECT_TRUE(policy_.UserMayLoad(NULL, &error)); | 93 EXPECT_TRUE(policy_.UserMayLoad(NULL, kInstallFlags, &error)); |
91 EXPECT_TRUE(error.empty()); | 94 EXPECT_TRUE(error.empty()); |
92 } | 95 } |
93 TEST_F(ManagementPolicyTest, UserMayModifySettings) { | 96 TEST_F(ManagementPolicyTest, UserMayModifySettings) { |
94 // No providers registered. | 97 // No providers registered. |
95 base::string16 error; | 98 base::string16 error; |
96 EXPECT_TRUE(policy_.UserMayModifySettings(NULL, &error)); | 99 EXPECT_TRUE(policy_.UserMayModifySettings(NULL, &error)); |
97 EXPECT_TRUE(error.empty()); | 100 EXPECT_TRUE(error.empty()); |
98 | 101 |
99 // One provider, no relevant restriction. | 102 // One provider, no relevant restriction. |
100 policy_.RegisterProvider(&allow_all_); | 103 policy_.RegisterProvider(&allow_all_); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 EXPECT_FALSE(policy_.MustRemainDisabled(NULL, NULL, &error)); | 178 EXPECT_FALSE(policy_.MustRemainDisabled(NULL, NULL, &error)); |
176 EXPECT_TRUE(error.empty()); | 179 EXPECT_TRUE(error.empty()); |
177 } | 180 } |
178 | 181 |
179 // Tests error handling in the ManagementPolicy. | 182 // Tests error handling in the ManagementPolicy. |
180 TEST_F(ManagementPolicyTest, ErrorHandling) { | 183 TEST_F(ManagementPolicyTest, ErrorHandling) { |
181 // The error parameter should be unchanged if no restriction was found. | 184 // The error parameter should be unchanged if no restriction was found. |
182 std::string original_error = "Ceci est en effet une erreur."; | 185 std::string original_error = "Ceci est en effet une erreur."; |
183 base::string16 original_error16 = base::UTF8ToUTF16(original_error); | 186 base::string16 original_error16 = base::UTF8ToUTF16(original_error); |
184 base::string16 error = original_error16; | 187 base::string16 error = original_error16; |
185 EXPECT_TRUE(policy_.UserMayLoad(NULL, &error)); | 188 EXPECT_TRUE(policy_.UserMayLoad(NULL, kInstallFlags, &error)); |
186 EXPECT_EQ(original_error, base::UTF16ToUTF8(error)); | 189 EXPECT_EQ(original_error, base::UTF16ToUTF8(error)); |
187 EXPECT_TRUE(policy_.UserMayModifySettings(NULL, &error)); | 190 EXPECT_TRUE(policy_.UserMayModifySettings(NULL, &error)); |
188 EXPECT_EQ(original_error, base::UTF16ToUTF8(error)); | 191 EXPECT_EQ(original_error, base::UTF16ToUTF8(error)); |
189 EXPECT_FALSE(policy_.MustRemainEnabled(NULL, &error)); | 192 EXPECT_FALSE(policy_.MustRemainEnabled(NULL, &error)); |
190 EXPECT_EQ(original_error, base::UTF16ToUTF8(error)); | 193 EXPECT_EQ(original_error, base::UTF16ToUTF8(error)); |
191 | 194 |
192 // Ensure no crashes if no error message was requested. | 195 // Ensure no crashes if no error message was requested. |
193 EXPECT_TRUE(policy_.UserMayLoad(NULL, NULL)); | 196 EXPECT_TRUE(policy_.UserMayLoad(NULL, kInstallFlags, NULL)); |
194 EXPECT_TRUE(policy_.UserMayModifySettings(NULL, NULL)); | 197 EXPECT_TRUE(policy_.UserMayModifySettings(NULL, NULL)); |
195 EXPECT_FALSE(policy_.MustRemainEnabled(NULL, NULL)); | 198 EXPECT_FALSE(policy_.MustRemainEnabled(NULL, NULL)); |
196 policy_.RegisterProvider(&restrict_all_); | 199 policy_.RegisterProvider(&restrict_all_); |
197 EXPECT_FALSE(policy_.UserMayLoad(NULL, NULL)); | 200 EXPECT_FALSE(policy_.UserMayLoad(NULL, kInstallFlags, NULL)); |
198 EXPECT_FALSE(policy_.UserMayModifySettings(NULL, NULL)); | 201 EXPECT_FALSE(policy_.UserMayModifySettings(NULL, NULL)); |
199 EXPECT_TRUE(policy_.MustRemainEnabled(NULL, NULL)); | 202 EXPECT_TRUE(policy_.MustRemainEnabled(NULL, NULL)); |
200 | 203 |
201 // Make sure returned error is correct. | 204 // Make sure returned error is correct. |
202 error = original_error16; | 205 error = original_error16; |
203 EXPECT_FALSE(policy_.UserMayLoad(NULL, &error)); | 206 EXPECT_FALSE(policy_.UserMayLoad(NULL, kInstallFlags, &error)); |
204 EXPECT_EQ(base::UTF8ToUTF16(TestProvider::expected_error()), error); | 207 EXPECT_EQ(base::UTF8ToUTF16(TestProvider::expected_error()), error); |
205 error = original_error16; | 208 error = original_error16; |
206 EXPECT_FALSE(policy_.UserMayModifySettings(NULL, &error)); | 209 EXPECT_FALSE(policy_.UserMayModifySettings(NULL, &error)); |
207 EXPECT_EQ(base::UTF8ToUTF16(TestProvider::expected_error()), error); | 210 EXPECT_EQ(base::UTF8ToUTF16(TestProvider::expected_error()), error); |
208 error = original_error16; | 211 error = original_error16; |
209 EXPECT_TRUE(policy_.MustRemainEnabled(NULL, &error)); | 212 EXPECT_TRUE(policy_.MustRemainEnabled(NULL, &error)); |
210 EXPECT_EQ(base::UTF8ToUTF16(TestProvider::expected_error()), error); | 213 EXPECT_EQ(base::UTF8ToUTF16(TestProvider::expected_error()), error); |
211 } | 214 } |
OLD | NEW |