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