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

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

Issue 304183007: Added ProfilePolicyConnector::IsFromCloudPolicy(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/policy/profile_policy_connector_stub.cc ('k') | chrome/chrome_tests_unit.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/policy/profile_policy_connector.h"
6
7 #include "base/message_loop/message_loop.h"
8 #include "base/run_loop.h"
9 #include "base/values.h"
10 #include "chrome/test/base/testing_browser_process.h"
11 #include "components/autofill/core/common/autofill_pref_names.h"
12 #include "components/policy/core/browser/browser_policy_connector.h"
13 #include "components/policy/core/common/cloud/cloud_policy_constants.h"
14 #include "components/policy/core/common/cloud/cloud_policy_manager.h"
15 #include "components/policy/core/common/cloud/mock_cloud_policy_store.h"
16 #include "components/policy/core/common/mock_configuration_policy_provider.h"
17 #include "components/policy/core/common/policy_bundle.h"
18 #include "components/policy/core/common/policy_map.h"
19 #include "components/policy/core/common/policy_service.h"
20 #include "components/policy/core/common/schema_registry.h"
21 #include "policy/policy_constants.h"
22 #include "testing/gmock/include/gmock/gmock.h"
23 #include "testing/gtest/include/gtest/gtest.h"
24
25 using testing::Return;
26 using testing::_;
27
28 namespace policy {
29
30 class ProfilePolicyConnectorTest : public testing::Test {
31 protected:
32 ProfilePolicyConnectorTest() {}
33 virtual ~ProfilePolicyConnectorTest() {}
34
35 virtual void SetUp() OVERRIDE {
36 // This must be set up before the TestingBrowserProcess is created.
37 BrowserPolicyConnector::SetPolicyProviderForTesting(&mock_provider_);
38
39 EXPECT_CALL(mock_provider_, IsInitializationComplete(_))
40 .WillRepeatedly(Return(true));
41
42 cloud_policy_store_.NotifyStoreLoaded();
43 cloud_policy_manager_.reset(
44 new CloudPolicyManager(PolicyNamespaceKey("", ""),
45 &cloud_policy_store_,
46 loop_.message_loop_proxy(),
47 loop_.message_loop_proxy(),
48 loop_.message_loop_proxy()));
49 }
50
51 virtual void TearDown() {
52 TestingBrowserProcess::GetGlobal()->SetBrowserPolicyConnector(NULL);
53 cloud_policy_manager_->Shutdown();
54 }
55
56 base::MessageLoop loop_;
57 SchemaRegistry schema_registry_;
58 MockConfigurationPolicyProvider mock_provider_;
59 MockCloudPolicyStore cloud_policy_store_;
60 scoped_ptr<CloudPolicyManager> cloud_policy_manager_;
61 };
62
63 TEST_F(ProfilePolicyConnectorTest, IsPolicyFromCloudPolicy) {
64 ProfilePolicyConnector connector;
65 connector.Init(false,
66 #if defined(OS_CHROMEOS)
67 NULL,
68 #endif
69 &schema_registry_,
70 cloud_policy_manager_.get());
71
72 // No policy is set initially.
73 EXPECT_FALSE(
74 connector.IsPolicyFromCloudPolicy(autofill::prefs::kAutofillEnabled));
75 PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, "");
76 EXPECT_FALSE(connector.policy_service()->GetPolicies(chrome_ns).GetValue(
77 key::kAutoFillEnabled));
78
79 // Set the policy at the cloud provider.
80 cloud_policy_store_.policy_map_.Set(key::kAutoFillEnabled,
81 POLICY_LEVEL_MANDATORY,
82 POLICY_SCOPE_USER,
83 new base::FundamentalValue(false),
84 NULL);
85 cloud_policy_store_.NotifyStoreLoaded();
86 base::RunLoop().RunUntilIdle();
87 EXPECT_TRUE(connector.IsPolicyFromCloudPolicy(key::kAutoFillEnabled));
88 const base::Value* value =
89 connector.policy_service()->GetPolicies(chrome_ns).GetValue(
90 key::kAutoFillEnabled);
91 ASSERT_TRUE(value);
92 EXPECT_TRUE(base::FundamentalValue(false).Equals(value));
93
94 // Now test with a higher-priority provider also setting the policy.
95 PolicyMap map;
96 map.Set(key::kAutoFillEnabled,
97 POLICY_LEVEL_MANDATORY,
98 POLICY_SCOPE_USER,
99 new base::FundamentalValue(true),
100 NULL);
101 mock_provider_.UpdateChromePolicy(map);
102 EXPECT_FALSE(connector.IsPolicyFromCloudPolicy(key::kAutoFillEnabled));
103 value = connector.policy_service()->GetPolicies(chrome_ns).GetValue(
104 key::kAutoFillEnabled);
105 ASSERT_TRUE(value);
106 EXPECT_TRUE(base::FundamentalValue(true).Equals(value));
107
108 // Cleanup.
109 connector.Shutdown();
110 }
111
112 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/profile_policy_connector_stub.cc ('k') | chrome/chrome_tests_unit.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698