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

Side by Side Diff: chrome/browser/signin/signin_manager_base_unittest.cc

Issue 14630003: signin: move SigninManagerBase::Signout to SigninManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: apocalypse Created 7 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/signin/signin_manager_base.h"
6
7 #include "base/compiler_specific.h"
8 #include "base/prefs/pref_service.h"
9 #include "base/prefs/testing_pref_service.h"
10 #include "base/stringprintf.h"
11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/prefs/browser_prefs.h"
13 #include "chrome/browser/signin/token_service.h"
14 #include "chrome/browser/signin/token_service_unittest.h"
15 #include "chrome/common/pref_names.h"
16 #include "chrome/common/url_constants.h"
17 #include "chrome/test/base/testing_browser_process.h"
18 #include "chrome/test/base/testing_profile.h"
19
20 #include "testing/gmock/include/gmock/gmock.h"
21 #include "testing/gtest/include/gtest/gtest.h"
22
23 class SigninManagerBaseTest : public TokenServiceTestHarness {
24 public:
25 virtual void SetUp() OVERRIDE {
26 prefs_.reset(new TestingPrefServiceSimple);
27 chrome::RegisterLocalState(prefs_->registry());
28 TestingBrowserProcess::GetGlobal()->SetLocalState(
29 prefs_.get());
30 TokenServiceTestHarness::SetUp();
31 manager_.reset(new SigninManagerBase());
32 }
33
34 virtual void TearDown() OVERRIDE {
35 // Destroy the SigninManager here, because it relies on profile_ which is
36 // freed in the base class.
37 manager_->Shutdown();
38 manager_.reset(NULL);
39 TestingBrowserProcess::GetGlobal()->SetLocalState(NULL);
40 prefs_.reset(NULL);
41 TokenServiceTestHarness::TearDown();
42 }
43
44 scoped_ptr<SigninManagerBase> manager_;
45 scoped_ptr<TestingPrefServiceSimple> prefs_;
46 };
47
48 TEST_F(SigninManagerBaseTest, Prohibited) {
49 g_browser_process->local_state()->SetString(
50 prefs::kGoogleServicesUsernamePattern, ".*@google.com");
51 manager_->Initialize(profile_.get());
52 EXPECT_TRUE(manager_->IsAllowedUsername("test@google.com"));
53 EXPECT_TRUE(manager_->IsAllowedUsername("happy@google.com"));
54 EXPECT_FALSE(manager_->IsAllowedUsername("test@invalid.com"));
55 EXPECT_FALSE(manager_->IsAllowedUsername("test@notgoogle.com"));
56 EXPECT_FALSE(manager_->IsAllowedUsername(std::string()));
57 }
58
59 TEST_F(SigninManagerBaseTest, TestAlternateWildcard) {
60 // Test to make sure we accept "*@google.com" as a pattern (treat it as if
61 // the admin entered ".*@google.com").
62 g_browser_process->local_state()->SetString(
63 prefs::kGoogleServicesUsernamePattern, "*@google.com");
64 manager_->Initialize(profile_.get());
65 EXPECT_TRUE(manager_->IsAllowedUsername("test@google.com"));
66 EXPECT_TRUE(manager_->IsAllowedUsername("happy@google.com"));
67 EXPECT_FALSE(manager_->IsAllowedUsername("test@invalid.com"));
68 EXPECT_FALSE(manager_->IsAllowedUsername("test@notgoogle.com"));
69 EXPECT_FALSE(manager_->IsAllowedUsername(std::string()));
70 }
71
72 TEST_F(SigninManagerBaseTest, ProhibitedAtStartup) {
73 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
74 "monkey@invalid.com");
75 g_browser_process->local_state()->SetString(
76 prefs::kGoogleServicesUsernamePattern, ".*@google.com");
77 manager_->Initialize(profile_.get());
78 // Currently signed in user is prohibited by policy, so should be signed out.
79 EXPECT_EQ("", manager_->GetAuthenticatedUsername());
80 }
81
82 TEST_F(SigninManagerBaseTest, ProhibitedAfterStartup) {
83 std::string user("monkey@invalid.com");
84 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, user);
85 manager_->Initialize(profile_.get());
86 EXPECT_EQ(user, manager_->GetAuthenticatedUsername());
87 // Update the profile - user should be signed out.
88 g_browser_process->local_state()->SetString(
89 prefs::kGoogleServicesUsernamePattern, ".*@google.com");
90 EXPECT_EQ("", manager_->GetAuthenticatedUsername());
91 }
92
OLDNEW
« no previous file with comments | « chrome/browser/signin/signin_manager_base.cc ('k') | chrome/browser/signin/signin_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698