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

Side by Side Diff: trunk/src/chrome/browser/chromeos/login/login_utils_browsertest.cc

Issue 390843002: Revert 282925 "Make the policy fetch for first time login blocking" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 5 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
« no previous file with comments | « no previous file | trunk/src/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/chromeos/login/login_utils.h" 5 #include "chrome/browser/chromeos/login/login_utils.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 521
522 private: 522 private:
523 base::ScopedTempDir scoped_temp_dir_; 523 base::ScopedTempDir scoped_temp_dir_;
524 524
525 std::string device_policy_; 525 std::string device_policy_;
526 std::string user_policy_; 526 std::string user_policy_;
527 527
528 DISALLOW_COPY_AND_ASSIGN(LoginUtilsTest); 528 DISALLOW_COPY_AND_ASSIGN(LoginUtilsTest);
529 }; 529 };
530 530
531 struct LoginUtilsBlockingLoginTestParam {
532 const int steps;
533 const char* username;
534 const bool enroll_device;
535 };
536
537 class LoginUtilsBlockingLoginTest 531 class LoginUtilsBlockingLoginTest
538 : public LoginUtilsTest, 532 : public LoginUtilsTest,
539 public testing::WithParamInterface<LoginUtilsBlockingLoginTestParam> {}; 533 public testing::WithParamInterface<int> {};
534
535 TEST_F(LoginUtilsTest, NormalLoginDoesntBlock) {
536 UserManager* user_manager = UserManager::Get();
537 EXPECT_FALSE(user_manager->IsUserLoggedIn());
538 EXPECT_FALSE(connector_->IsEnterpriseManaged());
539 EXPECT_FALSE(prepared_profile_);
540 EXPECT_EQ(policy::USER_AFFILIATION_NONE,
541 connector_->GetUserAffiliation(kUsername));
542
543 // The profile will be created without waiting for a policy response.
544 PrepareProfile(kUsername);
545
546 EXPECT_TRUE(prepared_profile_);
547 ASSERT_TRUE(user_manager->IsUserLoggedIn());
548 EXPECT_EQ(kUsername, user_manager->GetLoggedInUser()->email());
549 }
550
551 TEST_F(LoginUtilsTest, EnterpriseLoginDoesntBlockForNormalUser) {
552 UserManager* user_manager = UserManager::Get();
553 EXPECT_FALSE(user_manager->IsUserLoggedIn());
554 EXPECT_FALSE(connector_->IsEnterpriseManaged());
555 EXPECT_FALSE(prepared_profile_);
556
557 // Enroll the device.
558 EnrollDevice(kUsername);
559
560 EXPECT_FALSE(user_manager->IsUserLoggedIn());
561 EXPECT_TRUE(connector_->IsEnterpriseManaged());
562 EXPECT_EQ(kDomain, connector_->GetEnterpriseDomain());
563 EXPECT_FALSE(prepared_profile_);
564 EXPECT_EQ(policy::USER_AFFILIATION_NONE,
565 connector_->GetUserAffiliation(kUsernameOtherDomain));
566
567 // Login with a non-enterprise user shouldn't block.
568 PrepareProfile(kUsernameOtherDomain);
569
570 EXPECT_TRUE(prepared_profile_);
571 ASSERT_TRUE(user_manager->IsUserLoggedIn());
572 EXPECT_EQ(kUsernameOtherDomain, user_manager->GetLoggedInUser()->email());
573 }
540 574
541 #if defined(ENABLE_RLZ) 575 #if defined(ENABLE_RLZ)
542 TEST_F(LoginUtilsTest, RlzInitialized) { 576 TEST_F(LoginUtilsTest, RlzInitialized) {
543 // No RLZ brand code set initially. 577 // No RLZ brand code set initially.
544 EXPECT_FALSE(local_state_.Get()->HasPrefPath(prefs::kRLZBrand)); 578 EXPECT_FALSE(local_state_.Get()->HasPrefPath(prefs::kRLZBrand));
545 579
546 base::RunLoop wait_for_rlz_init; 580 base::RunLoop wait_for_rlz_init;
547 rlz_initialized_cb_ = wait_for_rlz_init.QuitClosure(); 581 rlz_initialized_cb_ = wait_for_rlz_init.QuitClosure();
548 582
549 PrepareProfile(kUsername); 583 PrepareProfile(kUsername);
550 584
551 wait_for_rlz_init.Run(); 585 wait_for_rlz_init.Run();
552 // Wait for blocking RLZ tasks to complete. 586 // Wait for blocking RLZ tasks to complete.
553 RunUntilIdle(); 587 RunUntilIdle();
554 588
555 // RLZ brand code has been set to empty string. 589 // RLZ brand code has been set to empty string.
556 EXPECT_TRUE(local_state_.Get()->HasPrefPath(prefs::kRLZBrand)); 590 EXPECT_TRUE(local_state_.Get()->HasPrefPath(prefs::kRLZBrand));
557 EXPECT_EQ(std::string(), local_state_.Get()->GetString(prefs::kRLZBrand)); 591 EXPECT_EQ(std::string(), local_state_.Get()->GetString(prefs::kRLZBrand));
558 592
559 // RLZ value for homepage access point should have been initialized. 593 // RLZ value for homepage access point should have been initialized.
560 base::string16 rlz_string; 594 base::string16 rlz_string;
561 EXPECT_TRUE(RLZTracker::GetAccessPointRlz( 595 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(
562 RLZTracker::ChromeHomePage(), &rlz_string)); 596 RLZTracker::ChromeHomePage(), &rlz_string));
563 EXPECT_EQ(base::string16(), rlz_string); 597 EXPECT_EQ(base::string16(), rlz_string);
564 } 598 }
565 #endif 599 #endif
566 600
567 TEST_P(LoginUtilsBlockingLoginTest, LoginBlocksForUser) { 601 TEST_P(LoginUtilsBlockingLoginTest, EnterpriseLoginBlocksForEnterpriseUser) {
568 UserManager* user_manager = UserManager::Get(); 602 UserManager* user_manager = UserManager::Get();
569 EXPECT_FALSE(user_manager->IsUserLoggedIn()); 603 EXPECT_FALSE(user_manager->IsUserLoggedIn());
570 EXPECT_FALSE(connector_->IsEnterpriseManaged()); 604 EXPECT_FALSE(connector_->IsEnterpriseManaged());
571 EXPECT_FALSE(prepared_profile_); 605 EXPECT_FALSE(prepared_profile_);
572 606
573 if (GetParam().enroll_device) { 607 // Enroll the device.
574 // Enroll the device. 608 EnrollDevice(kUsername);
575 EnrollDevice(kUsername);
576 609
577 EXPECT_FALSE(user_manager->IsUserLoggedIn()); 610 EXPECT_FALSE(user_manager->IsUserLoggedIn());
578 EXPECT_TRUE(connector_->IsEnterpriseManaged()); 611 EXPECT_TRUE(connector_->IsEnterpriseManaged());
579 EXPECT_EQ(kDomain, connector_->GetEnterpriseDomain()); 612 EXPECT_EQ(kDomain, connector_->GetEnterpriseDomain());
580 EXPECT_FALSE(prepared_profile_); 613 EXPECT_FALSE(prepared_profile_);
581 EXPECT_EQ(policy::USER_AFFILIATION_MANAGED, 614 EXPECT_EQ(policy::USER_AFFILIATION_MANAGED,
582 connector_->GetUserAffiliation(kUsername)); 615 connector_->GetUserAffiliation(kUsername));
583 EXPECT_FALSE(user_manager->IsKnownUser(kUsername)); 616 EXPECT_FALSE(user_manager->IsKnownUser(kUsername));
584 }
585 617
586 PrepareProfile(GetParam().username); 618 // Login with a user of the enterprise domain waits for policy.
619 PrepareProfile(kUsername);
587 620
588 EXPECT_FALSE(prepared_profile_); 621 EXPECT_FALSE(prepared_profile_);
589 ASSERT_TRUE(user_manager->IsUserLoggedIn()); 622 ASSERT_TRUE(user_manager->IsUserLoggedIn());
590 EXPECT_TRUE(user_manager->IsCurrentUserNew()); 623 EXPECT_TRUE(user_manager->IsCurrentUserNew());
591 624
592 GaiaUrls* gaia_urls = GaiaUrls::GetInstance(); 625 GaiaUrls* gaia_urls = GaiaUrls::GetInstance();
593 net::TestURLFetcher* fetcher; 626 net::TestURLFetcher* fetcher;
594 627
595 // |steps| is the test parameter, and is the number of successful fetches. 628 // |steps| is the test parameter, and is the number of successful fetches.
596 // The first incomplete fetch will fail. In any case, the profile creation 629 // The first incomplete fetch will fail. In any case, the profile creation
597 // should resume. 630 // should resume.
598 int steps = GetParam().steps; 631 int steps = GetParam();
599 632
600 // The next expected fetcher ID. This is used to make it fail. 633 // The next expected fetcher ID. This is used to make it fail.
601 int next_expected_fetcher_id = 0; 634 int next_expected_fetcher_id = 0;
602 635
603 do { 636 do {
604 if (steps < 1) break; 637 if (steps < 1) break;
605 638
606 // Fake refresh token retrieval: 639 // Fake refresh token retrieval:
607 fetcher = PrepareOAuthFetcher(gaia_urls->client_login_to_oauth2_url()); 640 fetcher = PrepareOAuthFetcher(gaia_urls->client_login_to_oauth2_url());
608 ASSERT_TRUE(fetcher); 641 ASSERT_TRUE(fetcher);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 // fetchers then it will make them fail too. 696 // fetchers then it will make them fail too.
664 fetcher->SetResponseString(kGaiaAccountDisabledResponse); 697 fetcher->SetResponseString(kGaiaAccountDisabledResponse);
665 fetcher->delegate()->OnURLFetchComplete(fetcher); 698 fetcher->delegate()->OnURLFetchComplete(fetcher);
666 RunUntilIdle(); 699 RunUntilIdle();
667 } 700 }
668 701
669 // The profile is finally ready: 702 // The profile is finally ready:
670 EXPECT_TRUE(prepared_profile_); 703 EXPECT_TRUE(prepared_profile_);
671 } 704 }
672 705
673 const LoginUtilsBlockingLoginTestParam kBlockinLoginTestCases[] = { 706 INSTANTIATE_TEST_CASE_P(
674 {0, kUsername, true}, 707 LoginUtilsBlockingLoginTestInstance,
675 {1, kUsername, true}, 708 LoginUtilsBlockingLoginTest,
676 {2, kUsername, true}, 709 testing::Values(0, 1, 2, 3, 4, 5));
677 {3, kUsername, true},
678 {4, kUsername, true},
679 {5, kUsername, true},
680 {0, kUsername, false},
681 {1, kUsername, false},
682 {2, kUsername, false},
683 {3, kUsername, false},
684 {4, kUsername, false},
685 {5, kUsername, false},
686 {0, kUsernameOtherDomain, true},
687 {1, kUsernameOtherDomain, true},
688 {2, kUsernameOtherDomain, true},
689 {3, kUsernameOtherDomain, true},
690 {4, kUsernameOtherDomain, true},
691 {5, kUsernameOtherDomain, true}};
692
693 INSTANTIATE_TEST_CASE_P(LoginUtilsBlockingLoginTestInstance,
694 LoginUtilsBlockingLoginTest,
695 testing::ValuesIn(kBlockinLoginTestCases));
696 710
697 } // namespace 711 } // namespace
698 712
699 } // namespace chromeos 713 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | trunk/src/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698