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

Side by Side Diff: chrome/browser/chromeos/policy/network_configuration_updater_unittest.cc

Issue 1940153002: Use std::unique_ptr to express ownership of base::Value in PolicyMap::Entry (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: another-fix Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
12 #include "base/callback.h" 12 #include "base/callback.h"
13 #include "base/files/file_path.h" 13 #include "base/files/file_path.h"
14 #include "base/macros.h" 14 #include "base/macros.h"
15 #include "base/memory/ptr_util.h"
15 #include "base/run_loop.h" 16 #include "base/run_loop.h"
16 #include "base/values.h" 17 #include "base/values.h"
17 #include "chrome/browser/chromeos/policy/device_network_configuration_updater.h" 18 #include "chrome/browser/chromeos/policy/device_network_configuration_updater.h"
18 #include "chrome/browser/chromeos/policy/user_network_configuration_updater.h" 19 #include "chrome/browser/chromeos/policy/user_network_configuration_updater.h"
19 #include "chrome/browser/chromeos/settings/cros_settings.h" 20 #include "chrome/browser/chromeos/settings/cros_settings.h"
20 #include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h" 21 #include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h"
21 #include "chrome/test/base/testing_profile.h" 22 #include "chrome/test/base/testing_profile.h"
22 #include "chromeos/network/fake_network_device_handler.h" 23 #include "chromeos/network/fake_network_device_handler.h"
23 #include "chromeos/network/mock_managed_network_configuration_handler.h" 24 #include "chromeos/network/mock_managed_network_configuration_handler.h"
24 #include "chromeos/network/onc/onc_certificate_importer.h" 25 #include "chromeos/network/onc/onc_certificate_importer.h"
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 343
343 base::DictionaryValue* global_config_repaired = NULL; 344 base::DictionaryValue* global_config_repaired = NULL;
344 onc_repaired->GetDictionaryWithoutPathExpansion( 345 onc_repaired->GetDictionaryWithoutPathExpansion(
345 onc::toplevel_config::kGlobalNetworkConfiguration, 346 onc::toplevel_config::kGlobalNetworkConfiguration,
346 &global_config_repaired); 347 &global_config_repaired);
347 ASSERT_TRUE(global_config_repaired); 348 ASSERT_TRUE(global_config_repaired);
348 349
349 std::string onc_policy = 350 std::string onc_policy =
350 chromeos::onc::test_utils::ReadTestData("toplevel_partially_invalid.onc"); 351 chromeos::onc::test_utils::ReadTestData("toplevel_partially_invalid.onc");
351 PolicyMap policy; 352 PolicyMap policy;
352 policy.Set(key::kOpenNetworkConfiguration, 353 policy.Set(key::kOpenNetworkConfiguration, POLICY_LEVEL_MANDATORY,
353 POLICY_LEVEL_MANDATORY, 354 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
354 POLICY_SCOPE_USER, 355 base::WrapUnique(new base::StringValue(onc_policy)), nullptr);
355 POLICY_SOURCE_CLOUD,
356 new base::StringValue(onc_policy),
357 NULL);
358 UpdateProviderPolicy(policy); 356 UpdateProviderPolicy(policy);
359 357
360 EXPECT_CALL(network_config_handler_, 358 EXPECT_CALL(network_config_handler_,
361 SetPolicy(onc::ONC_SOURCE_USER_POLICY, 359 SetPolicy(onc::ONC_SOURCE_USER_POLICY,
362 _, 360 _,
363 IsEqualTo(network_configs_repaired), 361 IsEqualTo(network_configs_repaired),
364 IsEqualTo(global_config_repaired))); 362 IsEqualTo(global_config_repaired)));
365 certificate_importer_->SetExpectedONCSource(onc::ONC_SOURCE_USER_POLICY); 363 certificate_importer_->SetExpectedONCSource(onc::ONC_SOURCE_USER_POLICY);
366 364
367 CreateNetworkConfigurationUpdaterForUserPolicy( 365 CreateNetworkConfigurationUpdaterForUserPolicy(
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 cert_list = 464 cert_list =
467 net::CreateCertificateListFromFile(net::GetTestCertsDirectory(), 465 net::CreateCertificateListFromFile(net::GetTestCertsDirectory(),
468 "ok_cert.pem", 466 "ok_cert.pem",
469 net::X509Certificate::FORMAT_AUTO); 467 net::X509Certificate::FORMAT_AUTO);
470 ASSERT_EQ(1u, cert_list.size()); 468 ASSERT_EQ(1u, cert_list.size());
471 certificate_importer_->SetTrustedCertificatesResult(cert_list); 469 certificate_importer_->SetTrustedCertificatesResult(cert_list);
472 470
473 // Change to any non-empty policy, so that updates are triggered. The actual 471 // Change to any non-empty policy, so that updates are triggered. The actual
474 // content of the policy is irrelevant. 472 // content of the policy is irrelevant.
475 PolicyMap policy; 473 PolicyMap policy;
476 policy.Set(key::kOpenNetworkConfiguration, 474 policy.Set(key::kOpenNetworkConfiguration, POLICY_LEVEL_MANDATORY,
477 POLICY_LEVEL_MANDATORY, 475 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
478 POLICY_SCOPE_USER, 476 base::WrapUnique(new base::StringValue(kFakeONC)), nullptr);
479 POLICY_SOURCE_CLOUD,
480 new base::StringValue(kFakeONC),
481 NULL);
482 UpdateProviderPolicy(policy); 477 UpdateProviderPolicy(policy);
483 base::RunLoop().RunUntilIdle(); 478 base::RunLoop().RunUntilIdle();
484 479
485 // Certificates with the "Web" trust flag set will be returned and forwarded 480 // Certificates with the "Web" trust flag set will be returned and forwarded
486 // to observers. 481 // to observers.
487 { 482 {
488 net::CertificateList trust_anchors; 483 net::CertificateList trust_anchors;
489 updater->GetWebTrustedCertificates(&trust_anchors); 484 updater->GetWebTrustedCertificates(&trust_anchors);
490 EXPECT_EQ(1u, trust_anchors.size()); 485 EXPECT_EQ(1u, trust_anchors.size());
491 } 486 }
492 EXPECT_EQ(1u, observer.trust_anchors_.size()); 487 EXPECT_EQ(1u, observer.trust_anchors_.size());
493 488
494 updater->RemoveTrustedCertsObserver(&observer); 489 updater->RemoveTrustedCertsObserver(&observer);
495 } 490 }
496 491
497 TEST_F(NetworkConfigurationUpdaterTest, 492 TEST_F(NetworkConfigurationUpdaterTest,
498 DontImportCertificateBeforeCertificateImporterSet) { 493 DontImportCertificateBeforeCertificateImporterSet) {
499 PolicyMap policy; 494 PolicyMap policy;
500 policy.Set(key::kOpenNetworkConfiguration, POLICY_LEVEL_MANDATORY, 495 policy.Set(key::kOpenNetworkConfiguration, POLICY_LEVEL_MANDATORY,
501 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, 496 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
502 new base::StringValue(kFakeONC), nullptr); 497 base::WrapUnique(new base::StringValue(kFakeONC)), nullptr);
503 UpdateProviderPolicy(policy); 498 UpdateProviderPolicy(policy);
504 499
505 EXPECT_CALL(network_config_handler_, 500 EXPECT_CALL(network_config_handler_,
506 SetPolicy(onc::ONC_SOURCE_USER_POLICY, 501 SetPolicy(onc::ONC_SOURCE_USER_POLICY,
507 kFakeUsernameHash, 502 kFakeUsernameHash,
508 IsEqualTo(&fake_network_configs_), 503 IsEqualTo(&fake_network_configs_),
509 IsEqualTo(&fake_global_network_config_))); 504 IsEqualTo(&fake_global_network_config_)));
510 505
511 UserNetworkConfigurationUpdater* updater = 506 UserNetworkConfigurationUpdater* updater =
512 CreateNetworkConfigurationUpdaterForUserPolicy( 507 CreateNetworkConfigurationUpdaterForUserPolicy(
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 true /* set certificate importer */); 554 true /* set certificate importer */);
560 } else { 555 } else {
561 CreateNetworkConfigurationUpdaterForDevicePolicy(); 556 CreateNetworkConfigurationUpdaterForDevicePolicy();
562 } 557 }
563 } 558 }
564 }; 559 };
565 560
566 TEST_P(NetworkConfigurationUpdaterTestWithParam, InitialUpdates) { 561 TEST_P(NetworkConfigurationUpdaterTestWithParam, InitialUpdates) {
567 PolicyMap policy; 562 PolicyMap policy;
568 policy.Set(GetParam(), POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 563 policy.Set(GetParam(), POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
569 POLICY_SOURCE_CLOUD, new base::StringValue(kFakeONC), nullptr); 564 POLICY_SOURCE_CLOUD,
565 base::WrapUnique(new base::StringValue(kFakeONC)), nullptr);
570 UpdateProviderPolicy(policy); 566 UpdateProviderPolicy(policy);
571 567
572 EXPECT_CALL(network_config_handler_, 568 EXPECT_CALL(network_config_handler_,
573 SetPolicy(CurrentONCSource(), 569 SetPolicy(CurrentONCSource(),
574 ExpectedUsernameHash(), 570 ExpectedUsernameHash(),
575 IsEqualTo(&fake_network_configs_), 571 IsEqualTo(&fake_network_configs_),
576 IsEqualTo(&fake_global_network_config_))); 572 IsEqualTo(&fake_global_network_config_)));
577 certificate_importer_->SetExpectedONCCertificates(fake_certificates_); 573 certificate_importer_->SetExpectedONCCertificates(fake_certificates_);
578 certificate_importer_->SetExpectedONCSource(CurrentONCSource()); 574 certificate_importer_->SetExpectedONCSource(CurrentONCSource());
579 575
580 CreateNetworkConfigurationUpdater(); 576 CreateNetworkConfigurationUpdater();
581 MarkPolicyProviderInitialized(); 577 MarkPolicyProviderInitialized();
582 EXPECT_EQ(ExpectedImportCertificatesCallCount(), 578 EXPECT_EQ(ExpectedImportCertificatesCallCount(),
583 certificate_importer_->GetAndResetImportCount()); 579 certificate_importer_->GetAndResetImportCount());
584 } 580 }
585 581
586 TEST_P(NetworkConfigurationUpdaterTestWithParam, 582 TEST_P(NetworkConfigurationUpdaterTestWithParam,
587 PolicyNotSetBeforePolicyProviderInitialized) { 583 PolicyNotSetBeforePolicyProviderInitialized) {
588 PolicyMap policy; 584 PolicyMap policy;
589 policy.Set(GetParam(), POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 585 policy.Set(GetParam(), POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
590 POLICY_SOURCE_CLOUD, new base::StringValue(kFakeONC), nullptr); 586 POLICY_SOURCE_CLOUD,
587 base::WrapUnique(new base::StringValue(kFakeONC)), nullptr);
591 UpdateProviderPolicy(policy); 588 UpdateProviderPolicy(policy);
592 589
593 CreateNetworkConfigurationUpdater(); 590 CreateNetworkConfigurationUpdater();
594 591
595 Mock::VerifyAndClearExpectations(&network_config_handler_); 592 Mock::VerifyAndClearExpectations(&network_config_handler_);
596 EXPECT_EQ(0u, certificate_importer_->GetAndResetImportCount()); 593 EXPECT_EQ(0u, certificate_importer_->GetAndResetImportCount());
597 594
598 EXPECT_CALL(network_config_handler_, 595 EXPECT_CALL(network_config_handler_,
599 SetPolicy(CurrentONCSource(), 596 SetPolicy(CurrentONCSource(),
600 ExpectedUsernameHash(), 597 ExpectedUsernameHash(),
601 IsEqualTo(&fake_network_configs_), 598 IsEqualTo(&fake_network_configs_),
602 IsEqualTo(&fake_global_network_config_))); 599 IsEqualTo(&fake_global_network_config_)));
603 certificate_importer_->SetExpectedONCSource(CurrentONCSource()); 600 certificate_importer_->SetExpectedONCSource(CurrentONCSource());
604 certificate_importer_->SetExpectedONCCertificates(fake_certificates_); 601 certificate_importer_->SetExpectedONCCertificates(fake_certificates_);
605 602
606 MarkPolicyProviderInitialized(); 603 MarkPolicyProviderInitialized();
607 EXPECT_EQ(ExpectedImportCertificatesCallCount(), 604 EXPECT_EQ(ExpectedImportCertificatesCallCount(),
608 certificate_importer_->GetAndResetImportCount()); 605 certificate_importer_->GetAndResetImportCount());
609 } 606 }
610 607
611 TEST_P(NetworkConfigurationUpdaterTestWithParam, 608 TEST_P(NetworkConfigurationUpdaterTestWithParam,
612 PolicyAppliedImmediatelyIfProvidersInitialized) { 609 PolicyAppliedImmediatelyIfProvidersInitialized) {
613 MarkPolicyProviderInitialized(); 610 MarkPolicyProviderInitialized();
614 611
615 PolicyMap policy; 612 PolicyMap policy;
616 policy.Set(GetParam(), POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 613 policy.Set(GetParam(), POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
617 POLICY_SOURCE_CLOUD, new base::StringValue(kFakeONC), nullptr); 614 POLICY_SOURCE_CLOUD,
615 base::WrapUnique(new base::StringValue(kFakeONC)), nullptr);
618 UpdateProviderPolicy(policy); 616 UpdateProviderPolicy(policy);
619 617
620 EXPECT_CALL(network_config_handler_, 618 EXPECT_CALL(network_config_handler_,
621 SetPolicy(CurrentONCSource(), 619 SetPolicy(CurrentONCSource(),
622 ExpectedUsernameHash(), 620 ExpectedUsernameHash(),
623 IsEqualTo(&fake_network_configs_), 621 IsEqualTo(&fake_network_configs_),
624 IsEqualTo(&fake_global_network_config_))); 622 IsEqualTo(&fake_global_network_config_)));
625 certificate_importer_->SetExpectedONCSource(CurrentONCSource()); 623 certificate_importer_->SetExpectedONCSource(CurrentONCSource());
626 certificate_importer_->SetExpectedONCCertificates(fake_certificates_); 624 certificate_importer_->SetExpectedONCCertificates(fake_certificates_);
627 625
(...skipping 18 matching lines...) Expand all
646 EXPECT_CALL(network_config_handler_, 644 EXPECT_CALL(network_config_handler_,
647 SetPolicy(CurrentONCSource(), 645 SetPolicy(CurrentONCSource(),
648 _, 646 _,
649 IsEqualTo(&fake_network_configs_), 647 IsEqualTo(&fake_network_configs_),
650 IsEqualTo(&fake_global_network_config_))); 648 IsEqualTo(&fake_global_network_config_)));
651 certificate_importer_->SetExpectedONCSource(CurrentONCSource()); 649 certificate_importer_->SetExpectedONCSource(CurrentONCSource());
652 certificate_importer_->SetExpectedONCCertificates(fake_certificates_); 650 certificate_importer_->SetExpectedONCCertificates(fake_certificates_);
653 651
654 PolicyMap policy; 652 PolicyMap policy;
655 policy.Set(GetParam(), POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 653 policy.Set(GetParam(), POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
656 POLICY_SOURCE_CLOUD, new base::StringValue(kFakeONC), nullptr); 654 POLICY_SOURCE_CLOUD,
655 base::WrapUnique(new base::StringValue(kFakeONC)), nullptr);
657 UpdateProviderPolicy(policy); 656 UpdateProviderPolicy(policy);
658 Mock::VerifyAndClearExpectations(&network_config_handler_); 657 Mock::VerifyAndClearExpectations(&network_config_handler_);
659 EXPECT_EQ(ExpectedImportCertificatesCallCount(), 658 EXPECT_EQ(ExpectedImportCertificatesCallCount(),
660 certificate_importer_->GetAndResetImportCount()); 659 certificate_importer_->GetAndResetImportCount());
661 660
662 // Another update is expected if the policy goes away. 661 // Another update is expected if the policy goes away.
663 EXPECT_CALL(network_config_handler_, 662 EXPECT_CALL(network_config_handler_,
664 SetPolicy(CurrentONCSource(), _, IsEmpty(), IsEmpty())); 663 SetPolicy(CurrentONCSource(), _, IsEmpty(), IsEmpty()));
665 certificate_importer_->SetExpectedONCCertificates(base::ListValue()); 664 certificate_importer_->SetExpectedONCCertificates(base::ListValue());
666 665
667 policy.Erase(GetParam()); 666 policy.Erase(GetParam());
668 UpdateProviderPolicy(policy); 667 UpdateProviderPolicy(policy);
669 EXPECT_EQ(ExpectedImportCertificatesCallCount(), 668 EXPECT_EQ(ExpectedImportCertificatesCallCount(),
670 certificate_importer_->GetAndResetImportCount()); 669 certificate_importer_->GetAndResetImportCount());
671 } 670 }
672 671
673 INSTANTIATE_TEST_CASE_P(NetworkConfigurationUpdaterTestWithParamInstance, 672 INSTANTIATE_TEST_CASE_P(NetworkConfigurationUpdaterTestWithParamInstance,
674 NetworkConfigurationUpdaterTestWithParam, 673 NetworkConfigurationUpdaterTestWithParam,
675 testing::Values(key::kDeviceOpenNetworkConfiguration, 674 testing::Values(key::kDeviceOpenNetworkConfiguration,
676 key::kOpenNetworkConfiguration)); 675 key::kOpenNetworkConfiguration));
677 676
678 } // namespace policy 677 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698