| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 <algorithm> | 5 #include <algorithm> |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/scoped_temp_dir.h" | 9 #include "base/scoped_temp_dir.h" |
| 10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 virtual void SetUp() { | 25 virtual void SetUp() { |
| 26 ASSERT_TRUE(test_dir_.CreateUniqueTempDir()); | 26 ASSERT_TRUE(test_dir_.CreateUniqueTempDir()); |
| 27 } | 27 } |
| 28 | 28 |
| 29 // JSON-encode a dictionary and write it to a file. | 29 // JSON-encode a dictionary and write it to a file. |
| 30 void WriteConfigFile(const DictionaryValue& dict, | 30 void WriteConfigFile(const DictionaryValue& dict, |
| 31 const std::string& file_name) { | 31 const std::string& file_name) { |
| 32 std::string data; | 32 std::string data; |
| 33 JSONStringValueSerializer serializer(&data); | 33 JSONStringValueSerializer serializer(&data); |
| 34 serializer.Serialize(dict); | 34 serializer.Serialize(dict); |
| 35 FilePath file_path(test_dir().AppendASCII(file_name)); | 35 const FilePath file_path(test_dir().AppendASCII(file_name)); |
| 36 ASSERT_TRUE(file_util::WriteFile(file_path, data.c_str(), data.size())); | 36 ASSERT_TRUE(file_util::WriteFile(file_path, data.c_str(), data.size())); |
| 37 } | 37 } |
| 38 | 38 |
| 39 const FilePath& test_dir() { return test_dir_.path(); } | 39 const FilePath& test_dir() { return test_dir_.path(); } |
| 40 | 40 |
| 41 private: | 41 private: |
| 42 ScopedTempDir test_dir_; | 42 ScopedTempDir test_dir_; |
| 43 }; | 43 }; |
| 44 | 44 |
| 45 class ConfigDirPolicyLoaderTest | 45 class ConfigDirPolicyLoaderTest |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 scoped_ptr<DictionaryValue> policy(loader.Load()); | 97 scoped_ptr<DictionaryValue> policy(loader.Load()); |
| 98 EXPECT_TRUE(policy.get()); | 98 EXPECT_TRUE(policy.get()); |
| 99 EXPECT_TRUE(policy->Equals(&test_dict_foo)); | 99 EXPECT_TRUE(policy->Equals(&test_dict_foo)); |
| 100 } | 100 } |
| 101 | 101 |
| 102 // Holds policy type, corresponding policy key string and a valid value for use | 102 // Holds policy type, corresponding policy key string and a valid value for use |
| 103 // in parametrized value tests. | 103 // in parametrized value tests. |
| 104 class ValueTestParams { | 104 class ValueTestParams { |
| 105 public: | 105 public: |
| 106 // Assumes ownership of |test_value|. | 106 // Assumes ownership of |test_value|. |
| 107 ValueTestParams(ConfigurationPolicyStore::PolicyType type, | 107 ValueTestParams(ConfigurationPolicyType type, |
| 108 const char* policy_key, | 108 const char* policy_key, |
| 109 Value* test_value) | 109 Value* test_value) |
| 110 : type_(type), | 110 : type_(type), |
| 111 policy_key_(policy_key), | 111 policy_key_(policy_key), |
| 112 test_value_(test_value) {} | 112 test_value_(test_value) {} |
| 113 | 113 |
| 114 // testing::TestWithParam does copying, so provide copy constructor and | 114 // testing::TestWithParam does copying, so provide copy constructor and |
| 115 // assignment operator. | 115 // assignment operator. |
| 116 ValueTestParams(const ValueTestParams& other) | 116 ValueTestParams(const ValueTestParams& other) |
| 117 : type_(other.type_), | 117 : type_(other.type_), |
| 118 policy_key_(other.policy_key_), | 118 policy_key_(other.policy_key_), |
| 119 test_value_(other.test_value_->DeepCopy()) {} | 119 test_value_(other.test_value_->DeepCopy()) {} |
| 120 | 120 |
| 121 const ValueTestParams& operator=(ValueTestParams other) { | 121 const ValueTestParams& operator=(ValueTestParams other) { |
| 122 swap(other); | 122 swap(other); |
| 123 return *this; | 123 return *this; |
| 124 } | 124 } |
| 125 | 125 |
| 126 void swap(ValueTestParams& other) { | 126 void swap(ValueTestParams& other) { |
| 127 std::swap(type_, other.type_); | 127 std::swap(type_, other.type_); |
| 128 std::swap(policy_key_, other.policy_key_); | 128 std::swap(policy_key_, other.policy_key_); |
| 129 test_value_.swap(other.test_value_); | 129 test_value_.swap(other.test_value_); |
| 130 } | 130 } |
| 131 | 131 |
| 132 ConfigurationPolicyStore::PolicyType type() const { return type_; } | 132 ConfigurationPolicyType type() const { return type_; } |
| 133 const char* policy_key() const { return policy_key_; } | 133 const char* policy_key() const { return policy_key_; } |
| 134 const Value* test_value() const { return test_value_.get(); } | 134 const Value* test_value() const { return test_value_.get(); } |
| 135 | 135 |
| 136 // Factory methods that create parameter objects for different value types. | 136 // Factory methods that create parameter objects for different value types. |
| 137 static ValueTestParams ForStringPolicy( | 137 static ValueTestParams ForStringPolicy( |
| 138 ConfigurationPolicyStore::PolicyType type, | 138 ConfigurationPolicyType type, |
| 139 const char* policy_key) { | 139 const char* policy_key) { |
| 140 return ValueTestParams(type, policy_key, Value::CreateStringValue("test")); | 140 return ValueTestParams(type, policy_key, Value::CreateStringValue("test")); |
| 141 } | 141 } |
| 142 static ValueTestParams ForBooleanPolicy( | 142 static ValueTestParams ForBooleanPolicy( |
| 143 ConfigurationPolicyStore::PolicyType type, | 143 ConfigurationPolicyType type, |
| 144 const char* policy_key) { | 144 const char* policy_key) { |
| 145 return ValueTestParams(type, policy_key, Value::CreateBooleanValue(true)); | 145 return ValueTestParams(type, policy_key, Value::CreateBooleanValue(true)); |
| 146 } | 146 } |
| 147 static ValueTestParams ForIntegerPolicy( | 147 static ValueTestParams ForIntegerPolicy( |
| 148 ConfigurationPolicyStore::PolicyType type, | 148 ConfigurationPolicyType type, |
| 149 const char* policy_key) { | 149 const char* policy_key) { |
| 150 return ValueTestParams(type, policy_key, Value::CreateIntegerValue(42)); | 150 return ValueTestParams(type, policy_key, Value::CreateIntegerValue(42)); |
| 151 } | 151 } |
| 152 static ValueTestParams ForListPolicy( | 152 static ValueTestParams ForListPolicy( |
| 153 ConfigurationPolicyStore::PolicyType type, | 153 ConfigurationPolicyType type, |
| 154 const char* policy_key) { | 154 const char* policy_key) { |
| 155 ListValue* value = new ListValue(); | 155 ListValue* value = new ListValue(); |
| 156 value->Set(0U, Value::CreateStringValue("first")); | 156 value->Set(0U, Value::CreateStringValue("first")); |
| 157 value->Set(1U, Value::CreateStringValue("second")); | 157 value->Set(1U, Value::CreateStringValue("second")); |
| 158 return ValueTestParams(type, policy_key, value); | 158 return ValueTestParams(type, policy_key, value); |
| 159 } | 159 } |
| 160 | 160 |
| 161 private: | 161 private: |
| 162 ConfigurationPolicyStore::PolicyType type_; | 162 ConfigurationPolicyType type_; |
| 163 const char* policy_key_; | 163 const char* policy_key_; |
| 164 scoped_ptr<Value> test_value_; | 164 scoped_ptr<Value> test_value_; |
| 165 }; | 165 }; |
| 166 | 166 |
| 167 // Tests whether the provider correctly reads a value from the file and forwards | 167 // Tests whether the provider correctly reads a value from the file and forwards |
| 168 // it to the store. | 168 // it to the store. |
| 169 class ConfigDirPolicyProviderValueTest | 169 class ConfigDirPolicyProviderValueTest |
| 170 : public ConfigDirPolicyProviderTestBase< | 170 : public ConfigDirPolicyProviderTestBase< |
| 171 testing::TestWithParam<ValueTestParams> > { | 171 testing::TestWithParam<ValueTestParams> > { |
| 172 protected: | 172 protected: |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 ASSERT_TRUE(value); | 218 ASSERT_TRUE(value); |
| 219 EXPECT_TRUE(GetParam().test_value()->Equals(value)); | 219 EXPECT_TRUE(GetParam().test_value()->Equals(value)); |
| 220 } | 220 } |
| 221 | 221 |
| 222 // Test parameters for all supported policies. | 222 // Test parameters for all supported policies. |
| 223 INSTANTIATE_TEST_CASE_P( | 223 INSTANTIATE_TEST_CASE_P( |
| 224 ConfigDirPolicyProviderValueTestInstance, | 224 ConfigDirPolicyProviderValueTestInstance, |
| 225 ConfigDirPolicyProviderValueTest, | 225 ConfigDirPolicyProviderValueTest, |
| 226 testing::Values( | 226 testing::Values( |
| 227 ValueTestParams::ForStringPolicy( | 227 ValueTestParams::ForStringPolicy( |
| 228 ConfigurationPolicyStore::kPolicyHomePage, | 228 kPolicyHomePage, |
| 229 key::kHomepageLocation), | 229 key::kHomepageLocation), |
| 230 ValueTestParams::ForBooleanPolicy( | 230 ValueTestParams::ForBooleanPolicy( |
| 231 ConfigurationPolicyStore::kPolicyHomepageIsNewTabPage, | 231 kPolicyHomepageIsNewTabPage, |
| 232 key::kHomepageIsNewTabPage), | 232 key::kHomepageIsNewTabPage), |
| 233 ValueTestParams::ForIntegerPolicy( | 233 ValueTestParams::ForIntegerPolicy( |
| 234 ConfigurationPolicyStore::kPolicyRestoreOnStartup, | 234 kPolicyRestoreOnStartup, |
| 235 key::kRestoreOnStartup), | 235 key::kRestoreOnStartup), |
| 236 ValueTestParams::ForListPolicy( | 236 ValueTestParams::ForListPolicy( |
| 237 ConfigurationPolicyStore::kPolicyURLsToRestoreOnStartup, | 237 kPolicyURLsToRestoreOnStartup, |
| 238 key::kURLsToRestoreOnStartup), | 238 key::kURLsToRestoreOnStartup), |
| 239 ValueTestParams::ForBooleanPolicy( | 239 ValueTestParams::ForBooleanPolicy( |
| 240 ConfigurationPolicyStore::kPolicyDefaultSearchProviderEnabled, | 240 kPolicyDefaultSearchProviderEnabled, |
| 241 key::kDefaultSearchProviderEnabled), | 241 key::kDefaultSearchProviderEnabled), |
| 242 ValueTestParams::ForStringPolicy( | 242 ValueTestParams::ForStringPolicy( |
| 243 ConfigurationPolicyStore::kPolicyDefaultSearchProviderName, | 243 kPolicyDefaultSearchProviderName, |
| 244 key::kDefaultSearchProviderName), | 244 key::kDefaultSearchProviderName), |
| 245 ValueTestParams::ForStringPolicy( | 245 ValueTestParams::ForStringPolicy( |
| 246 ConfigurationPolicyStore::kPolicyDefaultSearchProviderKeyword, | 246 kPolicyDefaultSearchProviderKeyword, |
| 247 key::kDefaultSearchProviderKeyword), | 247 key::kDefaultSearchProviderKeyword), |
| 248 ValueTestParams::ForStringPolicy( | 248 ValueTestParams::ForStringPolicy( |
| 249 ConfigurationPolicyStore::kPolicyDefaultSearchProviderSearchURL, | 249 kPolicyDefaultSearchProviderSearchURL, |
| 250 key::kDefaultSearchProviderSearchURL), | 250 key::kDefaultSearchProviderSearchURL), |
| 251 ValueTestParams::ForStringPolicy( | 251 ValueTestParams::ForStringPolicy( |
| 252 ConfigurationPolicyStore::kPolicyDefaultSearchProviderSuggestURL, | 252 kPolicyDefaultSearchProviderSuggestURL, |
| 253 key::kDefaultSearchProviderSuggestURL), | 253 key::kDefaultSearchProviderSuggestURL), |
| 254 ValueTestParams::ForStringPolicy( | 254 ValueTestParams::ForStringPolicy( |
| 255 ConfigurationPolicyStore::kPolicyDefaultSearchProviderIconURL, | 255 kPolicyDefaultSearchProviderIconURL, |
| 256 key::kDefaultSearchProviderIconURL), | 256 key::kDefaultSearchProviderIconURL), |
| 257 ValueTestParams::ForStringPolicy( | 257 ValueTestParams::ForStringPolicy( |
| 258 ConfigurationPolicyStore::kPolicyDefaultSearchProviderEncodings, | 258 kPolicyDefaultSearchProviderEncodings, |
| 259 key::kDefaultSearchProviderEncodings), | 259 key::kDefaultSearchProviderEncodings), |
| 260 ValueTestParams::ForIntegerPolicy( | 260 ValueTestParams::ForIntegerPolicy( |
| 261 ConfigurationPolicyStore::kPolicyProxyServerMode, | 261 kPolicyProxyServerMode, |
| 262 key::kProxyServerMode), | 262 key::kProxyServerMode), |
| 263 ValueTestParams::ForStringPolicy( | 263 ValueTestParams::ForStringPolicy( |
| 264 ConfigurationPolicyStore::kPolicyProxyServer, | 264 kPolicyProxyServer, |
| 265 key::kProxyServer), | 265 key::kProxyServer), |
| 266 ValueTestParams::ForStringPolicy( | 266 ValueTestParams::ForStringPolicy( |
| 267 ConfigurationPolicyStore::kPolicyProxyPacUrl, | 267 kPolicyProxyPacUrl, |
| 268 key::kProxyPacUrl), | 268 key::kProxyPacUrl), |
| 269 ValueTestParams::ForStringPolicy( | 269 ValueTestParams::ForStringPolicy( |
| 270 ConfigurationPolicyStore::kPolicyProxyBypassList, | 270 kPolicyProxyBypassList, |
| 271 key::kProxyBypassList), | 271 key::kProxyBypassList), |
| 272 ValueTestParams::ForBooleanPolicy( | 272 ValueTestParams::ForBooleanPolicy( |
| 273 ConfigurationPolicyStore::kPolicyAlternateErrorPagesEnabled, | 273 kPolicyAlternateErrorPagesEnabled, |
| 274 key::kAlternateErrorPagesEnabled), | 274 key::kAlternateErrorPagesEnabled), |
| 275 ValueTestParams::ForBooleanPolicy( | 275 ValueTestParams::ForBooleanPolicy( |
| 276 ConfigurationPolicyStore::kPolicySearchSuggestEnabled, | 276 kPolicySearchSuggestEnabled, |
| 277 key::kSearchSuggestEnabled), | 277 key::kSearchSuggestEnabled), |
| 278 ValueTestParams::ForBooleanPolicy( | 278 ValueTestParams::ForBooleanPolicy( |
| 279 ConfigurationPolicyStore::kPolicyDnsPrefetchingEnabled, | 279 kPolicyDnsPrefetchingEnabled, |
| 280 key::kDnsPrefetchingEnabled), | 280 key::kDnsPrefetchingEnabled), |
| 281 ValueTestParams::ForBooleanPolicy( | 281 ValueTestParams::ForBooleanPolicy( |
| 282 ConfigurationPolicyStore::kPolicySafeBrowsingEnabled, | 282 kPolicySafeBrowsingEnabled, |
| 283 key::kSafeBrowsingEnabled), | 283 key::kSafeBrowsingEnabled), |
| 284 ValueTestParams::ForBooleanPolicy( | 284 ValueTestParams::ForBooleanPolicy( |
| 285 ConfigurationPolicyStore::kPolicyMetricsReportingEnabled, | 285 kPolicyMetricsReportingEnabled, |
| 286 key::kMetricsReportingEnabled), | 286 key::kMetricsReportingEnabled), |
| 287 ValueTestParams::ForBooleanPolicy( | 287 ValueTestParams::ForBooleanPolicy( |
| 288 ConfigurationPolicyStore::kPolicyPasswordManagerEnabled, | 288 kPolicyPasswordManagerEnabled, |
| 289 key::kPasswordManagerEnabled), | 289 key::kPasswordManagerEnabled), |
| 290 ValueTestParams::ForBooleanPolicy( | 290 ValueTestParams::ForBooleanPolicy( |
| 291 ConfigurationPolicyStore::kPolicyPasswordManagerAllowShowPasswords, | 291 kPolicyPasswordManagerAllowShowPasswords, |
| 292 key::kPasswordManagerAllowShowPasswords), | 292 key::kPasswordManagerAllowShowPasswords), |
| 293 ValueTestParams::ForListPolicy( | 293 ValueTestParams::ForListPolicy( |
| 294 ConfigurationPolicyStore::kPolicyDisabledPlugins, | 294 kPolicyDisabledPlugins, |
| 295 key::kDisabledPlugins), | 295 key::kDisabledPlugins), |
| 296 ValueTestParams::ForBooleanPolicy( | 296 ValueTestParams::ForBooleanPolicy( |
| 297 ConfigurationPolicyStore::kPolicyAutoFillEnabled, | 297 kPolicyAutoFillEnabled, |
| 298 key::kAutoFillEnabled), | 298 key::kAutoFillEnabled), |
| 299 ValueTestParams::ForStringPolicy( | 299 ValueTestParams::ForStringPolicy( |
| 300 ConfigurationPolicyStore::kPolicyApplicationLocale, | 300 kPolicyApplicationLocale, |
| 301 key::kApplicationLocaleValue), | 301 key::kApplicationLocaleValue), |
| 302 ValueTestParams::ForBooleanPolicy( | 302 ValueTestParams::ForBooleanPolicy( |
| 303 ConfigurationPolicyStore::kPolicySyncDisabled, | 303 kPolicySyncDisabled, |
| 304 key::kSyncDisabled), | 304 key::kSyncDisabled), |
| 305 ValueTestParams::ForListPolicy( | 305 ValueTestParams::ForListPolicy( |
| 306 ConfigurationPolicyStore::kPolicyExtensionInstallAllowList, | 306 kPolicyExtensionInstallAllowList, |
| 307 key::kExtensionInstallAllowList), | 307 key::kExtensionInstallAllowList), |
| 308 ValueTestParams::ForListPolicy( | 308 ValueTestParams::ForListPolicy( |
| 309 ConfigurationPolicyStore::kPolicyExtensionInstallDenyList, | 309 kPolicyExtensionInstallDenyList, |
| 310 key::kExtensionInstallDenyList), | 310 key::kExtensionInstallDenyList), |
| 311 ValueTestParams::ForBooleanPolicy( | 311 ValueTestParams::ForBooleanPolicy( |
| 312 ConfigurationPolicyStore::kPolicyShowHomeButton, | 312 kPolicyShowHomeButton, |
| 313 key::kShowHomeButton), | 313 key::kShowHomeButton), |
| 314 ValueTestParams::ForBooleanPolicy( | 314 ValueTestParams::ForBooleanPolicy( |
| 315 ConfigurationPolicyStore::kPolicyPrintingEnabled, | 315 kPolicyPrintingEnabled, |
| 316 key::kPrintingEnabled))); | 316 key::kPrintingEnabled))); |
| 317 | 317 |
| 318 } // namespace policy | 318 } // namespace policy |
| OLD | NEW |