| 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 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 GURL("http://accounts.google.com/ServiceLogin?service=chromiumsync"))); | 520 GURL("http://accounts.google.com/ServiceLogin?service=chromiumsync"))); |
| 521 // http, not https, should not be treated as web based signin. | 521 // http, not https, should not be treated as web based signin. |
| 522 EXPECT_FALSE(SigninManager::IsWebBasedSigninFlowURL( | 522 EXPECT_FALSE(SigninManager::IsWebBasedSigninFlowURL( |
| 523 GURL("http://accounts.google.com/ServiceLogin?service=googlemail"))); | 523 GURL("http://accounts.google.com/ServiceLogin?service=googlemail"))); |
| 524 // chromiumsync is double-embedded in a continue query param. | 524 // chromiumsync is double-embedded in a continue query param. |
| 525 EXPECT_TRUE(SigninManager::IsWebBasedSigninFlowURL( | 525 EXPECT_TRUE(SigninManager::IsWebBasedSigninFlowURL( |
| 526 GURL("https://accounts.google.com/CheckCookie?" | 526 GURL("https://accounts.google.com/CheckCookie?" |
| 527 "continue=https%3A%2F%2Fwww.google.com%2Fintl%2Fen-US%2Fchrome" | 527 "continue=https%3A%2F%2Fwww.google.com%2Fintl%2Fen-US%2Fchrome" |
| 528 "%2Fblank.html%3Fsource%3D3%26nonadv%3D1&service=chromiumsync"))); | 528 "%2Fblank.html%3Fsource%3D3%26nonadv%3D1&service=chromiumsync"))); |
| 529 } | 529 } |
| 530 |
| 531 TEST_F(SigninManagerTest, Prohibited) { |
| 532 g_browser_process->local_state()->SetString( |
| 533 prefs::kGoogleServicesUsernamePattern, ".*@google.com"); |
| 534 manager_->Initialize(profile_.get()); |
| 535 EXPECT_TRUE(manager_->IsAllowedUsername("test@google.com")); |
| 536 EXPECT_TRUE(manager_->IsAllowedUsername("happy@google.com")); |
| 537 EXPECT_FALSE(manager_->IsAllowedUsername("test@invalid.com")); |
| 538 EXPECT_FALSE(manager_->IsAllowedUsername("test@notgoogle.com")); |
| 539 EXPECT_FALSE(manager_->IsAllowedUsername(std::string())); |
| 540 } |
| 541 |
| 542 TEST_F(SigninManagerTest, TestAlternateWildcard) { |
| 543 // Test to make sure we accept "*@google.com" as a pattern (treat it as if |
| 544 // the admin entered ".*@google.com"). |
| 545 g_browser_process->local_state()->SetString( |
| 546 prefs::kGoogleServicesUsernamePattern, "*@google.com"); |
| 547 manager_->Initialize(profile_.get()); |
| 548 EXPECT_TRUE(manager_->IsAllowedUsername("test@google.com")); |
| 549 EXPECT_TRUE(manager_->IsAllowedUsername("happy@google.com")); |
| 550 EXPECT_FALSE(manager_->IsAllowedUsername("test@invalid.com")); |
| 551 EXPECT_FALSE(manager_->IsAllowedUsername("test@notgoogle.com")); |
| 552 EXPECT_FALSE(manager_->IsAllowedUsername(std::string())); |
| 553 } |
| 554 |
| 555 TEST_F(SigninManagerTest, ProhibitedAtStartup) { |
| 556 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 557 "monkey@invalid.com"); |
| 558 g_browser_process->local_state()->SetString( |
| 559 prefs::kGoogleServicesUsernamePattern, ".*@google.com"); |
| 560 manager_->Initialize(profile_.get()); |
| 561 // Currently signed in user is prohibited by policy, so should be signed out. |
| 562 EXPECT_EQ("", manager_->GetAuthenticatedUsername()); |
| 563 } |
| 564 |
| 565 TEST_F(SigninManagerTest, ProhibitedAfterStartup) { |
| 566 std::string user("monkey@invalid.com"); |
| 567 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, user); |
| 568 manager_->Initialize(profile_.get()); |
| 569 EXPECT_EQ(user, manager_->GetAuthenticatedUsername()); |
| 570 // Update the profile - user should be signed out. |
| 571 g_browser_process->local_state()->SetString( |
| 572 prefs::kGoogleServicesUsernamePattern, ".*@google.com"); |
| 573 EXPECT_EQ("", manager_->GetAuthenticatedUsername()); |
| 574 } |
| OLD | NEW |