Chromium Code Reviews| 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/ui/webui/options/preferences_browsertest.h" | 5 #include "chrome/browser/ui/webui/options/preferences_browsertest.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <iostream> | 9 #include <iostream> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 208 void PreferencesBrowserTest::SetUpInProcessBrowserTestFixture() { | 208 void PreferencesBrowserTest::SetUpInProcessBrowserTestFixture() { |
| 209 // Sets up a mock policy provider for user and device policies. | 209 // Sets up a mock policy provider for user and device policies. |
| 210 EXPECT_CALL(policy_provider_, IsInitializationComplete(_)) | 210 EXPECT_CALL(policy_provider_, IsInitializationComplete(_)) |
| 211 .WillRepeatedly(Return(true)); | 211 .WillRepeatedly(Return(true)); |
| 212 policy::BrowserPolicyConnector::SetPolicyProviderForTesting( | 212 policy::BrowserPolicyConnector::SetPolicyProviderForTesting( |
| 213 &policy_provider_); | 213 &policy_provider_); |
| 214 } | 214 } |
| 215 | 215 |
| 216 void PreferencesBrowserTest::SetUserPolicies( | 216 void PreferencesBrowserTest::SetUserPolicies( |
| 217 const std::vector<std::string>& names, | 217 const std::vector<std::string>& names, |
| 218 const std::vector<base::Value*>& values, | 218 const std::vector<std::unique_ptr<base::Value>>& values, |
| 219 policy::PolicyLevel level) { | 219 policy::PolicyLevel level) { |
| 220 policy::PolicyMap map; | 220 policy::PolicyMap map; |
| 221 for (size_t i = 0; i < names.size(); ++i) { | 221 for (size_t i = 0; i < names.size(); ++i) { |
| 222 map.Set(names[i], level, policy::POLICY_SCOPE_USER, | 222 map.Set(names[i], level, policy::POLICY_SCOPE_USER, |
| 223 policy::POLICY_SOURCE_CLOUD, values[i]->CreateDeepCopy(), nullptr); | 223 policy::POLICY_SOURCE_CLOUD, values[i]->CreateDeepCopy(), nullptr); |
| 224 } | 224 } |
| 225 policy_provider_.UpdateChromePolicy(map); | 225 policy_provider_.UpdateChromePolicy(map); |
| 226 } | 226 } |
| 227 | 227 |
| 228 void PreferencesBrowserTest::ClearUserPolicies() { | 228 void PreferencesBrowserTest::ClearUserPolicies() { |
| 229 policy::PolicyMap empty_policy_map; | 229 policy::PolicyMap empty_policy_map; |
| 230 policy_provider_.UpdateChromePolicy(empty_policy_map); | 230 policy_provider_.UpdateChromePolicy(empty_policy_map); |
| 231 } | 231 } |
| 232 | 232 |
| 233 void PreferencesBrowserTest::SetUserValues( | 233 void PreferencesBrowserTest::SetUserValues( |
| 234 const std::vector<std::string>& names, | 234 const std::vector<std::string>& names, |
| 235 const std::vector<base::Value*>& values) { | 235 const std::vector<std::unique_ptr<base::Value>>& values) { |
| 236 for (size_t i = 0; i < names.size(); ++i) { | 236 for (size_t i = 0; i < names.size(); ++i) { |
| 237 pref_service()->Set(names[i].c_str(), *values[i]); | 237 pref_service()->Set(names[i].c_str(), *values[i]); |
| 238 } | 238 } |
| 239 } | 239 } |
| 240 | 240 |
| 241 void PreferencesBrowserTest::VerifyKeyValue(const base::DictionaryValue& dict, | 241 void PreferencesBrowserTest::VerifyKeyValue(const base::DictionaryValue& dict, |
| 242 const std::string& key, | 242 const std::string& key, |
| 243 const base::Value& expected) { | 243 const base::Value& expected) { |
| 244 const base::Value* actual = NULL; | 244 const base::Value* actual = NULL; |
| 245 EXPECT_TRUE(dict.Get(key, &actual)) << "Was checking key: " << key; | 245 EXPECT_TRUE(dict.Get(key, &actual)) << "Was checking key: " << key; |
| 246 if (actual) | 246 if (actual) |
| 247 EXPECT_EQ(expected, *actual) << "Was checking key: " << key; | 247 EXPECT_EQ(expected, *actual) << "Was checking key: " << key; |
| 248 } | 248 } |
| 249 | 249 |
| 250 void PreferencesBrowserTest::VerifyPref(const base::DictionaryValue* prefs, | 250 void PreferencesBrowserTest::VerifyPref( |
| 251 const std::string& name, | 251 const base::DictionaryValue* prefs, |
| 252 const base::Value* value, | 252 const std::string& name, |
| 253 const std::string& controlledBy, | 253 const std::unique_ptr<base::Value>& value, |
| 254 bool disabled, | 254 const std::string& controlledBy, |
| 255 bool uncommitted) { | 255 bool disabled, |
| 256 bool uncommitted) { | |
| 256 const base::Value* pref = NULL; | 257 const base::Value* pref = NULL; |
| 257 const base::DictionaryValue* dict = NULL; | 258 const base::DictionaryValue* dict = NULL; |
| 258 ASSERT_TRUE(prefs->GetWithoutPathExpansion(name, &pref)); | 259 ASSERT_TRUE(prefs->GetWithoutPathExpansion(name, &pref)); |
| 259 ASSERT_TRUE(pref->GetAsDictionary(&dict)); | 260 ASSERT_TRUE(pref->GetAsDictionary(&dict)); |
| 260 VerifyKeyValue(*dict, "value", *value); | 261 VerifyKeyValue(*dict, "value", *value); |
| 261 if (!controlledBy.empty()) | 262 if (!controlledBy.empty()) |
| 262 VerifyKeyValue(*dict, "controlledBy", base::StringValue(controlledBy)); | 263 VerifyKeyValue(*dict, "controlledBy", base::StringValue(controlledBy)); |
| 263 else | 264 else |
| 264 EXPECT_FALSE(dict->HasKey("controlledBy")); | 265 EXPECT_FALSE(dict->HasKey("controlledBy")); |
| 265 | 266 |
| 266 if (disabled) | 267 if (disabled) |
| 267 VerifyKeyValue(*dict, "disabled", base::FundamentalValue(true)); | 268 VerifyKeyValue(*dict, "disabled", base::FundamentalValue(true)); |
| 268 else if (dict->HasKey("disabled")) | 269 else if (dict->HasKey("disabled")) |
| 269 VerifyKeyValue(*dict, "disabled", base::FundamentalValue(false)); | 270 VerifyKeyValue(*dict, "disabled", base::FundamentalValue(false)); |
| 270 | 271 |
| 271 if (uncommitted) | 272 if (uncommitted) |
| 272 VerifyKeyValue(*dict, "uncommitted", base::FundamentalValue(true)); | 273 VerifyKeyValue(*dict, "uncommitted", base::FundamentalValue(true)); |
| 273 else if (dict->HasKey("uncommitted")) | 274 else if (dict->HasKey("uncommitted")) |
| 274 VerifyKeyValue(*dict, "uncommitted", base::FundamentalValue(false)); | 275 VerifyKeyValue(*dict, "uncommitted", base::FundamentalValue(false)); |
| 275 } | 276 } |
| 276 | 277 |
| 277 void PreferencesBrowserTest::VerifyObservedPref(const std::string& json, | 278 void PreferencesBrowserTest::VerifyObservedPref( |
| 278 const std::string& name, | 279 const std::string& json, |
| 279 const base::Value* value, | 280 const std::string& name, |
| 280 const std::string& controlledBy, | 281 const std::unique_ptr<base::Value>& value, |
| 281 bool disabled, | 282 const std::string& controlledBy, |
| 282 bool uncommitted) { | 283 bool disabled, |
| 284 bool uncommitted) { | |
| 283 std::unique_ptr<base::Value> observed_value_ptr = | 285 std::unique_ptr<base::Value> observed_value_ptr = |
| 284 base::JSONReader::Read(json); | 286 base::JSONReader::Read(json); |
| 285 const base::DictionaryValue* observed_dict; | 287 const base::DictionaryValue* observed_dict; |
| 286 ASSERT_TRUE(observed_value_ptr.get()); | 288 ASSERT_TRUE(observed_value_ptr.get()); |
| 287 ASSERT_TRUE(observed_value_ptr->GetAsDictionary(&observed_dict)); | 289 ASSERT_TRUE(observed_value_ptr->GetAsDictionary(&observed_dict)); |
| 288 VerifyPref(observed_dict, name, value, controlledBy, disabled, uncommitted); | 290 VerifyPref(observed_dict, name, value, controlledBy, disabled, uncommitted); |
| 289 } | 291 } |
| 290 | 292 |
| 291 void PreferencesBrowserTest::VerifyObservedPrefs( | 293 void PreferencesBrowserTest::VerifyObservedPrefs( |
| 292 const std::string& json, | 294 const std::string& json, |
| 293 const std::vector<std::string>& names, | 295 const std::vector<std::string>& names, |
| 294 const std::vector<base::Value*>& values, | 296 const std::vector<std::unique_ptr<base::Value>>& values, |
| 295 const std::string& controlledBy, | 297 const std::string& controlledBy, |
| 296 bool disabled, | 298 bool disabled, |
| 297 bool uncommitted) { | 299 bool uncommitted) { |
| 298 std::unique_ptr<base::Value> observed_value_ptr = | 300 std::unique_ptr<base::Value> observed_value_ptr = |
| 299 base::JSONReader::Read(json); | 301 base::JSONReader::Read(json); |
| 300 const base::DictionaryValue* observed_dict; | 302 const base::DictionaryValue* observed_dict; |
| 301 ASSERT_TRUE(observed_value_ptr.get()); | 303 ASSERT_TRUE(observed_value_ptr.get()); |
| 302 ASSERT_TRUE(observed_value_ptr->GetAsDictionary(&observed_dict)); | 304 ASSERT_TRUE(observed_value_ptr->GetAsDictionary(&observed_dict)); |
| 303 for (size_t i = 0; i < names.size(); ++i) { | 305 for (size_t i = 0; i < names.size(); ++i) { |
| 304 VerifyPref(observed_dict, names[i], values[i], controlledBy, disabled, | 306 VerifyPref(observed_dict, names[i], values[i], controlledBy, disabled, |
| 305 uncommitted); | 307 uncommitted); |
| 306 } | 308 } |
| 307 } | 309 } |
| 308 | 310 |
| 309 void PreferencesBrowserTest::ExpectNoCommit(const std::string& name) { | 311 void PreferencesBrowserTest::ExpectNoCommit(const std::string& name) { |
| 310 pref_change_registrar_->Add( | 312 pref_change_registrar_->Add( |
| 311 name.c_str(), | 313 name.c_str(), |
| 312 base::Bind(&PreferencesBrowserTest::OnPreferenceChanged, | 314 base::Bind(&PreferencesBrowserTest::OnPreferenceChanged, |
| 313 base::Unretained(this))); | 315 base::Unretained(this))); |
| 314 EXPECT_CALL(*this, OnCommit(Property(&PrefService::Preference::name, name))) | 316 EXPECT_CALL(*this, OnCommit(Property(&PrefService::Preference::name, name))) |
| 315 .Times(0); | 317 .Times(0); |
| 316 } | 318 } |
| 317 | 319 |
| 318 void PreferencesBrowserTest::ExpectSetCommit(const std::string& name, | 320 void PreferencesBrowserTest::ExpectSetCommit( |
| 319 const base::Value* value) { | 321 const std::string& name, |
| 322 const std::unique_ptr<base::Value>& value) { | |
| 320 pref_change_registrar_->Add( | 323 pref_change_registrar_->Add( |
| 321 name.c_str(), | 324 name.c_str(), |
| 322 base::Bind(&PreferencesBrowserTest::OnPreferenceChanged, | 325 base::Bind(&PreferencesBrowserTest::OnPreferenceChanged, |
| 323 base::Unretained(this))); | 326 base::Unretained(this))); |
| 324 EXPECT_CALL(*this, OnCommit(AllOf( | 327 EXPECT_CALL( |
| 325 Property(&PrefService::Preference::name, name), | 328 *this, |
| 326 Property(&PrefService::Preference::IsUserControlled, true), | 329 OnCommit(AllOf(Property(&PrefService::Preference::name, name), |
| 327 Property(&PrefService::Preference::GetValue, EqualsValue(value))))); | 330 Property(&PrefService::Preference::IsUserControlled, true), |
| 331 Property(&PrefService::Preference::GetValue, | |
| 332 EqualsValue(value.get()))))); | |
| 328 } | 333 } |
| 329 | 334 |
| 330 void PreferencesBrowserTest::ExpectClearCommit(const std::string& name) { | 335 void PreferencesBrowserTest::ExpectClearCommit(const std::string& name) { |
| 331 pref_change_registrar_->Add( | 336 pref_change_registrar_->Add( |
| 332 name.c_str(), | 337 name.c_str(), |
| 333 base::Bind(&PreferencesBrowserTest::OnPreferenceChanged, | 338 base::Bind(&PreferencesBrowserTest::OnPreferenceChanged, |
| 334 base::Unretained(this))); | 339 base::Unretained(this))); |
| 335 EXPECT_CALL(*this, OnCommit(AllOf( | 340 EXPECT_CALL(*this, OnCommit(AllOf( |
| 336 Property(&PrefService::Preference::name, name), | 341 Property(&PrefService::Preference::name, name), |
| 337 Property(&PrefService::Preference::IsUserControlled, false)))); | 342 Property(&PrefService::Preference::IsUserControlled, false)))); |
| 338 } | 343 } |
| 339 | 344 |
| 340 void PreferencesBrowserTest::VerifyAndClearExpectations() { | 345 void PreferencesBrowserTest::VerifyAndClearExpectations() { |
| 341 Mock::VerifyAndClearExpectations(this); | 346 Mock::VerifyAndClearExpectations(this); |
| 342 pref_change_registrar_->RemoveAll(); | 347 pref_change_registrar_->RemoveAll(); |
| 343 } | 348 } |
| 344 | 349 |
| 345 void PreferencesBrowserTest::SetupJavaScriptTestEnvironment( | 350 void PreferencesBrowserTest::SetupJavaScriptTestEnvironment( |
| 346 const std::vector<std::string>& pref_names, | 351 const std::vector<std::string>& pref_names, |
| 347 std::string* observed_json) const { | 352 std::string* observed_json) const { |
| 348 std::stringstream javascript; | 353 std::stringstream javascript; |
| 349 javascript << "var testEnv = new TestEnv();"; | 354 javascript << "var testEnv = new TestEnv();"; |
| 350 for (std::vector<std::string>::const_iterator name = pref_names.begin(); | 355 for (auto name = pref_names.begin(); name != pref_names.end(); ++name) { |
| 351 name != pref_names.end(); ++name) { | |
| 352 javascript << "testEnv.addPref('" << name->c_str() << "');"; | 356 javascript << "testEnv.addPref('" << name->c_str() << "');"; |
| 353 } | 357 } |
| 354 javascript << "testEnv.setupAndReply();"; | 358 javascript << "testEnv.setupAndReply();"; |
| 355 std::string temp_observed_json; | 359 std::string temp_observed_json; |
| 356 if (!observed_json) | 360 if (!observed_json) |
| 357 observed_json = &temp_observed_json; | 361 observed_json = &temp_observed_json; |
| 358 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 362 ASSERT_TRUE(content::ExecuteScriptAndExtractString( |
| 359 render_view_host_, javascript.str(), observed_json)); | 363 render_view_host_, javascript.str(), observed_json)); |
| 360 } | 364 } |
| 361 | 365 |
| 362 void PreferencesBrowserTest::SetPref(const std::string& name, | 366 void PreferencesBrowserTest::SetPref(const std::string& name, |
| 363 const std::string& type, | 367 const std::string& type, |
| 364 const base::Value* value, | 368 const std::unique_ptr<base::Value>& value, |
| 365 bool commit, | 369 bool commit, |
| 366 std::string* observed_json) { | 370 std::string* observed_json) { |
| 367 std::unique_ptr<base::Value> commit_ptr(new base::FundamentalValue(commit)); | 371 std::unique_ptr<base::Value> commit_ptr(new base::FundamentalValue(commit)); |
| 368 std::stringstream javascript; | 372 std::stringstream javascript; |
| 369 javascript << "testEnv.runAndReply(function() {" | 373 javascript << "testEnv.runAndReply(function() {" |
| 370 << " Preferences.set" << type << "Pref(" | 374 << " Preferences.set" << type << "Pref(" |
| 371 << " '" << name << "'," | 375 << " '" << name << "'," |
| 372 << " " << *value << "," | 376 << " " << *value << "," |
| 373 << " " << *commit_ptr << ");" | 377 << " " << *commit_ptr << ");" |
| 374 << "});"; | 378 << "});"; |
| 375 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 379 ASSERT_TRUE(content::ExecuteScriptAndExtractString( |
| 376 render_view_host_, javascript.str(), observed_json)); | 380 render_view_host_, javascript.str(), observed_json)); |
| 377 } | 381 } |
| 378 | 382 |
| 379 void PreferencesBrowserTest::VerifySetPref(const std::string& name, | 383 void PreferencesBrowserTest::VerifySetPref( |
| 380 const std::string& type, | 384 const std::string& name, |
| 381 const base::Value* value, | 385 const std::string& type, |
| 382 bool commit) { | 386 const std::unique_ptr<base::Value>& value, |
| 387 bool commit) { | |
| 383 if (commit) | 388 if (commit) |
| 384 ExpectSetCommit(name, value); | 389 ExpectSetCommit(name, value); |
| 385 else | 390 else |
| 386 ExpectNoCommit(name); | 391 ExpectNoCommit(name); |
| 387 std::string observed_json; | 392 std::string observed_json; |
| 388 SetPref(name, type, value, commit, &observed_json); | 393 SetPref(name, type, value, commit, &observed_json); |
| 389 VerifyObservedPref(observed_json, name, value, std::string(), false, !commit); | 394 VerifyObservedPref(observed_json, name, value, std::string(), false, !commit); |
| 390 VerifyAndClearExpectations(); | 395 VerifyAndClearExpectations(); |
| 391 } | 396 } |
| 392 | 397 |
| 393 void PreferencesBrowserTest::VerifyClearPref(const std::string& name, | 398 void PreferencesBrowserTest::VerifyClearPref( |
| 394 const base::Value* value, | 399 const std::string& name, |
| 395 bool commit) { | 400 const std::unique_ptr<base::Value>& value, |
| 401 bool commit) { | |
| 396 if (commit) | 402 if (commit) |
| 397 ExpectClearCommit(name); | 403 ExpectClearCommit(name); |
| 398 else | 404 else |
| 399 ExpectNoCommit(name); | 405 ExpectNoCommit(name); |
| 400 std::string commit_json; | 406 std::string commit_json; |
| 401 base::JSONWriter::Write(base::FundamentalValue(commit), &commit_json); | 407 base::JSONWriter::Write(base::FundamentalValue(commit), &commit_json); |
| 402 std::stringstream javascript; | 408 std::stringstream javascript; |
| 403 javascript << "testEnv.runAndReply(function() {" | 409 javascript << "testEnv.runAndReply(function() {" |
| 404 << " Preferences.clearPref(" | 410 << " Preferences.clearPref(" |
| 405 << " '" << name.c_str() << "'," | 411 << " '" << name.c_str() << "'," |
| 406 << " " << commit_json.c_str() << ");});"; | 412 << " " << commit_json.c_str() << ");});"; |
| 407 std::string observed_json; | 413 std::string observed_json; |
| 408 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 414 ASSERT_TRUE(content::ExecuteScriptAndExtractString( |
| 409 render_view_host_, javascript.str(), &observed_json)); | 415 render_view_host_, javascript.str(), &observed_json)); |
| 410 VerifyObservedPref(observed_json, name, value, "recommended", false, !commit); | 416 VerifyObservedPref(observed_json, name, value, "recommended", false, !commit); |
| 411 VerifyAndClearExpectations(); | 417 VerifyAndClearExpectations(); |
| 412 } | 418 } |
| 413 | 419 |
| 414 void PreferencesBrowserTest::VerifyCommit(const std::string& name, | 420 void PreferencesBrowserTest::VerifyCommit( |
| 415 const base::Value* value, | 421 const std::string& name, |
| 416 const std::string& controlledBy) { | 422 const std::unique_ptr<base::Value>& value, |
| 423 const std::string& controlledBy) { | |
| 417 std::stringstream javascript; | 424 std::stringstream javascript; |
| 418 javascript << "testEnv.runAndReply(function() {" | 425 javascript << "testEnv.runAndReply(function() {" |
| 419 << " Preferences.getInstance().commitPref(" | 426 << " Preferences.getInstance().commitPref(" |
| 420 << " '" << name.c_str() << "');});"; | 427 << " '" << name.c_str() << "');});"; |
| 421 std::string observed_json; | 428 std::string observed_json; |
| 422 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 429 ASSERT_TRUE(content::ExecuteScriptAndExtractString( |
| 423 render_view_host_, javascript.str(), &observed_json)); | 430 render_view_host_, javascript.str(), &observed_json)); |
| 424 VerifyObservedPref(observed_json, name, value, controlledBy, false, false); | 431 VerifyObservedPref(observed_json, name, value, controlledBy, false, false); |
| 425 } | 432 } |
| 426 | 433 |
| 427 void PreferencesBrowserTest::VerifySetCommit(const std::string& name, | 434 void PreferencesBrowserTest::VerifySetCommit( |
| 428 const base::Value* value) { | 435 const std::string& name, |
| 436 const std::unique_ptr<base::Value>& value) { | |
| 429 ExpectSetCommit(name, value); | 437 ExpectSetCommit(name, value); |
| 430 VerifyCommit(name, value, std::string()); | 438 VerifyCommit(name, value, std::string()); |
| 431 VerifyAndClearExpectations(); | 439 VerifyAndClearExpectations(); |
| 432 } | 440 } |
| 433 | 441 |
| 434 void PreferencesBrowserTest::VerifyClearCommit(const std::string& name, | 442 void PreferencesBrowserTest::VerifyClearCommit( |
| 435 const base::Value* value) { | 443 const std::string& name, |
| 444 const std::unique_ptr<base::Value>& value) { | |
| 436 ExpectClearCommit(name); | 445 ExpectClearCommit(name); |
| 437 VerifyCommit(name, value, "recommended"); | 446 VerifyCommit(name, value, "recommended"); |
| 438 VerifyAndClearExpectations(); | 447 VerifyAndClearExpectations(); |
| 439 } | 448 } |
| 440 | 449 |
| 441 void PreferencesBrowserTest::VerifyRollback(const std::string& name, | 450 void PreferencesBrowserTest::VerifyRollback( |
| 442 const base::Value* value, | 451 const std::string& name, |
| 443 const std::string& controlledBy) { | 452 const std::unique_ptr<base::Value>& value, |
| 453 const std::string& controlledBy) { | |
| 444 ExpectNoCommit(name); | 454 ExpectNoCommit(name); |
| 445 std::stringstream javascript; | 455 std::stringstream javascript; |
| 446 javascript << "testEnv.runAndReply(function() {" | 456 javascript << "testEnv.runAndReply(function() {" |
| 447 << " Preferences.getInstance().rollbackPref(" | 457 << " Preferences.getInstance().rollbackPref(" |
| 448 << " '" << name.c_str() << "');});"; | 458 << " '" << name.c_str() << "');});"; |
| 449 std::string observed_json; | 459 std::string observed_json; |
| 450 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 460 ASSERT_TRUE(content::ExecuteScriptAndExtractString( |
| 451 render_view_host_, javascript.str(), &observed_json)); | 461 render_view_host_, javascript.str(), &observed_json)); |
| 452 VerifyObservedPref(observed_json, name, value, controlledBy, false, true); | 462 VerifyObservedPref(observed_json, name, value, controlledBy, false, true); |
| 453 VerifyAndClearExpectations(); | 463 VerifyAndClearExpectations(); |
| 454 } | 464 } |
| 455 | 465 |
| 456 void PreferencesBrowserTest::StartObserving() { | 466 void PreferencesBrowserTest::StartObserving() { |
| 457 ASSERT_TRUE(content::ExecuteScript( | 467 ASSERT_TRUE(content::ExecuteScript( |
| 458 render_view_host_, "testEnv.startObserving();")); | 468 render_view_host_, "testEnv.startObserving();")); |
| 459 } | 469 } |
| 460 | 470 |
| 461 void PreferencesBrowserTest::FinishObserving(std::string* observed_json) { | 471 void PreferencesBrowserTest::FinishObserving(std::string* observed_json) { |
| 462 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 472 ASSERT_TRUE(content::ExecuteScriptAndExtractString( |
| 463 render_view_host_, | 473 render_view_host_, |
| 464 "testEnv.finishObservingAndReply();", | 474 "testEnv.finishObservingAndReply();", |
| 465 observed_json)); | 475 observed_json)); |
| 466 } | 476 } |
| 467 | 477 |
| 468 void PreferencesBrowserTest::UseDefaultTestPrefs(bool includeListPref) { | 478 void PreferencesBrowserTest::UseDefaultTestPrefs(bool includeListPref) { |
| 469 // Boolean pref. | 479 // Boolean pref. |
| 470 types_.push_back("Boolean"); | 480 types_.push_back("Boolean"); |
| 471 pref_names_.push_back(prefs::kAlternateErrorPagesEnabled); | 481 pref_names_.push_back(prefs::kAlternateErrorPagesEnabled); |
| 472 policy_names_.push_back(policy::key::kAlternateErrorPagesEnabled); | 482 policy_names_.push_back(policy::key::kAlternateErrorPagesEnabled); |
| 473 non_default_values_.push_back(new base::FundamentalValue(false)); | 483 non_default_values_.push_back( |
| 484 base::MakeUnique<base::FundamentalValue>(false)); | |
| 474 | 485 |
| 475 // Integer pref. | 486 // Integer pref. |
| 476 types_.push_back("Integer"); | 487 types_.push_back("Integer"); |
| 477 pref_names_.push_back(prefs::kRestoreOnStartup); | 488 pref_names_.push_back(prefs::kRestoreOnStartup); |
| 478 policy_names_.push_back(policy::key::kRestoreOnStartup); | 489 policy_names_.push_back(policy::key::kRestoreOnStartup); |
| 479 non_default_values_.push_back(new base::FundamentalValue(4)); | 490 non_default_values_.push_back(base::MakeUnique<base::FundamentalValue>(4)); |
| 480 | 491 |
| 481 // List pref. | 492 // List pref. |
| 482 if (includeListPref) { | 493 if (includeListPref) { |
| 483 types_.push_back("List"); | 494 types_.push_back("List"); |
| 484 pref_names_.push_back(prefs::kURLsToRestoreOnStartup); | 495 pref_names_.push_back(prefs::kURLsToRestoreOnStartup); |
| 485 policy_names_.push_back(policy::key::kRestoreOnStartupURLs); | 496 policy_names_.push_back(policy::key::kRestoreOnStartupURLs); |
| 486 base::ListValue* list = new base::ListValue; | 497 std::unique_ptr<base::ListValue> list = base::MakeUnique<base::ListValue>(); |
| 487 list->AppendString("http://www.example.com"); | 498 list->AppendString("http://www.example.com"); |
| 488 list->AppendString("http://example.com"); | 499 list->AppendString("http://example.com"); |
| 489 non_default_values_.push_back(list); | 500 non_default_values_.push_back(std::move(list)); |
| 490 } | 501 } |
| 491 | 502 |
| 492 // Retrieve default values. | 503 // Retrieve default values. |
| 493 for (std::vector<std::string>::const_iterator name = pref_names_.begin(); | 504 for (auto name = pref_names_.begin(); name != pref_names_.end(); ++name) { |
| 494 name != pref_names_.end(); ++name) { | |
| 495 default_values_.push_back( | 505 default_values_.push_back( |
| 496 pref_service()->GetDefaultPrefValue(name->c_str())->DeepCopy()); | 506 pref_service()->GetDefaultPrefValue(name->c_str())->CreateDeepCopy()); |
|
Nico
2017/01/03 18:12:35
The reasoning being "eh it's just a test" I assume
Avi (use Gerrit)
2017/01/03 22:54:53
I don't know what the ownership story of GetDefaul
| |
| 497 } | 507 } |
| 498 } | 508 } |
| 499 | 509 |
| 500 // Verifies that initializing the JavaScript Preferences class fires the correct | 510 // Verifies that initializing the JavaScript Preferences class fires the correct |
| 501 // notifications in JavaScript. | 511 // notifications in JavaScript. |
| 502 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, FetchPrefs) { | 512 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, FetchPrefs) { |
| 503 UseDefaultTestPrefs(true); | 513 UseDefaultTestPrefs(true); |
| 504 std::string observed_json; | 514 std::string observed_json; |
| 505 | 515 |
| 506 // Verify notifications when default values are in effect. | 516 // Verify notifications when default values are in effect. |
| 507 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 517 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 508 VerifyObservedPrefs( | 518 VerifyObservedPrefs(observed_json, pref_names_, default_values_, |
| 509 observed_json, pref_names_, default_values_.get(), | 519 std::string(), false, false); |
| 510 std::string(), false, false); | |
| 511 | 520 |
| 512 // Verify notifications when recommended values are in effect. | 521 // Verify notifications when recommended values are in effect. |
| 513 SetUserPolicies(policy_names_, non_default_values_.get(), | 522 SetUserPolicies(policy_names_, non_default_values_, |
| 514 policy::POLICY_LEVEL_RECOMMENDED); | 523 policy::POLICY_LEVEL_RECOMMENDED); |
| 515 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 524 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 516 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_.get(), | 525 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, |
| 517 "recommended", false, false); | 526 "recommended", false, false); |
| 518 | 527 |
| 519 // Verify notifications when mandatory values are in effect. | 528 // Verify notifications when mandatory values are in effect. |
| 520 SetUserPolicies(policy_names_, non_default_values_.get(), | 529 SetUserPolicies(policy_names_, non_default_values_, |
| 521 policy::POLICY_LEVEL_MANDATORY); | 530 policy::POLICY_LEVEL_MANDATORY); |
| 522 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 531 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 523 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_.get(), | 532 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, "policy", |
| 524 "policy", true, false); | 533 true, false); |
| 525 | 534 |
| 526 // Verify notifications when user-modified values are in effect. | 535 // Verify notifications when user-modified values are in effect. |
| 527 ClearUserPolicies(); | 536 ClearUserPolicies(); |
| 528 SetUserValues(pref_names_, non_default_values_.get()); | 537 SetUserValues(pref_names_, non_default_values_); |
| 529 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 538 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 530 VerifyObservedPrefs(observed_json, | 539 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, |
| 531 pref_names_, | 540 std::string(), false, false); |
| 532 non_default_values_.get(), | |
| 533 std::string(), | |
| 534 false, | |
| 535 false); | |
| 536 } | 541 } |
| 537 | 542 |
| 538 // Verifies that setting a user-modified pref value through the JavaScript | 543 // Verifies that setting a user-modified pref value through the JavaScript |
| 539 // Preferences class fires the correct notification in JavaScript and causes the | 544 // Preferences class fires the correct notification in JavaScript and causes the |
| 540 // change to be committed to the C++ backend. | 545 // change to be committed to the C++ backend. |
| 541 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, SetPrefs) { | 546 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, SetPrefs) { |
| 542 UseDefaultTestPrefs(false); | 547 UseDefaultTestPrefs(false); |
| 543 | 548 |
| 544 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); | 549 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); |
| 545 for (size_t i = 0; i < pref_names_.size(); ++i) { | 550 for (size_t i = 0; i < pref_names_.size(); ++i) { |
| 546 VerifySetPref(pref_names_[i], types_[i], non_default_values_[i], true); | 551 VerifySetPref(pref_names_[i], types_[i], non_default_values_[i], true); |
| 547 } | 552 } |
| 548 } | 553 } |
| 549 | 554 |
| 550 // Verifies that clearing a user-modified pref value through the JavaScript | 555 // Verifies that clearing a user-modified pref value through the JavaScript |
| 551 // Preferences class fires the correct notification in JavaScript and causes the | 556 // Preferences class fires the correct notification in JavaScript and causes the |
| 552 // change to be committed to the C++ backend. | 557 // change to be committed to the C++ backend. |
| 553 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, ClearPrefs) { | 558 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, ClearPrefs) { |
| 554 UseDefaultTestPrefs(false); | 559 UseDefaultTestPrefs(false); |
| 555 | 560 |
| 556 SetUserPolicies(policy_names_, default_values_.get(), | 561 SetUserPolicies(policy_names_, default_values_, |
| 557 policy::POLICY_LEVEL_RECOMMENDED); | 562 policy::POLICY_LEVEL_RECOMMENDED); |
| 558 SetUserValues(pref_names_, non_default_values_.get()); | 563 SetUserValues(pref_names_, non_default_values_); |
| 559 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); | 564 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); |
| 560 for (size_t i = 0; i < pref_names_.size(); ++i) { | 565 for (size_t i = 0; i < pref_names_.size(); ++i) { |
| 561 VerifyClearPref(pref_names_[i], default_values_[i], true); | 566 VerifyClearPref(pref_names_[i], default_values_[i], true); |
| 562 } | 567 } |
| 563 } | 568 } |
| 564 | 569 |
| 565 // Verifies that when the user-modified value of a dialog pref is set and the | 570 // Verifies that when the user-modified value of a dialog pref is set and the |
| 566 // change then committed through the JavaScript Preferences class, the correct | 571 // change then committed through the JavaScript Preferences class, the correct |
| 567 // notifications fire and a commit to the C++ backend occurs in the latter step | 572 // notifications fire and a commit to the C++ backend occurs in the latter step |
| 568 // only. | 573 // only. |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 583 UseDefaultTestPrefs(false); | 588 UseDefaultTestPrefs(false); |
| 584 | 589 |
| 585 // Verify behavior when default values are in effect. | 590 // Verify behavior when default values are in effect. |
| 586 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); | 591 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); |
| 587 for (size_t i = 0; i < pref_names_.size(); ++i) { | 592 for (size_t i = 0; i < pref_names_.size(); ++i) { |
| 588 VerifySetPref(pref_names_[i], types_[i], non_default_values_[i], false); | 593 VerifySetPref(pref_names_[i], types_[i], non_default_values_[i], false); |
| 589 VerifyRollback(pref_names_[i], default_values_[i], std::string()); | 594 VerifyRollback(pref_names_[i], default_values_[i], std::string()); |
| 590 } | 595 } |
| 591 | 596 |
| 592 // Verify behavior when recommended values are in effect. | 597 // Verify behavior when recommended values are in effect. |
| 593 SetUserPolicies(policy_names_, default_values_.get(), | 598 SetUserPolicies(policy_names_, default_values_, |
| 594 policy::POLICY_LEVEL_RECOMMENDED); | 599 policy::POLICY_LEVEL_RECOMMENDED); |
| 595 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); | 600 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); |
| 596 for (size_t i = 0; i < pref_names_.size(); ++i) { | 601 for (size_t i = 0; i < pref_names_.size(); ++i) { |
| 597 VerifySetPref(pref_names_[i], types_[i], non_default_values_[i], false); | 602 VerifySetPref(pref_names_[i], types_[i], non_default_values_[i], false); |
| 598 VerifyRollback(pref_names_[i], default_values_[i], "recommended"); | 603 VerifyRollback(pref_names_[i], default_values_[i], "recommended"); |
| 599 } | 604 } |
| 600 } | 605 } |
| 601 | 606 |
| 602 // Verifies that when the user-modified value of a dialog pref is cleared and | 607 // Verifies that when the user-modified value of a dialog pref is cleared and |
| 603 // the change then committed through the JavaScript Preferences class, the | 608 // the change then committed through the JavaScript Preferences class, the |
| 604 // correct notifications fire and a commit to the C++ backend occurs in the | 609 // correct notifications fire and a commit to the C++ backend occurs in the |
| 605 // latter step only. | 610 // latter step only. |
| 606 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, DialogPrefsClearCommit) { | 611 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, DialogPrefsClearCommit) { |
| 607 UseDefaultTestPrefs(false); | 612 UseDefaultTestPrefs(false); |
| 608 | 613 |
| 609 SetUserPolicies(policy_names_, default_values_.get(), | 614 SetUserPolicies(policy_names_, default_values_, |
| 610 policy::POLICY_LEVEL_RECOMMENDED); | 615 policy::POLICY_LEVEL_RECOMMENDED); |
| 611 SetUserValues(pref_names_, non_default_values_.get()); | 616 SetUserValues(pref_names_, non_default_values_); |
| 612 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); | 617 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); |
| 613 for (size_t i = 0; i < pref_names_.size(); ++i) { | 618 for (size_t i = 0; i < pref_names_.size(); ++i) { |
| 614 VerifyClearPref(pref_names_[i], default_values_[i], false); | 619 VerifyClearPref(pref_names_[i], default_values_[i], false); |
| 615 VerifyClearCommit(pref_names_[i], default_values_[i]); | 620 VerifyClearCommit(pref_names_[i], default_values_[i]); |
| 616 } | 621 } |
| 617 } | 622 } |
| 618 | 623 |
| 619 // Verifies that when the user-modified value of a dialog pref is cleared and | 624 // Verifies that when the user-modified value of a dialog pref is cleared and |
| 620 // the change then rolled back through the JavaScript Preferences class, the | 625 // the change then rolled back through the JavaScript Preferences class, the |
| 621 // correct notifications fire and no commit to the C++ backend occurs. | 626 // correct notifications fire and no commit to the C++ backend occurs. |
| 622 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, DialogPrefsClearRollback) { | 627 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, DialogPrefsClearRollback) { |
| 623 UseDefaultTestPrefs(false); | 628 UseDefaultTestPrefs(false); |
| 624 | 629 |
| 625 SetUserPolicies(policy_names_, default_values_.get(), | 630 SetUserPolicies(policy_names_, default_values_, |
| 626 policy::POLICY_LEVEL_RECOMMENDED); | 631 policy::POLICY_LEVEL_RECOMMENDED); |
| 627 SetUserValues(pref_names_, non_default_values_.get()); | 632 SetUserValues(pref_names_, non_default_values_); |
| 628 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); | 633 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); |
| 629 for (size_t i = 0; i < pref_names_.size(); ++i) { | 634 for (size_t i = 0; i < pref_names_.size(); ++i) { |
| 630 VerifyClearPref(pref_names_[i], default_values_[i], false); | 635 VerifyClearPref(pref_names_[i], default_values_[i], false); |
| 631 VerifyRollback(pref_names_[i], non_default_values_[i], std::string()); | 636 VerifyRollback(pref_names_[i], non_default_values_[i], std::string()); |
| 632 } | 637 } |
| 633 } | 638 } |
| 634 | 639 |
| 635 // Verifies that when preference values change in the C++ backend, the correct | 640 // Verifies that when preference values change in the C++ backend, the correct |
| 636 // notifications fire in JavaScript. | 641 // notifications fire in JavaScript. |
| 637 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, NotificationsOnBackendChanges) { | 642 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, NotificationsOnBackendChanges) { |
| 638 UseDefaultTestPrefs(false); | 643 UseDefaultTestPrefs(false); |
| 639 std::string observed_json; | 644 std::string observed_json; |
| 640 | 645 |
| 641 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); | 646 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); |
| 642 | 647 |
| 643 // Verify notifications when recommended values come into effect. | 648 // Verify notifications when recommended values come into effect. |
| 644 StartObserving(); | 649 StartObserving(); |
| 645 SetUserPolicies(policy_names_, non_default_values_.get(), | 650 SetUserPolicies(policy_names_, non_default_values_, |
| 646 policy::POLICY_LEVEL_RECOMMENDED); | 651 policy::POLICY_LEVEL_RECOMMENDED); |
| 647 FinishObserving(&observed_json); | 652 FinishObserving(&observed_json); |
| 648 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_.get(), | 653 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, |
| 649 "recommended", false, false); | 654 "recommended", false, false); |
| 650 | 655 |
| 651 // Verify notifications when mandatory values come into effect. | 656 // Verify notifications when mandatory values come into effect. |
| 652 StartObserving(); | 657 StartObserving(); |
| 653 SetUserPolicies(policy_names_, non_default_values_.get(), | 658 SetUserPolicies(policy_names_, non_default_values_, |
| 654 policy::POLICY_LEVEL_MANDATORY); | 659 policy::POLICY_LEVEL_MANDATORY); |
| 655 FinishObserving(&observed_json); | 660 FinishObserving(&observed_json); |
| 656 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_.get(), | 661 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, "policy", |
| 657 "policy", true, false); | 662 true, false); |
| 658 | 663 |
| 659 // Verify notifications when default values come into effect. | 664 // Verify notifications when default values come into effect. |
| 660 StartObserving(); | 665 StartObserving(); |
| 661 ClearUserPolicies(); | 666 ClearUserPolicies(); |
| 662 FinishObserving(&observed_json); | 667 FinishObserving(&observed_json); |
| 663 VerifyObservedPrefs( | 668 VerifyObservedPrefs(observed_json, pref_names_, default_values_, |
| 664 observed_json, pref_names_, default_values_.get(), | 669 std::string(), false, false); |
| 665 std::string(), false, false); | |
| 666 | 670 |
| 667 // Verify notifications when user-modified values come into effect. | 671 // Verify notifications when user-modified values come into effect. |
| 668 StartObserving(); | 672 StartObserving(); |
| 669 SetUserValues(pref_names_, non_default_values_.get()); | 673 SetUserValues(pref_names_, non_default_values_); |
| 670 FinishObserving(&observed_json); | 674 FinishObserving(&observed_json); |
| 671 VerifyObservedPrefs(observed_json, | 675 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, |
| 672 pref_names_, | 676 std::string(), false, false); |
| 673 non_default_values_.get(), | |
| 674 std::string(), | |
| 675 false, | |
| 676 false); | |
| 677 } | 677 } |
| 678 | 678 |
| 679 #if defined(OS_CHROMEOS) | 679 #if defined(OS_CHROMEOS) |
| 680 | 680 |
| 681 // Verifies that initializing the JavaScript Preferences class fires the correct | 681 // Verifies that initializing the JavaScript Preferences class fires the correct |
| 682 // notifications in JavaScript for pref values handled by the | 682 // notifications in JavaScript for pref values handled by the |
| 683 // CoreChromeOSOptionsHandler class. | 683 // CoreChromeOSOptionsHandler class. |
| 684 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, ChromeOSDeviceFetchPrefs) { | 684 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, ChromeOSDeviceFetchPrefs) { |
| 685 std::string observed_json; | 685 std::string observed_json; |
| 686 | 686 |
| 687 // Boolean pref. | 687 // Boolean pref. |
| 688 pref_names_.push_back(chromeos::kAccountsPrefAllowGuest); | 688 pref_names_.push_back(chromeos::kAccountsPrefAllowGuest); |
| 689 default_values_.push_back(new base::FundamentalValue(true)); | 689 default_values_.push_back(base::MakeUnique<base::FundamentalValue>(true)); |
| 690 | 690 |
| 691 // String pref. | 691 // String pref. |
| 692 pref_names_.push_back(chromeos::kReleaseChannel); | 692 pref_names_.push_back(chromeos::kReleaseChannel); |
| 693 default_values_.push_back(new base::StringValue("")); | 693 default_values_.push_back(base::MakeUnique<base::StringValue>("")); |
| 694 | 694 |
| 695 // List pref. | 695 // List pref. |
| 696 pref_names_.push_back(chromeos::kAccountsPrefUsers); | 696 pref_names_.push_back(chromeos::kAccountsPrefUsers); |
| 697 default_values_.push_back(new base::ListValue); | 697 default_values_.push_back(base::MakeUnique<base::ListValue>()); |
| 698 | 698 |
| 699 // Verify notifications when default values are in effect. | 699 // Verify notifications when default values are in effect. |
| 700 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 700 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 701 VerifyObservedPrefs(observed_json, pref_names_, default_values_.get(), | 701 VerifyObservedPrefs(observed_json, pref_names_, default_values_, "owner", |
| 702 "owner", true, false); | 702 true, false); |
| 703 } | 703 } |
| 704 | 704 |
| 705 // Verifies that initializing the JavaScript Preferences class fires the correct | 705 // Verifies that initializing the JavaScript Preferences class fires the correct |
| 706 // notifications in JavaScript for non-privileged pref values handled by the | 706 // notifications in JavaScript for non-privileged pref values handled by the |
| 707 // CoreChromeOSOptionsHandler class. | 707 // CoreChromeOSOptionsHandler class. |
| 708 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, | 708 IN_PROC_BROWSER_TEST_F(PreferencesBrowserTest, |
| 709 ChromeOSDeviceFetchNonPrivilegedPrefs) { | 709 ChromeOSDeviceFetchNonPrivilegedPrefs) { |
| 710 ScopedVector<base::Value> decorated_non_default_values; | 710 std::vector<std::unique_ptr<base::Value>> decorated_non_default_values; |
| 711 std::string observed_json; | 711 std::string observed_json; |
| 712 | 712 |
| 713 // Non-privileged string pref. | 713 // Non-privileged string pref. |
| 714 pref_names_.push_back(chromeos::kSystemTimezone); | 714 pref_names_.push_back(chromeos::kSystemTimezone); |
| 715 default_values_.push_back(new base::StringValue("America/Los_Angeles")); | 715 default_values_.push_back( |
| 716 non_default_values_.push_back(new base::StringValue("America/New_York")); | 716 base::MakeUnique<base::StringValue>("America/Los_Angeles")); |
| 717 non_default_values_.push_back( | |
| 718 base::MakeUnique<base::StringValue>("America/New_York")); | |
| 717 decorated_non_default_values.push_back( | 719 decorated_non_default_values.push_back( |
| 718 non_default_values_.back()->DeepCopy()); | 720 non_default_values_.back()->CreateDeepCopy()); |
| 719 | 721 |
| 720 // Verify notifications when default values are in effect. | 722 // Verify notifications when default values are in effect. |
| 721 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 723 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 722 VerifyObservedPrefs(observed_json, pref_names_, default_values_.get(), | 724 VerifyObservedPrefs(observed_json, pref_names_, default_values_, |
| 723 std::string(), false, false); | 725 std::string(), false, false); |
| 724 | 726 |
| 725 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get(); | 727 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get(); |
| 726 cros_settings->Set(pref_names_[0], *non_default_values_[0]); | 728 cros_settings->Set(pref_names_[0], *non_default_values_[0]); |
| 727 | 729 |
| 728 // Verify notifications when non-default values are in effect. | 730 // Verify notifications when non-default values are in effect. |
| 729 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 731 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 730 VerifyObservedPrefs(observed_json, pref_names_, | 732 VerifyObservedPrefs(observed_json, pref_names_, decorated_non_default_values, |
| 731 decorated_non_default_values.get(), | |
| 732 std::string(), false, false); | 733 std::string(), false, false); |
| 733 } | 734 } |
| 734 | 735 |
| 735 class ManagedPreferencesBrowserTest : public PreferencesBrowserTest { | 736 class ManagedPreferencesBrowserTest : public PreferencesBrowserTest { |
| 736 protected: | 737 protected: |
| 737 // PreferencesBrowserTest implementation: | 738 // PreferencesBrowserTest implementation: |
| 738 void SetUpInProcessBrowserTestFixture() override { | 739 void SetUpInProcessBrowserTestFixture() override { |
| 739 // Set up fake install attributes. | 740 // Set up fake install attributes. |
| 740 std::unique_ptr<chromeos::StubInstallAttributes> attributes = | 741 std::unique_ptr<chromeos::StubInstallAttributes> attributes = |
| 741 base::MakeUnique<chromeos::StubInstallAttributes>(); | 742 base::MakeUnique<chromeos::StubInstallAttributes>(); |
| 742 attributes->SetEnterprise("example.com", "fake-id"); | 743 attributes->SetEnterprise("example.com", "fake-id"); |
| 743 policy::BrowserPolicyConnectorChromeOS::SetInstallAttributesForTesting( | 744 policy::BrowserPolicyConnectorChromeOS::SetInstallAttributesForTesting( |
| 744 attributes.release()); | 745 attributes.release()); |
| 745 | 746 |
| 746 PreferencesBrowserTest::SetUpInProcessBrowserTestFixture(); | 747 PreferencesBrowserTest::SetUpInProcessBrowserTestFixture(); |
| 747 } | 748 } |
| 748 }; | 749 }; |
| 749 | 750 |
| 750 // Verifies that initializing the JavaScript Preferences class fires the correct | 751 // Verifies that initializing the JavaScript Preferences class fires the correct |
| 751 // notifications in JavaScript for pref values handled by the | 752 // notifications in JavaScript for pref values handled by the |
| 752 // CoreChromeOSOptionsHandler class for a managed device. | 753 // CoreChromeOSOptionsHandler class for a managed device. |
| 753 IN_PROC_BROWSER_TEST_F(ManagedPreferencesBrowserTest, | 754 IN_PROC_BROWSER_TEST_F(ManagedPreferencesBrowserTest, |
| 754 ChromeOSDeviceFetchPrefs) { | 755 ChromeOSDeviceFetchPrefs) { |
| 755 ScopedVector<base::Value> decorated_non_default_values; | 756 std::vector<std::unique_ptr<base::Value>> decorated_non_default_values; |
| 756 std::string observed_json; | 757 std::string observed_json; |
| 757 | 758 |
| 758 // Boolean pref. | 759 // Boolean pref. |
| 759 pref_names_.push_back(chromeos::kAccountsPrefAllowGuest); | 760 pref_names_.push_back(chromeos::kAccountsPrefAllowGuest); |
| 760 non_default_values_.push_back(new base::FundamentalValue(false)); | 761 non_default_values_.push_back( |
| 762 base::MakeUnique<base::FundamentalValue>(false)); | |
| 761 decorated_non_default_values.push_back( | 763 decorated_non_default_values.push_back( |
| 762 non_default_values_.back()->DeepCopy()); | 764 non_default_values_.back()->CreateDeepCopy()); |
| 763 | 765 |
| 764 // String pref. | 766 // String pref. |
| 765 pref_names_.push_back(chromeos::kReleaseChannel); | 767 pref_names_.push_back(chromeos::kReleaseChannel); |
| 766 non_default_values_.push_back(new base::StringValue("stable-channel")); | 768 non_default_values_.push_back( |
| 769 base::MakeUnique<base::StringValue>("stable-channel")); | |
| 767 decorated_non_default_values.push_back( | 770 decorated_non_default_values.push_back( |
| 768 non_default_values_.back()->DeepCopy()); | 771 non_default_values_.back()->CreateDeepCopy()); |
| 769 | 772 |
| 770 // List pref. | 773 // List pref. |
| 771 pref_names_.push_back(chromeos::kAccountsPrefUsers); | 774 pref_names_.push_back(chromeos::kAccountsPrefUsers); |
| 772 base::ListValue* list = new base::ListValue; | 775 std::unique_ptr<base::ListValue> list = base::MakeUnique<base::ListValue>(); |
| 773 list->AppendString("me@google.com"); | 776 list->AppendString("me@google.com"); |
| 774 list->AppendString("you@google.com"); | 777 list->AppendString("you@google.com"); |
| 775 non_default_values_.push_back(list); | 778 non_default_values_.push_back(std::move(list)); |
| 776 list = new base::ListValue; | 779 list = base::MakeUnique<base::ListValue>(); |
| 777 auto dict = base::MakeUnique<base::DictionaryValue>(); | 780 auto dict = base::MakeUnique<base::DictionaryValue>(); |
| 778 dict->SetString("username", "me@google.com"); | 781 dict->SetString("username", "me@google.com"); |
| 779 dict->SetString("name", "me@google.com"); | 782 dict->SetString("name", "me@google.com"); |
| 780 dict->SetString("email", ""); | 783 dict->SetString("email", ""); |
| 781 dict->SetBoolean("owner", false); | 784 dict->SetBoolean("owner", false); |
| 782 list->Append(std::move(dict)); | 785 list->Append(std::move(dict)); |
| 783 dict = base::MakeUnique<base::DictionaryValue>(); | 786 dict = base::MakeUnique<base::DictionaryValue>(); |
| 784 dict->SetString("username", "you@google.com"); | 787 dict->SetString("username", "you@google.com"); |
| 785 dict->SetString("name", "you@google.com"); | 788 dict->SetString("name", "you@google.com"); |
| 786 dict->SetString("email", ""); | 789 dict->SetString("email", ""); |
| 787 dict->SetBoolean("owner", false); | 790 dict->SetBoolean("owner", false); |
| 788 list->Append(std::move(dict)); | 791 list->Append(std::move(dict)); |
| 789 decorated_non_default_values.push_back(list); | 792 decorated_non_default_values.push_back(std::move(list)); |
| 790 | 793 |
| 791 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get(); | 794 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get(); |
| 792 for (size_t i = 0; i < pref_names_.size(); ++i) { | 795 for (size_t i = 0; i < pref_names_.size(); ++i) { |
| 793 cros_settings->Set(pref_names_[i], *non_default_values_[i]); | 796 cros_settings->Set(pref_names_[i], *non_default_values_[i]); |
| 794 } | 797 } |
| 795 | 798 |
| 796 // Verify notifications when mandatory values are in effect. | 799 // Verify notifications when mandatory values are in effect. |
| 797 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 800 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 798 VerifyObservedPrefs(observed_json, pref_names_, | 801 VerifyObservedPrefs(observed_json, pref_names_, decorated_non_default_values, |
| 799 decorated_non_default_values.get(), | |
| 800 "policy", true, false); | 802 "policy", true, false); |
| 801 } | 803 } |
| 802 | 804 |
| 803 // Verifies that initializing the JavaScript Preferences class fires the correct | 805 // Verifies that initializing the JavaScript Preferences class fires the correct |
| 804 // notifications in JavaScript for non-privileged pref values handled by the | 806 // notifications in JavaScript for non-privileged pref values handled by the |
| 805 // CoreChromeOSOptionsHandler class for a managed device. | 807 // CoreChromeOSOptionsHandler class for a managed device. |
| 806 IN_PROC_BROWSER_TEST_F(ManagedPreferencesBrowserTest, | 808 IN_PROC_BROWSER_TEST_F(ManagedPreferencesBrowserTest, |
| 807 ChromeOSDeviceFetchNonPrivilegedPrefs) { | 809 ChromeOSDeviceFetchNonPrivilegedPrefs) { |
| 808 ScopedVector<base::Value> decorated_non_default_values; | 810 std::vector<std::unique_ptr<base::Value>> decorated_non_default_values; |
| 809 std::string observed_json; | 811 std::string observed_json; |
| 810 | 812 |
| 811 // Non-privileged string pref. | 813 // Non-privileged string pref. |
| 812 pref_names_.push_back(chromeos::kSystemTimezone); | 814 pref_names_.push_back(chromeos::kSystemTimezone); |
| 813 non_default_values_.push_back(new base::StringValue("America/New_York")); | 815 non_default_values_.push_back( |
| 816 base::MakeUnique<base::StringValue>("America/New_York")); | |
| 814 decorated_non_default_values.push_back( | 817 decorated_non_default_values.push_back( |
| 815 non_default_values_.back()->DeepCopy()); | 818 non_default_values_.back()->CreateDeepCopy()); |
| 816 | 819 |
| 817 // Verify notifications when mandatory values are in effect. | 820 // Verify notifications when mandatory values are in effect. |
| 818 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get(); | 821 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get(); |
| 819 cros_settings->Set(pref_names_[0], *non_default_values_[0]); | 822 cros_settings->Set(pref_names_[0], *non_default_values_[0]); |
| 820 | 823 |
| 821 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 824 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 822 VerifyObservedPrefs(observed_json, pref_names_, | 825 VerifyObservedPrefs(observed_json, pref_names_, decorated_non_default_values, |
| 823 decorated_non_default_values.get(), | |
| 824 std::string(), false, false); | 826 std::string(), false, false); |
| 825 } | 827 } |
| 826 | 828 |
| 827 namespace { | 829 namespace { |
| 828 | 830 |
| 829 const char* kUserProfilePath = "user_profile"; | 831 const char* kUserProfilePath = "user_profile"; |
| 830 | 832 |
| 831 } // namespace | 833 } // namespace |
| 832 | 834 |
| 833 class ProxyPreferencesBrowserTest : public PreferencesBrowserTest { | 835 class ProxyPreferencesBrowserTest : public PreferencesBrowserTest { |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 919 type = "Integer"; | 921 type = "Integer"; |
| 920 break; | 922 break; |
| 921 case base::Value::Type::STRING: | 923 case base::Value::Type::STRING: |
| 922 type = "String"; | 924 type = "String"; |
| 923 break; | 925 break; |
| 924 default: | 926 default: |
| 925 ASSERT_TRUE(false); | 927 ASSERT_TRUE(false); |
| 926 } | 928 } |
| 927 | 929 |
| 928 std::string observed_json; | 930 std::string observed_json; |
| 929 SetPref(name, type, &value, true, &observed_json); | 931 SetPref(name, type, value.CreateDeepCopy(), true, &observed_json); |
| 930 } | 932 } |
| 931 | 933 |
| 932 void VerifyCurrentProxyServer(const std::string& expected_server, | 934 void VerifyCurrentProxyServer(const std::string& expected_server, |
| 933 onc::ONCSource expected_source) { | 935 onc::ONCSource expected_source) { |
| 934 const chromeos::NetworkState* network = GetDefaultNetwork(); | 936 const chromeos::NetworkState* network = GetDefaultNetwork(); |
| 935 ASSERT_TRUE(network); | 937 ASSERT_TRUE(network); |
| 936 onc::ONCSource actual_source; | 938 onc::ONCSource actual_source; |
| 937 std::unique_ptr<ProxyConfigDictionary> proxy_dict = | 939 std::unique_ptr<ProxyConfigDictionary> proxy_dict = |
| 938 chromeos::proxy_config::GetProxyConfigForNetwork( | 940 chromeos::proxy_config::GetProxyConfigForNetwork( |
| 939 g_browser_process->local_state(), pref_service(), *network, | 941 g_browser_process->local_state(), pref_service(), *network, |
| 940 &actual_source); | 942 &actual_source); |
| 941 ASSERT_TRUE(proxy_dict); | 943 ASSERT_TRUE(proxy_dict); |
| 942 std::string actual_proxy_server; | 944 std::string actual_proxy_server; |
| 943 EXPECT_TRUE(proxy_dict->GetProxyServer(&actual_proxy_server)); | 945 EXPECT_TRUE(proxy_dict->GetProxyServer(&actual_proxy_server)); |
| 944 EXPECT_EQ(expected_server, actual_proxy_server); | 946 EXPECT_EQ(expected_server, actual_proxy_server); |
| 945 EXPECT_EQ(expected_source, actual_source); | 947 EXPECT_EQ(expected_source, actual_source); |
| 946 } | 948 } |
| 947 }; | 949 }; |
| 948 | 950 |
| 949 // Verifies that proxy settings are correctly pushed to JavaScript during | 951 // Verifies that proxy settings are correctly pushed to JavaScript during |
| 950 // initialization of the proxy settings page. | 952 // initialization of the proxy settings page. |
| 951 IN_PROC_BROWSER_TEST_F(ProxyPreferencesBrowserTest, ChromeOSInitializeProxy) { | 953 IN_PROC_BROWSER_TEST_F(ProxyPreferencesBrowserTest, ChromeOSInitializeProxy) { |
| 952 // Boolean pref. | 954 // Boolean pref. |
| 953 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxySingle); | 955 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxySingle); |
| 954 non_default_values_.push_back(new base::FundamentalValue(true)); | 956 non_default_values_.push_back(base::MakeUnique<base::FundamentalValue>(true)); |
| 955 | 957 |
| 956 // Integer prefs. | 958 // Integer prefs. |
| 957 pref_names_.push_back( | 959 pref_names_.push_back( |
| 958 chromeos::proxy_cros_settings_parser::kProxySingleHttpPort); | 960 chromeos::proxy_cros_settings_parser::kProxySingleHttpPort); |
| 959 non_default_values_.push_back(new base::FundamentalValue(8080)); | 961 non_default_values_.push_back(base::MakeUnique<base::FundamentalValue>(8080)); |
| 960 | 962 |
| 961 // String pref. | 963 // String pref. |
| 962 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxySingleHttp); | 964 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxySingleHttp); |
| 963 non_default_values_.push_back(new base::StringValue("127.0.0.1")); | 965 non_default_values_.push_back( |
| 966 base::MakeUnique<base::StringValue>("127.0.0.1")); | |
| 964 | 967 |
| 965 // List pref. | 968 // List pref. |
| 966 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxyIgnoreList); | 969 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxyIgnoreList); |
| 967 base::ListValue* list = new base::ListValue(); | 970 std::unique_ptr<base::ListValue> list = base::MakeUnique<base::ListValue>(); |
| 968 list->AppendString("*.google.com"); | 971 list->AppendString("*.google.com"); |
| 969 list->AppendString("1.2.3.4:22"); | 972 list->AppendString("1.2.3.4:22"); |
| 970 non_default_values_.push_back(list); | 973 non_default_values_.push_back(std::move(list)); |
| 971 | 974 |
| 972 // Verify that no policy is presented to the UI. This must be verified on the | 975 // Verify that no policy is presented to the UI. This must be verified on the |
| 973 // kProxyType and the kUseSharedProxies prefs. | 976 // kProxyType and the kUseSharedProxies prefs. |
| 974 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxyType); | 977 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxyType); |
| 975 non_default_values_.push_back(new base::FundamentalValue(2)); | 978 non_default_values_.push_back(base::MakeUnique<base::FundamentalValue>(2)); |
| 976 | 979 |
| 977 pref_names_.push_back(proxy_config::prefs::kUseSharedProxies); | 980 pref_names_.push_back(proxy_config::prefs::kUseSharedProxies); |
| 978 non_default_values_.push_back(new base::FundamentalValue(false)); | 981 non_default_values_.push_back( |
| 982 base::MakeUnique<base::FundamentalValue>(false)); | |
| 979 | 983 |
| 980 std::string observed_json; | 984 std::string observed_json; |
| 981 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 985 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 982 VerifyObservedPrefs( | 986 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, "", |
| 983 observed_json, pref_names_, non_default_values_.get(), "", false, false); | 987 false, false); |
| 984 } | 988 } |
| 985 | 989 |
| 986 IN_PROC_BROWSER_TEST_F(ProxyPreferencesBrowserTest, ONCPolicy) { | 990 IN_PROC_BROWSER_TEST_F(ProxyPreferencesBrowserTest, ONCPolicy) { |
| 987 SetONCPolicy(policy::key::kOpenNetworkConfiguration, | 991 SetONCPolicy(policy::key::kOpenNetworkConfiguration, |
| 988 policy::POLICY_SCOPE_USER); | 992 policy::POLICY_SCOPE_USER); |
| 989 | 993 |
| 990 // Verify that per-network policy is presented to the UI. This must be | 994 // Verify that per-network policy is presented to the UI. This must be |
| 991 // verified on the kProxyType. | 995 // verified on the kProxyType. |
| 992 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxyType); | 996 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxyType); |
| 993 non_default_values_.push_back(new base::FundamentalValue(3)); | 997 non_default_values_.push_back(base::MakeUnique<base::FundamentalValue>(3)); |
| 994 | 998 |
| 995 std::string observed_json; | 999 std::string observed_json; |
| 996 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 1000 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 997 VerifyObservedPrefs( | 1001 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, "policy", |
| 998 observed_json, pref_names_, non_default_values_.get(), | 1002 true, false); |
| 999 "policy", true, false); | |
| 1000 | 1003 |
| 1001 // Verify that 'use-shared-proxies' is not affected by per-network policy. | 1004 // Verify that 'use-shared-proxies' is not affected by per-network policy. |
| 1002 pref_names_.clear(); | 1005 pref_names_.clear(); |
| 1003 non_default_values_.clear(); | 1006 non_default_values_.clear(); |
| 1004 pref_names_.push_back(proxy_config::prefs::kUseSharedProxies); | 1007 pref_names_.push_back(proxy_config::prefs::kUseSharedProxies); |
| 1005 non_default_values_.push_back(new base::FundamentalValue(false)); | 1008 non_default_values_.push_back( |
| 1009 base::MakeUnique<base::FundamentalValue>(false)); | |
| 1006 | 1010 |
| 1007 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 1011 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 1008 VerifyObservedPrefs( | 1012 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, "", |
| 1009 observed_json, pref_names_, non_default_values_.get(), "", false, false); | 1013 false, false); |
| 1010 } | 1014 } |
| 1011 | 1015 |
| 1012 IN_PROC_BROWSER_TEST_F(ProxyPreferencesBrowserTest, DeviceONCPolicy) { | 1016 IN_PROC_BROWSER_TEST_F(ProxyPreferencesBrowserTest, DeviceONCPolicy) { |
| 1013 SetONCPolicy(policy::key::kDeviceOpenNetworkConfiguration, | 1017 SetONCPolicy(policy::key::kDeviceOpenNetworkConfiguration, |
| 1014 policy::POLICY_SCOPE_MACHINE); | 1018 policy::POLICY_SCOPE_MACHINE); |
| 1015 | 1019 |
| 1016 // Verify that the policy is presented to the UI. This verification must be | 1020 // Verify that the policy is presented to the UI. This verification must be |
| 1017 // done on the kProxyType pref. | 1021 // done on the kProxyType pref. |
| 1018 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxyType); | 1022 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxyType); |
| 1019 non_default_values_.push_back(new base::FundamentalValue(3)); | 1023 non_default_values_.push_back(base::MakeUnique<base::FundamentalValue>(3)); |
| 1020 | 1024 |
| 1021 std::string observed_json; | 1025 std::string observed_json; |
| 1022 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 1026 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 1023 VerifyObservedPrefs( | 1027 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, "policy", |
| 1024 observed_json, pref_names_, non_default_values_.get(), | 1028 true, false); |
| 1025 "policy", true, false); | |
| 1026 | 1029 |
| 1027 // Verify that 'use-shared-proxies' is not affected by per-network policy. | 1030 // Verify that 'use-shared-proxies' is not affected by per-network policy. |
| 1028 pref_names_.clear(); | 1031 pref_names_.clear(); |
| 1029 non_default_values_.clear(); | 1032 non_default_values_.clear(); |
| 1030 pref_names_.push_back(proxy_config::prefs::kUseSharedProxies); | 1033 pref_names_.push_back(proxy_config::prefs::kUseSharedProxies); |
| 1031 non_default_values_.push_back(new base::FundamentalValue(false)); | 1034 non_default_values_.push_back( |
| 1035 base::MakeUnique<base::FundamentalValue>(false)); | |
| 1032 | 1036 |
| 1033 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 1037 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 1034 VerifyObservedPrefs( | 1038 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, "", |
| 1035 observed_json, pref_names_, non_default_values_.get(), "", false, false); | 1039 false, false); |
| 1036 } | 1040 } |
| 1037 | 1041 |
| 1038 IN_PROC_BROWSER_TEST_F(ProxyPreferencesBrowserTest, UserProxyPolicy) { | 1042 IN_PROC_BROWSER_TEST_F(ProxyPreferencesBrowserTest, UserProxyPolicy) { |
| 1039 policy_names_.push_back(policy::key::kProxyMode); | 1043 policy_names_.push_back(policy::key::kProxyMode); |
| 1040 default_values_.push_back( | 1044 default_values_.push_back(base::MakeUnique<base::StringValue>( |
| 1041 new base::StringValue(ProxyPrefs::kAutoDetectProxyModeName)); | 1045 ProxyPrefs::kAutoDetectProxyModeName)); |
| 1042 SetUserPolicies( | 1046 SetUserPolicies(policy_names_, default_values_, |
| 1043 policy_names_, default_values_.get(), policy::POLICY_LEVEL_MANDATORY); | 1047 policy::POLICY_LEVEL_MANDATORY); |
| 1044 content::RunAllPendingInMessageLoop(); | 1048 content::RunAllPendingInMessageLoop(); |
| 1045 | 1049 |
| 1046 // Verify that the policy is presented to the UI. This verification must be | 1050 // Verify that the policy is presented to the UI. This verification must be |
| 1047 // done on the kProxyType pref. | 1051 // done on the kProxyType pref. |
| 1048 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxyType); | 1052 pref_names_.push_back(chromeos::proxy_cros_settings_parser::kProxyType); |
| 1049 non_default_values_.push_back(new base::FundamentalValue(3)); | 1053 non_default_values_.push_back(base::MakeUnique<base::FundamentalValue>(3)); |
| 1050 | 1054 |
| 1051 // Verify that 'use-shared-proxies' is controlled by the policy. | 1055 // Verify that 'use-shared-proxies' is controlled by the policy. |
| 1052 pref_names_.push_back(proxy_config::prefs::kUseSharedProxies); | 1056 pref_names_.push_back(proxy_config::prefs::kUseSharedProxies); |
| 1053 non_default_values_.push_back(new base::FundamentalValue(false)); | 1057 non_default_values_.push_back( |
| 1058 base::MakeUnique<base::FundamentalValue>(false)); | |
| 1054 | 1059 |
| 1055 std::string observed_json; | 1060 std::string observed_json; |
| 1056 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); | 1061 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); |
| 1057 VerifyObservedPrefs( | 1062 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, "policy", |
| 1058 observed_json, pref_names_, non_default_values_.get(), | 1063 true, false); |
| 1059 "policy", true, false); | |
| 1060 } | 1064 } |
| 1061 | 1065 |
| 1062 // Verifies that modifications to the proxy settings are correctly pushed from | 1066 // Verifies that modifications to the proxy settings are correctly pushed from |
| 1063 // JavaScript to the ProxyConfig property stored in the network configuration. | 1067 // JavaScript to the ProxyConfig property stored in the network configuration. |
| 1064 IN_PROC_BROWSER_TEST_F(ProxyPreferencesBrowserTest, ChromeOSSetProxy) { | 1068 IN_PROC_BROWSER_TEST_F(ProxyPreferencesBrowserTest, ChromeOSSetProxy) { |
| 1065 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); | 1069 ASSERT_NO_FATAL_FAILURE(SetupJavaScriptTestEnvironment(pref_names_, NULL)); |
| 1066 | 1070 |
| 1067 SetProxyPref(chromeos::proxy_cros_settings_parser::kProxySingleHttpPort, | 1071 SetProxyPref(chromeos::proxy_cros_settings_parser::kProxySingleHttpPort, |
| 1068 base::FundamentalValue(123)); | 1072 base::FundamentalValue(123)); |
| 1069 SetProxyPref(chromeos::proxy_cros_settings_parser::kProxySingleHttp, | 1073 SetProxyPref(chromeos::proxy_cros_settings_parser::kProxySingleHttp, |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1106 base::FundamentalValue(3)); | 1110 base::FundamentalValue(3)); |
| 1107 SetProxyPref(chromeos::proxy_cros_settings_parser::kProxySocksPort, | 1111 SetProxyPref(chromeos::proxy_cros_settings_parser::kProxySocksPort, |
| 1108 base::FundamentalValue(4)); | 1112 base::FundamentalValue(4)); |
| 1109 | 1113 |
| 1110 VerifyCurrentProxyServer( | 1114 VerifyCurrentProxyServer( |
| 1111 "http=a.com:1;https=4.3.2.1:2;ftp=c.com:3;socks=socks4://d.com:4", | 1115 "http=a.com:1;https=4.3.2.1:2;ftp=c.com:3;socks=socks4://d.com:4", |
| 1112 onc::ONC_SOURCE_NONE); | 1116 onc::ONC_SOURCE_NONE); |
| 1113 } | 1117 } |
| 1114 | 1118 |
| 1115 #endif | 1119 #endif |
| OLD | NEW |