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