| 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/managed_mode.h" | 5 #include "chrome/browser/managed_mode/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 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 ui_thread_(content::BrowserThread::UI, &message_loop_), | 122 ui_thread_(content::BrowserThread::UI, &message_loop_), |
| 123 io_thread_(content::BrowserThread::IO, &message_loop_) { | 123 io_thread_(content::BrowserThread::IO, &message_loop_) { |
| 124 } | 124 } |
| 125 | 125 |
| 126 scoped_refptr<MockCallback> CreateCallback() { | 126 scoped_refptr<MockCallback> CreateCallback() { |
| 127 return new StrictMock<MockCallback>(&managed_mode_); | 127 return new StrictMock<MockCallback>(&managed_mode_); |
| 128 } | 128 } |
| 129 | 129 |
| 130 base::Callback<void(bool)> CreateExpectedCallback(bool success) { | 130 base::Callback<void(bool)> CreateExpectedCallback(bool success) { |
| 131 scoped_refptr<MockCallback> callback = CreateCallback(); | 131 scoped_refptr<MockCallback> callback = CreateCallback(); |
| 132 EXPECT_CALL(*callback, DidEnterManagedMode(success)); | 132 EXPECT_CALL(*callback.get(), DidEnterManagedMode(success)); |
| 133 return base::Bind(&MockCallback::CheckManagedMode, callback); | 133 return base::Bind(&MockCallback::CheckManagedMode, callback); |
| 134 } | 134 } |
| 135 | 135 |
| 136 protected: | 136 protected: |
| 137 base::MessageLoop message_loop_; | 137 base::MessageLoop message_loop_; |
| 138 content::TestBrowserThread ui_thread_; | 138 content::TestBrowserThread ui_thread_; |
| 139 content::TestBrowserThread io_thread_; | 139 content::TestBrowserThread io_thread_; |
| 140 TestingProfile managed_mode_profile_; | 140 TestingProfile managed_mode_profile_; |
| 141 TestingProfile other_profile_; | 141 TestingProfile other_profile_; |
| 142 FakeManagedMode managed_mode_; | 142 FakeManagedMode managed_mode_; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 171 BrowserFixture other_browser(&managed_mode_, &other_profile_); | 171 BrowserFixture other_browser(&managed_mode_, &other_profile_); |
| 172 | 172 |
| 173 EXPECT_CALL(*other_browser.window(), Close()); | 173 EXPECT_CALL(*other_browser.window(), Close()); |
| 174 managed_mode_.EnterManagedModeForTesting( | 174 managed_mode_.EnterManagedModeForTesting( |
| 175 &managed_mode_profile_, | 175 &managed_mode_profile_, |
| 176 base::Bind(&MockCallback::CheckManagedMode, callback)); | 176 base::Bind(&MockCallback::CheckManagedMode, callback)); |
| 177 managed_mode_.EnterManagedModeForTesting( | 177 managed_mode_.EnterManagedModeForTesting( |
| 178 &managed_mode_profile_, | 178 &managed_mode_profile_, |
| 179 base::Bind(&MockCallback::CheckManagedMode, callback)); | 179 base::Bind(&MockCallback::CheckManagedMode, callback)); |
| 180 // The callbacks should run as soon as |other_browser| is closed. | 180 // The callbacks should run as soon as |other_browser| is closed. |
| 181 EXPECT_CALL(*callback, DidEnterManagedMode(true)).Times(2); | 181 EXPECT_CALL(*callback.get(), DidEnterManagedMode(true)).Times(2); |
| 182 } | 182 } |
| 183 | 183 |
| 184 TEST_F(ManagedModeTest, OpenNewBrowser) { | 184 TEST_F(ManagedModeTest, OpenNewBrowser) { |
| 185 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); | 185 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); |
| 186 BrowserFixture other_browser(&managed_mode_, &other_profile_); | 186 BrowserFixture other_browser(&managed_mode_, &other_profile_); |
| 187 | 187 |
| 188 scoped_refptr<MockCallback> callback = CreateCallback(); | 188 scoped_refptr<MockCallback> callback = CreateCallback(); |
| 189 EXPECT_CALL(*other_browser.window(), Close()); | 189 EXPECT_CALL(*other_browser.window(), Close()); |
| 190 managed_mode_.EnterManagedModeForTesting( | 190 managed_mode_.EnterManagedModeForTesting( |
| 191 &managed_mode_profile_, | 191 &managed_mode_profile_, |
| 192 base::Bind(&MockCallback::CheckManagedMode, callback)); | 192 base::Bind(&MockCallback::CheckManagedMode, callback)); |
| 193 | 193 |
| 194 // Opening another browser with the managed profile should not cancel entering | 194 // Opening another browser with the managed profile should not cancel entering |
| 195 // managed mode. | 195 // managed mode. |
| 196 BrowserFixture other_managed_mode_browser(&managed_mode_, | 196 BrowserFixture other_managed_mode_browser(&managed_mode_, |
| 197 &managed_mode_profile_); | 197 &managed_mode_profile_); |
| 198 | 198 |
| 199 // Opening another browser should cancel entering managed mode. | 199 // Opening another browser should cancel entering managed mode. |
| 200 EXPECT_CALL(*callback, DidEnterManagedMode(false)); | 200 EXPECT_CALL(*callback.get(), DidEnterManagedMode(false)); |
| 201 BrowserFixture yet_another_browser(&managed_mode_, &other_profile_); | 201 BrowserFixture yet_another_browser(&managed_mode_, &other_profile_); |
| 202 } | 202 } |
| 203 | 203 |
| 204 TEST_F(ManagedModeTest, DifferentProfile) { | 204 TEST_F(ManagedModeTest, DifferentProfile) { |
| 205 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); | 205 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); |
| 206 | 206 |
| 207 // Keep this before the other browser is constructed, so we verify its | 207 // Keep this before the other browser is constructed, so we verify its |
| 208 // expectations after the browser is destroyed. | 208 // expectations after the browser is destroyed. |
| 209 scoped_refptr<MockCallback> callback = CreateCallback(); | 209 scoped_refptr<MockCallback> callback = CreateCallback(); |
| 210 BrowserFixture other_browser(&managed_mode_, &other_profile_); | 210 BrowserFixture other_browser(&managed_mode_, &other_profile_); |
| 211 | 211 |
| 212 EXPECT_CALL(*other_browser.window(), Close()); | 212 EXPECT_CALL(*other_browser.window(), Close()); |
| 213 managed_mode_.EnterManagedModeForTesting( | 213 managed_mode_.EnterManagedModeForTesting( |
| 214 &managed_mode_profile_, | 214 &managed_mode_profile_, |
| 215 base::Bind(&MockCallback::CheckManagedMode, callback)); | 215 base::Bind(&MockCallback::CheckManagedMode, callback)); |
| 216 | 216 |
| 217 // Trying to enter managed mode with a different profile should fail | 217 // Trying to enter managed mode with a different profile should fail |
| 218 // immediately. | 218 // immediately. |
| 219 managed_mode_.EnterManagedModeForTesting(&other_profile_, | 219 managed_mode_.EnterManagedModeForTesting(&other_profile_, |
| 220 CreateExpectedCallback(false)); | 220 CreateExpectedCallback(false)); |
| 221 | 221 |
| 222 // The first request should still succeed as soon as the other browser is | 222 // The first request should still succeed as soon as the other browser is |
| 223 // closed. | 223 // closed. |
| 224 EXPECT_CALL(*callback, DidEnterManagedMode(true)); | 224 EXPECT_CALL(*callback.get(), DidEnterManagedMode(true)); |
| 225 } | 225 } |
| 226 | 226 |
| 227 TEST_F(ManagedModeTest, Cancelled) { | 227 TEST_F(ManagedModeTest, Cancelled) { |
| 228 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); | 228 BrowserFixture managed_mode_browser(&managed_mode_, &managed_mode_profile_); |
| 229 BrowserFixture other_browser(&managed_mode_, &other_profile_); | 229 BrowserFixture other_browser(&managed_mode_, &other_profile_); |
| 230 | 230 |
| 231 // If the user cancelled entering managed mode, it should fail immediately. | 231 // If the user cancelled entering managed mode, it should fail immediately. |
| 232 managed_mode_.set_should_cancel_enter(true); | 232 managed_mode_.set_should_cancel_enter(true); |
| 233 managed_mode_.EnterManagedModeForTesting(&managed_mode_profile_, | 233 managed_mode_.EnterManagedModeForTesting(&managed_mode_profile_, |
| 234 CreateExpectedCallback(false)); | 234 CreateExpectedCallback(false)); |
| 235 } | 235 } |
| OLD | NEW |