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/signin/signin_manager.h" | 5 #include "chrome/browser/signin/signin_manager.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 GURL("http://accounts.google.com/ServiceLogin?service=chromiumsync"))); | 607 GURL("http://accounts.google.com/ServiceLogin?service=chromiumsync"))); |
608 // http, not https, should not be treated as web based signin. | 608 // http, not https, should not be treated as web based signin. |
609 EXPECT_FALSE(SigninManager::IsWebBasedSigninFlowURL( | 609 EXPECT_FALSE(SigninManager::IsWebBasedSigninFlowURL( |
610 GURL("http://accounts.google.com/ServiceLogin?service=googlemail"))); | 610 GURL("http://accounts.google.com/ServiceLogin?service=googlemail"))); |
611 // chromiumsync is double-embedded in a continue query param. | 611 // chromiumsync is double-embedded in a continue query param. |
612 EXPECT_TRUE(SigninManager::IsWebBasedSigninFlowURL( | 612 EXPECT_TRUE(SigninManager::IsWebBasedSigninFlowURL( |
613 GURL("https://accounts.google.com/CheckCookie?" | 613 GURL("https://accounts.google.com/CheckCookie?" |
614 "continue=https%3A%2F%2Fwww.google.com%2Fintl%2Fen-US%2Fchrome" | 614 "continue=https%3A%2F%2Fwww.google.com%2Fintl%2Fen-US%2Fchrome" |
615 "%2Fblank.html%3Fsource%3D3%26nonadv%3D1&service=chromiumsync"))); | 615 "%2Fblank.html%3Fsource%3D3%26nonadv%3D1&service=chromiumsync"))); |
616 } | 616 } |
| 617 |
| 618 TEST_F(SigninManagerTest, Prohibited) { |
| 619 g_browser_process->local_state()->SetString( |
| 620 prefs::kGoogleServicesUsernamePattern, ".*@google.com"); |
| 621 manager_->Initialize(profile_.get()); |
| 622 EXPECT_TRUE(manager_->IsAllowedUsername("test@google.com")); |
| 623 EXPECT_TRUE(manager_->IsAllowedUsername("happy@google.com")); |
| 624 EXPECT_FALSE(manager_->IsAllowedUsername("test@invalid.com")); |
| 625 EXPECT_FALSE(manager_->IsAllowedUsername("test@notgoogle.com")); |
| 626 EXPECT_FALSE(manager_->IsAllowedUsername(std::string())); |
| 627 } |
| 628 |
| 629 TEST_F(SigninManagerTest, TestAlternateWildcard) { |
| 630 // Test to make sure we accept "*@google.com" as a pattern (treat it as if |
| 631 // the admin entered ".*@google.com"). |
| 632 g_browser_process->local_state()->SetString( |
| 633 prefs::kGoogleServicesUsernamePattern, "*@google.com"); |
| 634 manager_->Initialize(profile_.get()); |
| 635 EXPECT_TRUE(manager_->IsAllowedUsername("test@google.com")); |
| 636 EXPECT_TRUE(manager_->IsAllowedUsername("happy@google.com")); |
| 637 EXPECT_FALSE(manager_->IsAllowedUsername("test@invalid.com")); |
| 638 EXPECT_FALSE(manager_->IsAllowedUsername("test@notgoogle.com")); |
| 639 EXPECT_FALSE(manager_->IsAllowedUsername(std::string())); |
| 640 } |
| 641 |
| 642 TEST_F(SigninManagerTest, ProhibitedAtStartup) { |
| 643 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 644 "monkey@invalid.com"); |
| 645 g_browser_process->local_state()->SetString( |
| 646 prefs::kGoogleServicesUsernamePattern, ".*@google.com"); |
| 647 manager_->Initialize(profile_.get()); |
| 648 // Currently signed in user is prohibited by policy, so should be signed out. |
| 649 EXPECT_EQ("", manager_->GetAuthenticatedUsername()); |
| 650 } |
| 651 |
| 652 TEST_F(SigninManagerTest, ProhibitedAfterStartup) { |
| 653 std::string user("monkey@invalid.com"); |
| 654 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, user); |
| 655 manager_->Initialize(profile_.get()); |
| 656 EXPECT_EQ(user, manager_->GetAuthenticatedUsername()); |
| 657 // Update the profile - user should be signed out. |
| 658 g_browser_process->local_state()->SetString( |
| 659 prefs::kGoogleServicesUsernamePattern, ".*@google.com"); |
| 660 EXPECT_EQ("", manager_->GetAuthenticatedUsername()); |
| 661 } |
OLD | NEW |