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