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/managed_mode.h" | 5 #include "chrome/browser/managed_mode.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 | 29 |
30 void set_should_cancel_enter(bool should_cancel_enter) { | 30 void set_should_cancel_enter(bool should_cancel_enter) { |
31 should_cancel_enter_ = should_cancel_enter; | 31 should_cancel_enter_ = should_cancel_enter; |
32 } | 32 } |
33 | 33 |
34 void EnterManagedModeForTesting(Profile* profile, | 34 void EnterManagedModeForTesting(Profile* profile, |
35 const base::Callback<void(bool)>& callback) { | 35 const base::Callback<void(bool)>& callback) { |
36 EnterManagedModeImpl(profile, callback); | 36 EnterManagedModeImpl(profile, callback); |
37 } | 37 } |
38 | 38 |
| 39 void ForceManagedModeForTesting(Profile* profile) { |
| 40 SetInManagedMode(true, profile); |
| 41 } |
| 42 |
39 // ManagedMode overrides: | 43 // ManagedMode overrides: |
40 virtual bool IsInManagedModeImpl() OVERRIDE { | 44 virtual bool IsInManagedModeImpl() const OVERRIDE { |
41 return in_managed_mode_; | 45 return in_managed_mode_; |
42 } | 46 } |
43 | 47 |
44 virtual void SetInManagedMode(bool in_managed_mode) OVERRIDE { | 48 virtual void SetInManagedMode(bool in_managed_mode, |
| 49 Profile* newly_managed_profile) OVERRIDE { |
| 50 if (in_managed_mode) |
| 51 ASSERT_TRUE(newly_managed_profile); |
| 52 managed_profile_ = newly_managed_profile; |
45 in_managed_mode_ = in_managed_mode; | 53 in_managed_mode_ = in_managed_mode; |
46 } | 54 } |
47 | 55 |
48 virtual bool PlatformConfirmEnter() OVERRIDE { | 56 virtual bool PlatformConfirmEnter() OVERRIDE { |
49 return !should_cancel_enter_; | 57 return !should_cancel_enter_; |
50 } | 58 } |
51 | 59 |
52 virtual bool PlatformConfirmLeave() OVERRIDE { | 60 virtual bool PlatformConfirmLeave() OVERRIDE { |
53 return true; | 61 return true; |
54 } | 62 } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 FakeManagedMode* managed_mode_; | 97 FakeManagedMode* managed_mode_; |
90 }; | 98 }; |
91 | 99 |
92 class MockCallback : public base::RefCountedThreadSafe<MockCallback> { | 100 class MockCallback : public base::RefCountedThreadSafe<MockCallback> { |
93 public: | 101 public: |
94 explicit MockCallback(FakeManagedMode* managed_mode) | 102 explicit MockCallback(FakeManagedMode* managed_mode) |
95 : managed_mode_(managed_mode) { | 103 : managed_mode_(managed_mode) { |
96 } | 104 } |
97 | 105 |
98 void CheckManagedMode(bool success) { | 106 void CheckManagedMode(bool success) { |
99 EXPECT_EQ(managed_mode_->IsInManagedModeImpl(), success); | 107 EXPECT_EQ(success, managed_mode_->IsInManagedModeImpl()); |
100 DidEnterManagedMode(success); | 108 DidEnterManagedMode(success); |
101 } | 109 } |
102 | 110 |
103 MOCK_METHOD1(DidEnterManagedMode, void(bool)); | 111 MOCK_METHOD1(DidEnterManagedMode, void(bool)); |
104 | 112 |
105 protected: | 113 protected: |
106 virtual ~MockCallback() {} | 114 virtual ~MockCallback() {} |
107 | 115 |
108 private: | 116 private: |
109 friend class base::RefCountedThreadSafe<MockCallback>; | 117 friend class base::RefCountedThreadSafe<MockCallback>; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 // If there are no browsers belonging to a different profile, entering should | 152 // If there are no browsers belonging to a different profile, entering should |
145 // immediately succeed. | 153 // immediately succeed. |
146 managed_mode_.EnterManagedModeForTesting(&managed_mode_profile_, | 154 managed_mode_.EnterManagedModeForTesting(&managed_mode_profile_, |
147 CreateExpectedCallback(true)); | 155 CreateExpectedCallback(true)); |
148 } | 156 } |
149 | 157 |
150 TEST_F(ManagedModeTest, AlreadyInManagedMode) { | 158 TEST_F(ManagedModeTest, AlreadyInManagedMode) { |
151 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); | 159 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); |
152 BrowserFixture other_browser(&managed_mode_, &other_profile_); | 160 BrowserFixture other_browser(&managed_mode_, &other_profile_); |
153 | 161 |
154 // If we're already in managed mode, entering should immediately succeed. | 162 // If we're already in managed mode in this profile, entering should |
155 managed_mode_.SetInManagedMode(true); | 163 // immediately succeed. |
| 164 managed_mode_.ForceManagedModeForTesting(&managed_mode_profile_); |
156 managed_mode_.EnterManagedModeForTesting(&managed_mode_profile_, | 165 managed_mode_.EnterManagedModeForTesting(&managed_mode_profile_, |
157 CreateExpectedCallback(true)); | 166 CreateExpectedCallback(true)); |
158 } | 167 } |
159 | 168 |
160 TEST_F(ManagedModeTest, QueueRequests) { | 169 TEST_F(ManagedModeTest, QueueRequests) { |
161 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); | 170 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); |
162 | 171 |
163 // Keep this before the other browser is constructed, so we verify its | 172 // Keep this before the other browser is constructed, so we verify its |
164 // expectations after the browser is destroyed. | 173 // expectations after the browser is destroyed. |
165 scoped_refptr<MockCallback> callback = CreateCallback(); | 174 scoped_refptr<MockCallback> callback = CreateCallback(); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 | 230 |
222 TEST_F(ManagedModeTest, Cancelled) { | 231 TEST_F(ManagedModeTest, Cancelled) { |
223 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); | 232 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); |
224 BrowserFixture other_browser(&managed_mode_, &other_profile_); | 233 BrowserFixture other_browser(&managed_mode_, &other_profile_); |
225 | 234 |
226 // If the user cancelled entering managed mode, it should fail immediately. | 235 // If the user cancelled entering managed mode, it should fail immediately. |
227 managed_mode_.set_should_cancel_enter(true); | 236 managed_mode_.set_should_cancel_enter(true); |
228 managed_mode_.EnterManagedModeForTesting(&managed_mode_profile_, | 237 managed_mode_.EnterManagedModeForTesting(&managed_mode_profile_, |
229 CreateExpectedCallback(false)); | 238 CreateExpectedCallback(false)); |
230 } | 239 } |
| 240 |
| 241 TEST_F(ManagedModeTest, ExtensionManagementPolicyProvider) { |
| 242 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); |
| 243 |
| 244 EXPECT_TRUE(managed_mode_.UserMayLoad(NULL, NULL)); |
| 245 EXPECT_TRUE(managed_mode_.UserMayModifySettings(NULL, NULL)); |
| 246 |
| 247 managed_mode_.ForceManagedModeForTesting(&managed_mode_profile_); |
| 248 EXPECT_FALSE(managed_mode_.UserMayLoad(NULL, NULL)); |
| 249 EXPECT_FALSE(managed_mode_.UserMayModifySettings(NULL, NULL)); |
| 250 |
| 251 EXPECT_FALSE(managed_mode_.GetDebugPolicyProviderName().empty()); |
| 252 } |
OLD | NEW |