| 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 |