Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(660)

Unified Diff: chrome/browser/signin/force_signin_manager_unittest.cc

Issue 2442843002: Override SigninManager::SignOut if force-signin is enabled. (Closed)
Patch Set: tommycli's comments Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/signin/force_signin_manager_unittest.cc
diff --git a/chrome/browser/signin/force_signin_manager_unittest.cc b/chrome/browser/signin/force_signin_manager_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0c4db7fc40e7caa2196d96e8469f98aed39686d9
--- /dev/null
+++ b/chrome/browser/signin/force_signin_manager_unittest.cc
@@ -0,0 +1,88 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/signin/force_signin_manager.h"
+
+#include <memory>
+
+#include "chrome/browser/prefs/browser_prefs.h"
+#include "chrome/common/pref_names.h"
+#include "chrome/test/base/browser_with_test_window_test.h"
+#include "chrome/test/base/testing_browser_process.h"
+#include "components/prefs/testing_pref_service.h"
+#include "components/signin/core/browser/test_signin_client.h"
+#include "testing/gmock/include/gmock/gmock.h"
+
+class MockForceSigninManager : public ForceSigninManager {
+ public:
+ explicit MockForceSigninManager(Profile* profile)
+ : ForceSigninManager(profile,
+ &test_client_,
+ nullptr,
+ &fake_service_,
+ nullptr) {}
+
+ MOCK_METHOD3(DoSignOut,
+ void(signin_metrics::ProfileSignout,
+ signin_metrics::SignoutDelete,
+ const base::FilePath&));
+ MOCK_METHOD1(ShowUserManager, void(const base::FilePath&));
+
+ TestSigninClient test_client_{nullptr};
+ AccountTrackerService fake_service_;
+};
+
+class ForceSigninManagerTest : public BrowserWithTestWindowTest {
+ public:
+ void SetUp() override {
+ BrowserWithTestWindowTest::SetUp();
+ manager_.reset(new MockForceSigninManager(browser()->profile()));
+
+ prefs_.reset(new TestingPrefServiceSimple());
+ chrome::RegisterLocalState(prefs_->registry());
+ TestingBrowserProcess::GetGlobal()->SetLocalState(prefs_.get());
+ prefs_->SetBoolean(prefs::kForceBrowserSignin, true);
+ }
+
+ void TearDown() override {
+ BrowserWithTestWindowTest::TearDown();
+ TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
+ }
+
+ std::unique_ptr<MockForceSigninManager> manager_;
+ std::unique_ptr<TestingPrefServiceSimple> prefs_;
+};
+
+TEST_F(ForceSigninManagerTest, Signout) {
+ signin_metrics::ProfileSignout source_metric =
+ signin_metrics::ProfileSignout::SIGNOUT_TEST;
+ signin_metrics::SignoutDelete delete_metric =
+ signin_metrics::SignoutDelete::IGNORE_METRIC;
+ EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric,
+ browser()->profile()->GetPath()))
+ .Times(1);
+ EXPECT_CALL(*manager_, ShowUserManager(browser()->profile()->GetPath()))
+ .Times(1);
+ manager_->SignOut(source_metric, delete_metric);
+}
+
+TEST_F(ForceSigninManagerTest, SignoutWithoutManager) {
+ signin_metrics::ProfileSignout source_metric =
+ signin_metrics::ProfileSignout::SIGNOUT_TEST;
+ signin_metrics::SignoutDelete delete_metric =
+ signin_metrics::SignoutDelete::IGNORE_METRIC;
+
+ EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric,
+ browser()->profile()->GetPath()))
+ .Times(1);
+ ForceSigninManager::DisableUserManagerDisplayForNextSignOut(manager_.get());
+ manager_->SignOut(source_metric, delete_metric);
+
+ EXPECT_CALL(*manager_, DoSignOut(source_metric, delete_metric,
+ browser()->profile()->GetPath()))
+ .Times(1);
+ EXPECT_CALL(*manager_, ShowUserManager(browser()->profile()->GetPath()))
+ .Times(1);
+ manager_->SignOut(source_metric, delete_metric);
+}
Roger Tawa OOO till Jul 10th 2016/10/26 18:25:31 Should have tests for system profile and guest pro

Powered by Google App Engine
This is Rietveld 408576698