| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/signin/chrome_signin_client.h" | 5 #include "chrome/browser/signin/chrome_signin_client.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 } | 126 } |
| 127 | 127 |
| 128 #if !defined(OS_ANDROID) | 128 #if !defined(OS_ANDROID) |
| 129 | 129 |
| 130 class MockChromeSigninClient : public ChromeSigninClient { | 130 class MockChromeSigninClient : public ChromeSigninClient { |
| 131 public: | 131 public: |
| 132 MockChromeSigninClient(Profile* profile, SigninErrorController* controller) | 132 MockChromeSigninClient(Profile* profile, SigninErrorController* controller) |
| 133 : ChromeSigninClient(profile, controller) {} | 133 : ChromeSigninClient(profile, controller) {} |
| 134 | 134 |
| 135 MOCK_METHOD1(ShowUserManager, void(const base::FilePath&)); | 135 MOCK_METHOD1(ShowUserManager, void(const base::FilePath&)); |
| 136 MOCK_METHOD1(LockProfile, void(const base::FilePath&)); | 136 MOCK_METHOD1(LockForceSigninProfile, void(const base::FilePath&)); |
| 137 }; | 137 }; |
| 138 | 138 |
| 139 class MockSigninManager : public SigninManager { | 139 class MockSigninManager : public SigninManager { |
| 140 public: | 140 public: |
| 141 explicit MockSigninManager(SigninClient* client) | 141 explicit MockSigninManager(SigninClient* client) |
| 142 : SigninManager(client, nullptr, &fake_service_, nullptr) {} | 142 : SigninManager(client, nullptr, &fake_service_, nullptr) {} |
| 143 | 143 |
| 144 MOCK_METHOD2(DoSignOut, | 144 MOCK_METHOD2(DoSignOut, |
| 145 void(signin_metrics::ProfileSignout, | 145 void(signin_metrics::ProfileSignout, |
| 146 signin_metrics::SignoutDelete)); | 146 signin_metrics::SignoutDelete)); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 }; | 180 }; |
| 181 | 181 |
| 182 TEST_F(ChromeSigninClientSignoutTest, SignOut) { | 182 TEST_F(ChromeSigninClientSignoutTest, SignOut) { |
| 183 signin_metrics::ProfileSignout source_metric = | 183 signin_metrics::ProfileSignout source_metric = |
| 184 signin_metrics::ProfileSignout::SIGNOUT_TEST; | 184 signin_metrics::ProfileSignout::SIGNOUT_TEST; |
| 185 signin_metrics::SignoutDelete delete_metric = | 185 signin_metrics::SignoutDelete delete_metric = |
| 186 signin_metrics::SignoutDelete::IGNORE_METRIC; | 186 signin_metrics::SignoutDelete::IGNORE_METRIC; |
| 187 | 187 |
| 188 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) | 188 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) |
| 189 .Times(1); | 189 .Times(1); |
| 190 EXPECT_CALL(*client_, LockProfile(browser()->profile()->GetPath())).Times(1); | 190 EXPECT_CALL(*client_, LockForceSigninProfile(browser()->profile()->GetPath())) |
| 191 .Times(1); |
| 191 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); | 192 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); |
| 192 | 193 |
| 193 manager_->SignOut(source_metric, delete_metric); | 194 manager_->SignOut(source_metric, delete_metric); |
| 194 } | 195 } |
| 195 | 196 |
| 196 TEST_F(ChromeSigninClientSignoutTest, SignOutWithoutManager) { | 197 TEST_F(ChromeSigninClientSignoutTest, SignOutWithoutManager) { |
| 197 signin_metrics::ProfileSignout source_metric = | 198 signin_metrics::ProfileSignout source_metric = |
| 198 signin_metrics::ProfileSignout::SIGNOUT_TEST; | 199 signin_metrics::ProfileSignout::SIGNOUT_TEST; |
| 199 signin_metrics::SignoutDelete delete_metric = | 200 signin_metrics::SignoutDelete delete_metric = |
| 200 signin_metrics::SignoutDelete::IGNORE_METRIC; | 201 signin_metrics::SignoutDelete::IGNORE_METRIC; |
| 201 | 202 |
| 202 MockSigninManager other_manager(client_.get()); | 203 MockSigninManager other_manager(client_.get()); |
| 203 other_manager.CopyCredentialsFrom(*manager_.get()); | 204 other_manager.CopyCredentialsFrom(*manager_.get()); |
| 204 | 205 |
| 205 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) | 206 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) |
| 206 .Times(0); | 207 .Times(0); |
| 207 EXPECT_CALL(*client_, LockProfile(browser()->profile()->GetPath())).Times(1); | 208 EXPECT_CALL(*client_, LockForceSigninProfile(browser()->profile()->GetPath())) |
| 209 .Times(1); |
| 208 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); | 210 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); |
| 209 manager_->SignOut(source_metric, delete_metric); | 211 manager_->SignOut(source_metric, delete_metric); |
| 210 | 212 |
| 211 ::testing::Mock::VerifyAndClearExpectations(manager_.get()); | 213 ::testing::Mock::VerifyAndClearExpectations(manager_.get()); |
| 212 | 214 |
| 213 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) | 215 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) |
| 214 .Times(1); | 216 .Times(1); |
| 215 EXPECT_CALL(*client_, LockProfile(browser()->profile()->GetPath())).Times(1); | 217 EXPECT_CALL(*client_, LockForceSigninProfile(browser()->profile()->GetPath())) |
| 218 .Times(1); |
| 216 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); | 219 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); |
| 217 manager_->SignOut(source_metric, delete_metric); | 220 manager_->SignOut(source_metric, delete_metric); |
| 218 } | 221 } |
| 219 | 222 |
| 220 TEST_F(ChromeSigninClientSignoutTest, SignOutWithoutForceSignin) { | 223 TEST_F(ChromeSigninClientSignoutTest, SignOutWithoutForceSignin) { |
| 221 prefs_->SetBoolean(prefs::kForceBrowserSignin, false); | 224 prefs_->SetBoolean(prefs::kForceBrowserSignin, false); |
| 222 CreateClient(browser()->profile()); | 225 CreateClient(browser()->profile()); |
| 223 manager_.reset(new MockSigninManager(client_.get())); | 226 manager_.reset(new MockSigninManager(client_.get())); |
| 224 | 227 |
| 225 signin_metrics::ProfileSignout source_metric = | 228 signin_metrics::ProfileSignout source_metric = |
| 226 signin_metrics::ProfileSignout::SIGNOUT_TEST; | 229 signin_metrics::ProfileSignout::SIGNOUT_TEST; |
| 227 signin_metrics::SignoutDelete delete_metric = | 230 signin_metrics::SignoutDelete delete_metric = |
| 228 signin_metrics::SignoutDelete::IGNORE_METRIC; | 231 signin_metrics::SignoutDelete::IGNORE_METRIC; |
| 229 | 232 |
| 230 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) | 233 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) |
| 231 .Times(0); | 234 .Times(0); |
| 232 EXPECT_CALL(*client_, LockProfile(browser()->profile()->GetPath())).Times(0); | 235 EXPECT_CALL(*client_, LockForceSigninProfile(browser()->profile()->GetPath())) |
| 236 .Times(0); |
| 233 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); | 237 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); |
| 234 manager_->SignOut(source_metric, delete_metric); | 238 manager_->SignOut(source_metric, delete_metric); |
| 235 } | 239 } |
| 236 | 240 |
| 237 TEST_F(ChromeSigninClientSignoutTest, SignOutGuestSession) { | 241 TEST_F(ChromeSigninClientSignoutTest, SignOutGuestSession) { |
| 238 TestingProfile::Builder builder; | 242 TestingProfile::Builder builder; |
| 239 builder.SetGuestSession(); | 243 builder.SetGuestSession(); |
| 240 std::unique_ptr<TestingProfile> profile = builder.Build(); | 244 std::unique_ptr<TestingProfile> profile = builder.Build(); |
| 241 | 245 |
| 242 CreateClient(profile.get()); | 246 CreateClient(profile.get()); |
| 243 manager_.reset(new MockSigninManager(client_.get())); | 247 manager_.reset(new MockSigninManager(client_.get())); |
| 244 | 248 |
| 245 signin_metrics::ProfileSignout source_metric = | 249 signin_metrics::ProfileSignout source_metric = |
| 246 signin_metrics::ProfileSignout::SIGNOUT_TEST; | 250 signin_metrics::ProfileSignout::SIGNOUT_TEST; |
| 247 signin_metrics::SignoutDelete delete_metric = | 251 signin_metrics::SignoutDelete delete_metric = |
| 248 signin_metrics::SignoutDelete::IGNORE_METRIC; | 252 signin_metrics::SignoutDelete::IGNORE_METRIC; |
| 249 | 253 |
| 250 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) | 254 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) |
| 251 .Times(0); | 255 .Times(0); |
| 252 EXPECT_CALL(*client_, LockProfile(browser()->profile()->GetPath())).Times(0); | 256 EXPECT_CALL(*client_, LockForceSigninProfile(browser()->profile()->GetPath())) |
| 257 .Times(0); |
| 253 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); | 258 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); |
| 254 manager_->SignOut(source_metric, delete_metric); | 259 manager_->SignOut(source_metric, delete_metric); |
| 255 } | 260 } |
| 256 | 261 |
| 257 #endif // !defined(OS_ANDROID) | 262 #endif // !defined(OS_ANDROID) |
| 258 #endif // !defined(OS_CHROMEOS) | 263 #endif // !defined(OS_CHROMEOS) |
| OLD | NEW |