| 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" |
| 11 #include "base/run_loop.h" | 11 #include "base/run_loop.h" |
| 12 #include "build/build_config.h" | 12 #include "build/build_config.h" |
| 13 #include "chrome/browser/prefs/browser_prefs.h" | |
| 14 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
| 15 #include "chrome/browser/signin/chrome_signin_client_factory.h" | 14 #include "chrome/browser/signin/chrome_signin_client_factory.h" |
| 16 #include "chrome/browser/signin/signin_error_controller_factory.h" | 15 #include "chrome/browser/signin/signin_error_controller_factory.h" |
| 16 #include "chrome/browser/signin/signin_util.h" |
| 17 #include "chrome/common/pref_names.h" | 17 #include "chrome/common/pref_names.h" |
| 18 #include "chrome/test/base/browser_with_test_window_test.h" | 18 #include "chrome/test/base/browser_with_test_window_test.h" |
| 19 #include "chrome/test/base/testing_browser_process.h" | 19 #include "chrome/test/base/testing_browser_process.h" |
| 20 #include "chrome/test/base/testing_profile.h" | 20 #include "chrome/test/base/testing_profile.h" |
| 21 #include "components/prefs/testing_pref_service.h" | |
| 22 #include "content/public/test/test_browser_thread_bundle.h" | 21 #include "content/public/test/test_browser_thread_bundle.h" |
| 23 #include "net/base/network_change_notifier.h" | 22 #include "net/base/network_change_notifier.h" |
| 24 #include "testing/gmock/include/gmock/gmock.h" | 23 #include "testing/gmock/include/gmock/gmock.h" |
| 25 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
| 26 | 25 |
| 27 // ChromeOS has its own network delay logic. | 26 // ChromeOS has its own network delay logic. |
| 28 #if !defined(OS_CHROMEOS) | 27 #if !defined(OS_CHROMEOS) |
| 29 | 28 |
| 30 namespace { | 29 namespace { |
| 31 | 30 |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 signin_metrics::SignoutDelete)); | 145 signin_metrics::SignoutDelete)); |
| 147 | 146 |
| 148 AccountTrackerService fake_service_; | 147 AccountTrackerService fake_service_; |
| 149 }; | 148 }; |
| 150 | 149 |
| 151 class ChromeSigninClientSignoutTest : public BrowserWithTestWindowTest { | 150 class ChromeSigninClientSignoutTest : public BrowserWithTestWindowTest { |
| 152 public: | 151 public: |
| 153 void SetUp() override { | 152 void SetUp() override { |
| 154 BrowserWithTestWindowTest::SetUp(); | 153 BrowserWithTestWindowTest::SetUp(); |
| 155 | 154 |
| 156 prefs_.reset(new TestingPrefServiceSimple()); | 155 signin_util::SetForceSigninForTesting(true); |
| 157 chrome::RegisterLocalState(prefs_->registry()); | |
| 158 TestingBrowserProcess::GetGlobal()->SetLocalState(prefs_.get()); | |
| 159 prefs_->SetBoolean(prefs::kForceBrowserSignin, true); | |
| 160 | |
| 161 CreateClient(browser()->profile()); | 156 CreateClient(browser()->profile()); |
| 162 manager_.reset(new MockSigninManager(client_.get())); | 157 manager_.reset(new MockSigninManager(client_.get())); |
| 163 } | 158 } |
| 164 | 159 |
| 165 void TearDown() override { | 160 void TearDown() override { |
| 166 BrowserWithTestWindowTest::TearDown(); | 161 BrowserWithTestWindowTest::TearDown(); |
| 167 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); | 162 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); |
| 168 } | 163 } |
| 169 | 164 |
| 170 void CreateClient(Profile* profile) { | 165 void CreateClient(Profile* profile) { |
| 171 SigninErrorController* controller = new SigninErrorController(); | 166 SigninErrorController* controller = new SigninErrorController(); |
| 172 client_.reset(new MockChromeSigninClient(profile, controller)); | 167 client_.reset(new MockChromeSigninClient(profile, controller)); |
| 173 fake_controller_.reset(controller); | 168 fake_controller_.reset(controller); |
| 174 } | 169 } |
| 175 | 170 |
| 176 std::unique_ptr<SigninErrorController> fake_controller_; | 171 std::unique_ptr<SigninErrorController> fake_controller_; |
| 177 std::unique_ptr<MockChromeSigninClient> client_; | 172 std::unique_ptr<MockChromeSigninClient> client_; |
| 178 std::unique_ptr<MockSigninManager> manager_; | 173 std::unique_ptr<MockSigninManager> manager_; |
| 179 std::unique_ptr<TestingPrefServiceSimple> prefs_; | |
| 180 }; | 174 }; |
| 181 | 175 |
| 182 TEST_F(ChromeSigninClientSignoutTest, SignOut) { | 176 TEST_F(ChromeSigninClientSignoutTest, SignOut) { |
| 183 signin_metrics::ProfileSignout source_metric = | 177 signin_metrics::ProfileSignout source_metric = |
| 184 signin_metrics::ProfileSignout::SIGNOUT_TEST; | 178 signin_metrics::ProfileSignout::SIGNOUT_TEST; |
| 185 signin_metrics::SignoutDelete delete_metric = | 179 signin_metrics::SignoutDelete delete_metric = |
| 186 signin_metrics::SignoutDelete::IGNORE_METRIC; | 180 signin_metrics::SignoutDelete::IGNORE_METRIC; |
| 187 | 181 |
| 188 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) | 182 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) |
| 189 .Times(1); | 183 .Times(1); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 214 | 208 |
| 215 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) | 209 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) |
| 216 .Times(1); | 210 .Times(1); |
| 217 EXPECT_CALL(*client_, LockForceSigninProfile(browser()->profile()->GetPath())) | 211 EXPECT_CALL(*client_, LockForceSigninProfile(browser()->profile()->GetPath())) |
| 218 .Times(1); | 212 .Times(1); |
| 219 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); | 213 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); |
| 220 manager_->SignOut(source_metric, delete_metric); | 214 manager_->SignOut(source_metric, delete_metric); |
| 221 } | 215 } |
| 222 | 216 |
| 223 TEST_F(ChromeSigninClientSignoutTest, SignOutWithoutForceSignin) { | 217 TEST_F(ChromeSigninClientSignoutTest, SignOutWithoutForceSignin) { |
| 224 prefs_->SetBoolean(prefs::kForceBrowserSignin, false); | 218 signin_util::SetForceSigninForTesting(false); |
| 225 CreateClient(browser()->profile()); | 219 CreateClient(browser()->profile()); |
| 226 manager_.reset(new MockSigninManager(client_.get())); | 220 manager_.reset(new MockSigninManager(client_.get())); |
| 227 | 221 |
| 228 signin_metrics::ProfileSignout source_metric = | 222 signin_metrics::ProfileSignout source_metric = |
| 229 signin_metrics::ProfileSignout::SIGNOUT_TEST; | 223 signin_metrics::ProfileSignout::SIGNOUT_TEST; |
| 230 signin_metrics::SignoutDelete delete_metric = | 224 signin_metrics::SignoutDelete delete_metric = |
| 231 signin_metrics::SignoutDelete::IGNORE_METRIC; | 225 signin_metrics::SignoutDelete::IGNORE_METRIC; |
| 232 | 226 |
| 233 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) | 227 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) |
| 234 .Times(0); | 228 .Times(0); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 254 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) | 248 EXPECT_CALL(*client_, ShowUserManager(browser()->profile()->GetPath())) |
| 255 .Times(0); | 249 .Times(0); |
| 256 EXPECT_CALL(*client_, LockForceSigninProfile(browser()->profile()->GetPath())) | 250 EXPECT_CALL(*client_, LockForceSigninProfile(browser()->profile()->GetPath())) |
| 257 .Times(0); | 251 .Times(0); |
| 258 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); | 252 EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric)).Times(1); |
| 259 manager_->SignOut(source_metric, delete_metric); | 253 manager_->SignOut(source_metric, delete_metric); |
| 260 } | 254 } |
| 261 | 255 |
| 262 #endif // !defined(OS_ANDROID) | 256 #endif // !defined(OS_ANDROID) |
| 263 #endif // !defined(OS_CHROMEOS) | 257 #endif // !defined(OS_CHROMEOS) |
| OLD | NEW |