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

Side by Side Diff: chrome/browser/policy/policy_prefs_browsertest.cc

Issue 2767893002: Remove ScopedVector from chrome/browser/. (Closed)
Patch Set: Address comments from zea@ Created 3 years, 9 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 (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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstdlib> 8 #include <cstdlib>
9 #include <map> 9 #include <map>
10 #include <memory> 10 #include <memory>
11 #include <sstream> 11 #include <sstream>
12 #include <string> 12 #include <string>
13 #include <utility>
13 #include <vector> 14 #include <vector>
14 15
15 #include "base/files/file_path.h" 16 #include "base/files/file_path.h"
16 #include "base/files/file_util.h" 17 #include "base/files/file_util.h"
17 #include "base/json/json_reader.h" 18 #include "base/json/json_reader.h"
18 #include "base/logging.h" 19 #include "base/logging.h"
19 #include "base/macros.h" 20 #include "base/macros.h"
20 #include "base/memory/ptr_util.h" 21 #include "base/memory/ptr_util.h"
21 #include "base/memory/scoped_vector.h"
22 #include "base/memory/weak_ptr.h" 22 #include "base/memory/weak_ptr.h"
23 #include "base/run_loop.h" 23 #include "base/run_loop.h"
24 #include "base/stl_util.h" 24 #include "base/stl_util.h"
25 #include "base/strings/string_util.h" 25 #include "base/strings/string_util.h"
26 #include "base/strings/utf_string_conversions.h" 26 #include "base/strings/utf_string_conversions.h"
27 #include "base/values.h" 27 #include "base/values.h"
28 #include "build/build_config.h" 28 #include "build/build_config.h"
29 #include "chrome/browser/browser_process.h" 29 #include "chrome/browser/browser_process.h"
30 #include "chrome/browser/profiles/profile.h" 30 #include "chrome/browser/profiles/profile.h"
31 #include "chrome/browser/search_engines/template_url_service_factory.h" 31 #include "chrome/browser/search_engines/template_url_service_factory.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 const std::string& indicator_test_url() const { return indicator_test_url_; } 124 const std::string& indicator_test_url() const { return indicator_test_url_; }
125 125
126 const std::string& indicator_test_setup_js() const { 126 const std::string& indicator_test_setup_js() const {
127 return indicator_test_setup_js_; 127 return indicator_test_setup_js_;
128 } 128 }
129 129
130 const std::string& indicator_selector() const { 130 const std::string& indicator_selector() const {
131 return indicator_selector_; 131 return indicator_selector_;
132 } 132 }
133 133
134 const ScopedVector<IndicatorTestCase>& indicator_test_cases() const { 134 const std::vector<std::unique_ptr<IndicatorTestCase>>& indicator_test_cases()
135 const {
135 return indicator_test_cases_; 136 return indicator_test_cases_;
136 } 137 }
137 void AddIndicatorTestCase(IndicatorTestCase* test_case) { 138 void AddIndicatorTestCase(std::unique_ptr<IndicatorTestCase> test_case) {
138 indicator_test_cases_.push_back(test_case); 139 indicator_test_cases_.push_back(std::move(test_case));
139 } 140 }
140 141
141 private: 142 private:
142 const std::string pref_; 143 const std::string pref_;
143 const bool is_local_state_; 144 const bool is_local_state_;
144 const bool check_for_mandatory_; 145 const bool check_for_mandatory_;
145 const bool check_for_recommended_; 146 const bool check_for_recommended_;
146 const std::string indicator_test_url_; 147 const std::string indicator_test_url_;
147 const std::string indicator_test_setup_js_; 148 const std::string indicator_test_setup_js_;
148 const std::string indicator_selector_; 149 const std::string indicator_selector_;
149 ScopedVector<IndicatorTestCase> indicator_test_cases_; 150 std::vector<std::unique_ptr<IndicatorTestCase>> indicator_test_cases_;
150 151
151 DISALLOW_COPY_AND_ASSIGN(PrefMapping); 152 DISALLOW_COPY_AND_ASSIGN(PrefMapping);
152 }; 153 };
153 154
154 // Contains the testing details for a single policy. This is part of the data 155 // Contains the testing details for a single policy. This is part of the data
155 // loaded from chrome/test/data/policy/policy_test_cases.json. 156 // loaded from chrome/test/data/policy/policy_test_cases.json.
156 class PolicyTestCase { 157 class PolicyTestCase {
157 public: 158 public:
158 PolicyTestCase(const std::string& name, 159 PolicyTestCase(const std::string& name,
159 bool is_official_only, 160 bool is_official_only,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 #endif 196 #endif
196 return IsOsSupported(); 197 return IsOsSupported();
197 } 198 }
198 199
199 const base::DictionaryValue& test_policy() const { return test_policy_; } 200 const base::DictionaryValue& test_policy() const { return test_policy_; }
200 void SetTestPolicy(const base::DictionaryValue& policy) { 201 void SetTestPolicy(const base::DictionaryValue& policy) {
201 test_policy_.Clear(); 202 test_policy_.Clear();
202 test_policy_.MergeDictionary(&policy); 203 test_policy_.MergeDictionary(&policy);
203 } 204 }
204 205
205 const ScopedVector<PrefMapping>& pref_mappings() const { 206 const std::vector<std::unique_ptr<PrefMapping>>& pref_mappings() const {
206 return pref_mappings_; 207 return pref_mappings_;
207 } 208 }
208 void AddPrefMapping(PrefMapping* pref_mapping) { 209 void AddPrefMapping(std::unique_ptr<PrefMapping> pref_mapping) {
209 pref_mappings_.push_back(pref_mapping); 210 pref_mappings_.push_back(std::move(pref_mapping));
210 } 211 }
211 212
212 const std::string& indicator_selector() const { return indicator_selector_; } 213 const std::string& indicator_selector() const { return indicator_selector_; }
213 214
214 private: 215 private:
215 std::string name_; 216 std::string name_;
216 bool is_official_only_; 217 bool is_official_only_;
217 bool can_be_recommended_; 218 bool can_be_recommended_;
218 std::vector<std::string> supported_os_; 219 std::vector<std::string> supported_os_;
219 base::DictionaryValue test_policy_; 220 base::DictionaryValue test_policy_;
220 ScopedVector<PrefMapping> pref_mappings_; 221 std::vector<std::unique_ptr<PrefMapping>> pref_mappings_;
221 std::string indicator_selector_; 222 std::string indicator_selector_;
222 223
223 DISALLOW_COPY_AND_ASSIGN(PolicyTestCase); 224 DISALLOW_COPY_AND_ASSIGN(PolicyTestCase);
224 }; 225 };
225 226
226 // Parses all policy test cases and makes them available in a map. 227 // Parses all policy test cases and makes them available in a map.
227 class PolicyTestCases { 228 class PolicyTestCases {
228 public: 229 public:
229 typedef std::vector<PolicyTestCase*> PolicyTestCaseVector; 230 typedef std::vector<PolicyTestCase*> PolicyTestCaseVector;
230 typedef std::map<std::string, PolicyTestCaseVector> PolicyTestCaseMap; 231 typedef std::map<std::string, PolicyTestCaseVector> PolicyTestCaseMap;
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 bool check_for_recommended = true; 333 bool check_for_recommended = true;
333 pref_mapping_dict->GetBoolean("check_for_recommended", 334 pref_mapping_dict->GetBoolean("check_for_recommended",
334 &check_for_recommended); 335 &check_for_recommended);
335 std::string indicator_test_url; 336 std::string indicator_test_url;
336 pref_mapping_dict->GetString("indicator_test_url", &indicator_test_url); 337 pref_mapping_dict->GetString("indicator_test_url", &indicator_test_url);
337 std::string indicator_test_setup_js; 338 std::string indicator_test_setup_js;
338 pref_mapping_dict->GetString("indicator_test_setup_js", 339 pref_mapping_dict->GetString("indicator_test_setup_js",
339 &indicator_test_setup_js); 340 &indicator_test_setup_js);
340 std::string indicator_selector; 341 std::string indicator_selector;
341 pref_mapping_dict->GetString("indicator_selector", &indicator_selector); 342 pref_mapping_dict->GetString("indicator_selector", &indicator_selector);
342 PrefMapping* pref_mapping = new PrefMapping(pref, 343 auto pref_mapping = base::MakeUnique<PrefMapping>(
343 is_local_state, 344 pref, is_local_state, check_for_mandatory, check_for_recommended,
344 check_for_mandatory, 345 indicator_test_url, indicator_test_setup_js, indicator_selector);
345 check_for_recommended,
346 indicator_test_url,
347 indicator_test_setup_js,
348 indicator_selector);
349 const base::ListValue* indicator_tests = NULL; 346 const base::ListValue* indicator_tests = NULL;
350 if (pref_mapping_dict->GetList("indicator_tests", &indicator_tests)) { 347 if (pref_mapping_dict->GetList("indicator_tests", &indicator_tests)) {
351 for (size_t i = 0; i < indicator_tests->GetSize(); ++i) { 348 for (size_t i = 0; i < indicator_tests->GetSize(); ++i) {
352 const base::DictionaryValue* indicator_test_dict = NULL; 349 const base::DictionaryValue* indicator_test_dict = NULL;
353 const base::DictionaryValue* policy = NULL; 350 const base::DictionaryValue* policy = NULL;
354 if (!indicator_tests->GetDictionary(i, &indicator_test_dict) || 351 if (!indicator_tests->GetDictionary(i, &indicator_test_dict) ||
355 !indicator_test_dict->GetDictionary("policy", &policy)) { 352 !indicator_test_dict->GetDictionary("policy", &policy)) {
356 ADD_FAILURE() << "Malformed indicator_tests entry in " 353 ADD_FAILURE() << "Malformed indicator_tests entry in "
357 << "policy_test_cases.json."; 354 << "policy_test_cases.json.";
358 continue; 355 continue;
359 } 356 }
360 std::string value; 357 std::string value;
361 indicator_test_dict->GetString("value", &value); 358 indicator_test_dict->GetString("value", &value);
362 bool readonly = false; 359 bool readonly = false;
363 indicator_test_dict->GetBoolean("readonly", &readonly); 360 indicator_test_dict->GetBoolean("readonly", &readonly);
364 pref_mapping->AddIndicatorTestCase( 361 pref_mapping->AddIndicatorTestCase(
365 new IndicatorTestCase(*policy, value, readonly)); 362 base::MakeUnique<IndicatorTestCase>(*policy, value, readonly));
366 } 363 }
367 } 364 }
368 policy_test_case->AddPrefMapping(pref_mapping); 365 policy_test_case->AddPrefMapping(std::move(pref_mapping));
369 } 366 }
370 } 367 }
371 return policy_test_case; 368 return policy_test_case;
372 } 369 }
373 370
374 PolicyTestCaseMap policy_test_cases_; 371 PolicyTestCaseMap policy_test_cases_;
375 372
376 DISALLOW_COPY_AND_ASSIGN(PolicyTestCases); 373 DISALLOW_COPY_AND_ASSIGN(PolicyTestCases);
377 }; 374 };
378 375
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 PrefService* user_prefs = browser()->profile()->GetPrefs(); 547 PrefService* user_prefs = browser()->profile()->GetPrefs();
551 548
552 const PolicyTestCases test_cases; 549 const PolicyTestCases test_cases;
553 for (PolicyTestCases::iterator policy = test_cases.begin(); 550 for (PolicyTestCases::iterator policy = test_cases.begin();
554 policy != test_cases.end(); 551 policy != test_cases.end();
555 ++policy) { 552 ++policy) {
556 for (PolicyTestCases::PolicyTestCaseVector::const_iterator test_case = 553 for (PolicyTestCases::PolicyTestCaseVector::const_iterator test_case =
557 policy->second.begin(); 554 policy->second.begin();
558 test_case != policy->second.end(); 555 test_case != policy->second.end();
559 ++test_case) { 556 ++test_case) {
560 const ScopedVector<PrefMapping>& pref_mappings = 557 const auto& pref_mappings = (*test_case)->pref_mappings();
561 (*test_case)->pref_mappings();
562 if (!(*test_case)->IsSupported() || pref_mappings.empty()) 558 if (!(*test_case)->IsSupported() || pref_mappings.empty())
563 continue; 559 continue;
564 560
565 LOG(INFO) << "Testing policy: " << policy->first; 561 LOG(INFO) << "Testing policy: " << policy->first;
566 562
567 for (ScopedVector<PrefMapping>::const_iterator pref_mapping = 563 for (const auto& pref_mapping : pref_mappings) {
568 pref_mappings.begin();
569 pref_mapping != pref_mappings.end();
570 ++pref_mapping) {
571 // Skip Chrome OS preferences that use a different backend and cannot be 564 // Skip Chrome OS preferences that use a different backend and cannot be
572 // retrieved through the prefs mechanism. 565 // retrieved through the prefs mechanism.
573 if (base::StartsWith((*pref_mapping)->pref(), kCrosSettingsPrefix, 566 if (base::StartsWith(pref_mapping->pref(), kCrosSettingsPrefix,
574 base::CompareCase::SENSITIVE)) 567 base::CompareCase::SENSITIVE))
575 continue; 568 continue;
576 569
577 // Skip preferences that should not be checked when the policy is set to 570 // Skip preferences that should not be checked when the policy is set to
578 // a mandatory value. 571 // a mandatory value.
579 if (!(*pref_mapping)->check_for_mandatory()) 572 if (!pref_mapping->check_for_mandatory())
580 continue; 573 continue;
581 574
582 PrefService* prefs = 575 PrefService* prefs =
583 (*pref_mapping)->is_local_state() ? local_state : user_prefs; 576 pref_mapping->is_local_state() ? local_state : user_prefs;
584 // The preference must have been registered. 577 // The preference must have been registered.
585 const PrefService::Preference* pref = 578 const PrefService::Preference* pref =
586 prefs->FindPreference((*pref_mapping)->pref().c_str()); 579 prefs->FindPreference(pref_mapping->pref().c_str());
587 ASSERT_TRUE(pref); 580 ASSERT_TRUE(pref);
588 581
589 // Verify that setting the policy overrides the pref. 582 // Verify that setting the policy overrides the pref.
590 ClearProviderPolicy(); 583 ClearProviderPolicy();
591 prefs->ClearPref((*pref_mapping)->pref().c_str()); 584 prefs->ClearPref(pref_mapping->pref().c_str());
592 EXPECT_TRUE(pref->IsDefaultValue()); 585 EXPECT_TRUE(pref->IsDefaultValue());
593 EXPECT_TRUE(pref->IsUserModifiable()); 586 EXPECT_TRUE(pref->IsUserModifiable());
594 EXPECT_FALSE(pref->IsUserControlled()); 587 EXPECT_FALSE(pref->IsUserControlled());
595 EXPECT_FALSE(pref->IsManaged()); 588 EXPECT_FALSE(pref->IsManaged());
596 589
597 SetProviderPolicy((*test_case)->test_policy(), POLICY_LEVEL_MANDATORY); 590 SetProviderPolicy((*test_case)->test_policy(), POLICY_LEVEL_MANDATORY);
598 EXPECT_FALSE(pref->IsDefaultValue()); 591 EXPECT_FALSE(pref->IsDefaultValue());
599 EXPECT_FALSE(pref->IsUserModifiable()); 592 EXPECT_FALSE(pref->IsUserModifiable());
600 EXPECT_FALSE(pref->IsUserControlled()); 593 EXPECT_FALSE(pref->IsUserControlled());
601 EXPECT_TRUE(pref->IsManaged()); 594 EXPECT_TRUE(pref->IsManaged());
(...skipping 23 matching lines...) Expand all
625 test_cases.Get(*policy); 618 test_cases.Get(*policy);
626 ASSERT_TRUE(policy_test_cases) << "PolicyTestCase not found for " 619 ASSERT_TRUE(policy_test_cases) << "PolicyTestCase not found for "
627 << *policy; 620 << *policy;
628 for (std::vector<PolicyTestCase*>::const_iterator test_case = 621 for (std::vector<PolicyTestCase*>::const_iterator test_case =
629 policy_test_cases->begin(); 622 policy_test_cases->begin();
630 test_case != policy_test_cases->end(); 623 test_case != policy_test_cases->end();
631 ++test_case) { 624 ++test_case) {
632 PolicyTestCase* policy_test_case = *test_case; 625 PolicyTestCase* policy_test_case = *test_case;
633 if (!policy_test_case->IsSupported()) 626 if (!policy_test_case->IsSupported())
634 continue; 627 continue;
635 const ScopedVector<PrefMapping>& pref_mappings = 628 const auto& pref_mappings = policy_test_case->pref_mappings();
636 policy_test_case->pref_mappings();
637 if (policy_test_case->indicator_selector().empty()) { 629 if (policy_test_case->indicator_selector().empty()) {
638 bool has_pref_indicator_tests = false; 630 bool has_pref_indicator_tests = false;
639 for (ScopedVector<PrefMapping>::const_iterator pref_mapping = 631 for (const auto& pref_mapping : pref_mappings) {
640 pref_mappings.begin();
641 pref_mapping != pref_mappings.end();
642 ++pref_mapping) {
643 PrefService* prefs = 632 PrefService* prefs =
644 (*pref_mapping)->is_local_state() ? local_state : user_prefs; 633 pref_mapping->is_local_state() ? local_state : user_prefs;
645 if (prefs->FindPreference((*pref_mapping)->pref())) 634 if (prefs->FindPreference(pref_mapping->pref()))
646 prefs->ClearPref((*pref_mapping)->pref()); 635 prefs->ClearPref(pref_mapping->pref());
647 if (!(*pref_mapping)->indicator_test_cases().empty()) { 636 if (!pref_mapping->indicator_test_cases().empty()) {
648 has_pref_indicator_tests = true; 637 has_pref_indicator_tests = true;
649 break; 638 break;
650 } 639 }
651 } 640 }
652 if (!has_pref_indicator_tests) 641 if (!has_pref_indicator_tests)
653 continue; 642 continue;
654 } 643 }
655 644
656 LOG(INFO) << "Testing policy: " << *policy; 645 LOG(INFO) << "Testing policy: " << *policy;
657 646
(...skipping 21 matching lines...) Expand all
679 // enforced value is removed. 668 // enforced value is removed.
680 ClearProviderPolicy(); 669 ClearProviderPolicy();
681 VerifyControlledSettingIndicators( 670 VerifyControlledSettingIndicators(
682 browser(), 671 browser(),
683 policy_test_case->indicator_selector(), 672 policy_test_case->indicator_selector(),
684 std::string(), 673 std::string(),
685 std::string(), 674 std::string(),
686 false); 675 false);
687 } 676 }
688 677
689 for (ScopedVector<PrefMapping>::const_iterator 678 for (const auto& pref_mapping : pref_mappings) {
690 pref_mapping = pref_mappings.begin(); 679 const auto& indicator_test_cases = pref_mapping->indicator_test_cases();
691 pref_mapping != pref_mappings.end();
692 ++pref_mapping) {
693 const ScopedVector<IndicatorTestCase>& indicator_test_cases =
694 (*pref_mapping)->indicator_test_cases();
695 if (indicator_test_cases.empty()) 680 if (indicator_test_cases.empty())
696 continue; 681 continue;
697 682
698 if (!(*pref_mapping)->indicator_test_setup_js().empty()) { 683 if (!pref_mapping->indicator_test_setup_js().empty()) {
699 ASSERT_TRUE(content::ExecuteScript( 684 ASSERT_TRUE(content::ExecuteScript(
700 browser()->tab_strip_model()->GetActiveWebContents(), 685 browser()->tab_strip_model()->GetActiveWebContents(),
701 (*pref_mapping)->indicator_test_setup_js())); 686 pref_mapping->indicator_test_setup_js()));
702 } 687 }
703 688
704 // A non-empty indicator_test_url is expected to be used in very 689 // A non-empty indicator_test_url is expected to be used in very
705 // few cases, so it's currently implemented by navigating to the URL 690 // few cases, so it's currently implemented by navigating to the URL
706 // right before the test and navigating back afterwards. 691 // right before the test and navigating back afterwards.
707 // If you introduce many test cases with the same non-empty 692 // If you introduce many test cases with the same non-empty
708 // indicator_test_url, this would be inefficient. We could consider 693 // indicator_test_url, this would be inefficient. We could consider
709 // navigting to a specific indicator_test_url once for many test cases 694 // navigting to a specific indicator_test_url once for many test cases
710 // instead. 695 // instead.
711 if (!(*pref_mapping)->indicator_test_url().empty()) { 696 if (!pref_mapping->indicator_test_url().empty()) {
712 ui_test_utils::NavigateToURL( 697 ui_test_utils::NavigateToURL(
713 browser(), GURL((*pref_mapping)->indicator_test_url())); 698 browser(), GURL(pref_mapping->indicator_test_url()));
714 } 699 }
715 700
716 std::string indicator_selector = (*pref_mapping)->indicator_selector(); 701 std::string indicator_selector = pref_mapping->indicator_selector();
717 if (indicator_selector.empty()) 702 if (indicator_selector.empty())
718 indicator_selector = "[pref=\"" + (*pref_mapping)->pref() + "\"]"; 703 indicator_selector = "[pref=\"" + pref_mapping->pref() + "\"]";
719 for (ScopedVector<IndicatorTestCase>::const_iterator 704 for (auto indicator_test_case = indicator_test_cases.begin();
720 indicator_test_case = indicator_test_cases.begin();
721 indicator_test_case != indicator_test_cases.end(); 705 indicator_test_case != indicator_test_cases.end();
722 ++indicator_test_case) { 706 ++indicator_test_case) {
723 // Check that no controlled setting indicator is visible when no value 707 // Check that no controlled setting indicator is visible when no value
724 // is set by policy. 708 // is set by policy.
725 ClearProviderPolicy(); 709 ClearProviderPolicy();
726 VerifyControlledSettingIndicators(browser(), 710 VerifyControlledSettingIndicators(browser(),
727 indicator_selector, 711 indicator_selector,
728 std::string(), 712 std::string(),
729 std::string(), 713 std::string(),
730 false); 714 false);
731 715
732 if ((*pref_mapping)->check_for_mandatory()) { 716 if (pref_mapping->check_for_mandatory()) {
733 // Check that the appropriate controlled setting indicator is shown 717 // Check that the appropriate controlled setting indicator is shown
734 // when a value is enforced by policy. 718 // when a value is enforced by policy.
735 SetProviderPolicy((*indicator_test_case)->policy(), 719 SetProviderPolicy((*indicator_test_case)->policy(),
736 POLICY_LEVEL_MANDATORY); 720 POLICY_LEVEL_MANDATORY);
737 721
738 VerifyControlledSettingIndicators( 722 VerifyControlledSettingIndicators(
739 browser(), 723 browser(),
740 indicator_selector, 724 indicator_selector,
741 (*indicator_test_case)->value(), 725 (*indicator_test_case)->value(),
742 "policy", 726 "policy",
743 (*indicator_test_case)->readonly()); 727 (*indicator_test_case)->readonly());
744 } 728 }
745 729
746 if (!policy_test_case->can_be_recommended() || 730 if (!policy_test_case->can_be_recommended() ||
747 !(*pref_mapping)->check_for_recommended()) { 731 !pref_mapping->check_for_recommended()) {
748 continue; 732 continue;
749 } 733 }
750 734
751 PrefService* prefs = 735 PrefService* prefs =
752 (*pref_mapping)->is_local_state() ? local_state : user_prefs; 736 pref_mapping->is_local_state() ? local_state : user_prefs;
753 // The preference must have been registered. 737 // The preference must have been registered.
754 const PrefService::Preference* pref = 738 const PrefService::Preference* pref =
755 prefs->FindPreference((*pref_mapping)->pref().c_str()); 739 prefs->FindPreference(pref_mapping->pref().c_str());
756 ASSERT_TRUE(pref); 740 ASSERT_TRUE(pref);
757 741
758 // Check that the appropriate controlled setting indicator is shown 742 // Check that the appropriate controlled setting indicator is shown
759 // when a value is recommended by policy and the user has not 743 // when a value is recommended by policy and the user has not
760 // overridden the recommendation. 744 // overridden the recommendation.
761 SetProviderPolicy((*indicator_test_case)->policy(), 745 SetProviderPolicy((*indicator_test_case)->policy(),
762 POLICY_LEVEL_RECOMMENDED); 746 POLICY_LEVEL_RECOMMENDED);
763 VerifyControlledSettingIndicators(browser(), 747 VerifyControlledSettingIndicators(browser(),
764 indicator_selector, 748 indicator_selector,
765 (*indicator_test_case)->value(), 749 (*indicator_test_case)->value(),
766 "recommended", 750 "recommended",
767 (*indicator_test_case)->readonly()); 751 (*indicator_test_case)->readonly());
768 // Check that the appropriate controlled setting indicator is shown 752 // Check that the appropriate controlled setting indicator is shown
769 // when a value is recommended by policy and the user has overridden 753 // when a value is recommended by policy and the user has overridden
770 // the recommendation. 754 // the recommendation.
771 prefs->Set((*pref_mapping)->pref().c_str(), *pref->GetValue()); 755 prefs->Set(pref_mapping->pref().c_str(), *pref->GetValue());
772 VerifyControlledSettingIndicators(browser(), 756 VerifyControlledSettingIndicators(browser(),
773 indicator_selector, 757 indicator_selector,
774 (*indicator_test_case)->value(), 758 (*indicator_test_case)->value(),
775 "hasRecommendation", 759 "hasRecommendation",
776 (*indicator_test_case)->readonly()); 760 (*indicator_test_case)->readonly());
777 prefs->ClearPref((*pref_mapping)->pref().c_str()); 761 prefs->ClearPref(pref_mapping->pref().c_str());
778 } 762 }
779 763
780 if (!(*pref_mapping)->indicator_test_url().empty()) 764 if (!pref_mapping->indicator_test_url().empty())
781 ui_test_utils::NavigateToURL(browser(), GURL(kMainSettingsPage)); 765 ui_test_utils::NavigateToURL(browser(), GURL(kMainSettingsPage));
782 } 766 }
783 } 767 }
784 } 768 }
785 } 769 }
786 770
787 INSTANTIATE_TEST_CASE_P(PolicyPrefIndicatorTestInstance, 771 INSTANTIATE_TEST_CASE_P(PolicyPrefIndicatorTestInstance,
788 PolicyPrefIndicatorTest, 772 PolicyPrefIndicatorTest,
789 testing::ValuesIn(SplitPoliciesIntoChunks(10))); 773 testing::ValuesIn(SplitPoliciesIntoChunks(10)));
790 774
791 } // namespace policy 775 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/net/quota_policy_channel_id_store_unittest.cc ('k') | chrome/browser/predictors/resource_prefetcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698