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

Unified Diff: chrome/browser/chromeos/login/enrollment/enrollment_screen_unittest.cc

Issue 2977033002: Mixed Licenses Enrollment (Closed)
Patch Set: Address emaxx's comments Created 3 years, 4 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/chromeos/login/enrollment/enrollment_screen_unittest.cc
diff --git a/chrome/browser/chromeos/login/enrollment/enrollment_screen_unittest.cc b/chrome/browser/chromeos/login/enrollment/enrollment_screen_unittest.cc
index e8c8daa2b9792ec42197d96132a98887b9192c2c..ef83bc42e103d34b0bfa3d8f2f7b0d2e53c9d467 100644
--- a/chrome/browser/chromeos/login/enrollment/enrollment_screen_unittest.cc
+++ b/chrome/browser/chromeos/login/enrollment/enrollment_screen_unittest.cc
@@ -29,12 +29,57 @@ namespace chromeos {
class EnrollmentScreenUnitTest : public testing::Test {
public:
- EnrollmentScreenUnitTest() : fake_controller_("") {
- enrollment_config_.mode = policy::EnrollmentConfig::MODE_ATTESTATION_FORCED;
- enrollment_config_.auth_mechanism =
- policy::EnrollmentConfig::AUTH_MECHANISM_ATTESTATION;
+ EnrollmentScreenUnitTest() : fake_controller_("") {}
+
+ // Creates the EnrollmentScreen and sets required parameters.
+ virtual void SetUpEnrollmentScreen() {
+ enrollment_screen_.reset(
+ new EnrollmentScreen(&mock_delegate_, &mock_view_));
+ enrollment_screen_->SetParameters(enrollment_config_, &fake_controller_);
}
+ // Fast forwards time by the specified amount.
+ void FastForwardTime(base::TimeDelta time) {
+ runner_.task_runner()->FastForwardBy(time);
+ }
+
+ MockBaseScreenDelegate* GetBaseScreenDelegate() { return &mock_delegate_; }
+ MockEnrollmentScreenView* GetMockScreenView() { return &mock_view_; }
+
+ // testing::Test:
+ void SetUp() override {
+ // Initialize the thread manager.
+ DBusThreadManager::Initialize();
+ }
+
+ void TearDown() override {
+ TestingBrowserProcess::GetGlobal()->SetShuttingDown(true);
+ DBusThreadManager::Shutdown();
+ }
+
+ protected:
+ // A pointer to the EnrollmentScreen.
achuithb 2017/08/03 20:53:51 This comment adds no value
+ std::unique_ptr<EnrollmentScreen> enrollment_screen_;
+
+ policy::EnrollmentConfig enrollment_config_;
+
+ private:
+ // Replace main thread's task runner with a mock for duration of test.
+ base::MessageLoop loop_;
+ base::ScopedMockTimeMessageLoopTaskRunner runner_;
+
+ // Objects required by the EnrollmentScreen that can be re-used.
+ pairing_chromeos::FakeControllerPairingController fake_controller_;
+ MockBaseScreenDelegate mock_delegate_;
+ MockEnrollmentScreenView mock_view_;
+
+ DISALLOW_COPY_AND_ASSIGN(EnrollmentScreenUnitTest);
+};
+
+class ZeroTouchEnrollmentScreenUnitTest : public EnrollmentScreenUnitTest {
+ public:
+ ZeroTouchEnrollmentScreenUnitTest() {}
achuithb 2017/08/03 20:53:51 = default
+
// Closure passed to EnterpriseEnrollmentHelper::SetupEnrollmentHelperMock
// which creates the EnterpriseEnrollmentHelperMock object that will
// eventually be tied to the EnrollmentScreen. It also sets up the
@@ -74,58 +119,31 @@ class EnrollmentScreenUnitTest : public testing::Test {
return mock;
}
- // Creates the EnrollmentScreen and sets required parameters.
- void SetUpEnrollmentScreen() {
- enrollment_screen_.reset(
- new EnrollmentScreen(&mock_delegate_, &mock_view_));
- enrollment_screen_->SetParameters(enrollment_config_, &fake_controller_);
- }
-
- // Fast forwards time by the specified amount.
- void FastForwardTime(base::TimeDelta time) {
- runner_.task_runner()->FastForwardBy(time);
+ void SetUpEnrollmentScreen() override {
+ enrollment_config_.mode = policy::EnrollmentConfig::MODE_ATTESTATION_FORCED;
+ enrollment_config_.auth_mechanism =
+ policy::EnrollmentConfig::AUTH_MECHANISM_ATTESTATION;
+ EnrollmentScreenUnitTest::SetUpEnrollmentScreen();
}
- MockBaseScreenDelegate* GetBaseScreenDelegate() { return &mock_delegate_; }
-
// testing::Test:
void SetUp() override {
- // Initialize the thread manager.
- DBusThreadManager::Initialize();
+ EnrollmentScreenUnitTest::SetUp();
// Configure the browser to use Hands-Off Enrollment.
base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
switches::kEnterpriseEnableZeroTouchEnrollment, "hands-off");
}
- void TearDown() override {
- TestingBrowserProcess::GetGlobal()->SetShuttingDown(true);
- DBusThreadManager::Shutdown();
- }
-
- protected:
- // A pointer to the EnrollmentScreen.
- std::unique_ptr<EnrollmentScreen> enrollment_screen_;
-
private:
- // Replace main thread's task runner with a mock for duration of test.
- base::MessageLoop loop_;
- base::ScopedMockTimeMessageLoopTaskRunner runner_;
-
- // Objects required by the EnrollmentScreen that can be re-used.
- policy::EnrollmentConfig enrollment_config_;
- pairing_chromeos::FakeControllerPairingController fake_controller_;
- MockBaseScreenDelegate mock_delegate_;
- MockEnrollmentScreenView mock_view_;
-
- DISALLOW_COPY_AND_ASSIGN(EnrollmentScreenUnitTest);
+ DISALLOW_COPY_AND_ASSIGN(ZeroTouchEnrollmentScreenUnitTest);
};
-TEST_F(EnrollmentScreenUnitTest, Retries) {
+TEST_F(ZeroTouchEnrollmentScreenUnitTest, Retries) {
// Define behavior of EnterpriseEnrollmentHelperMock to always fail
// enrollment.
EnterpriseEnrollmentHelper::SetupEnrollmentHelperMock(
- &EnrollmentScreenUnitTest::MockEnrollmentHelperCreator<false>);
+ &ZeroTouchEnrollmentScreenUnitTest::MockEnrollmentHelperCreator<false>);
SetUpEnrollmentScreen();
@@ -142,11 +160,11 @@ TEST_F(EnrollmentScreenUnitTest, Retries) {
EXPECT_EQ(enrollment_screen_->num_retries_, 4);
}
-TEST_F(EnrollmentScreenUnitTest, DoesNotRetryOnTopOfUser) {
+TEST_F(ZeroTouchEnrollmentScreenUnitTest, DoesNotRetryOnTopOfUser) {
// Define behavior of EnterpriseEnrollmentHelperMock to always fail
// enrollment.
EnterpriseEnrollmentHelper::SetupEnrollmentHelperMock(
- &EnrollmentScreenUnitTest::MockEnrollmentHelperCreator<false>);
+ &ZeroTouchEnrollmentScreenUnitTest::MockEnrollmentHelperCreator<false>);
SetUpEnrollmentScreen();
@@ -170,10 +188,10 @@ TEST_F(EnrollmentScreenUnitTest, DoesNotRetryOnTopOfUser) {
EXPECT_EQ(enrollment_screen_->num_retries_, 4);
}
-TEST_F(EnrollmentScreenUnitTest, DoesNotRetryAfterSuccess) {
+TEST_F(ZeroTouchEnrollmentScreenUnitTest, DoesNotRetryAfterSuccess) {
// Define behavior of EnterpriseEnrollmentHelperMock to successfully enroll.
EnterpriseEnrollmentHelper::SetupEnrollmentHelperMock(
- &EnrollmentScreenUnitTest::MockEnrollmentHelperCreator<true>);
+ &ZeroTouchEnrollmentScreenUnitTest::MockEnrollmentHelperCreator<true>);
SetUpEnrollmentScreen();
@@ -187,10 +205,10 @@ TEST_F(EnrollmentScreenUnitTest, DoesNotRetryAfterSuccess) {
EXPECT_EQ(enrollment_screen_->num_retries_, 0);
}
-TEST_F(EnrollmentScreenUnitTest, FinishesEnrollmentFlow) {
+TEST_F(ZeroTouchEnrollmentScreenUnitTest, FinishesEnrollmentFlow) {
// Define behavior of EnterpriseEnrollmentHelperMock to successfully enroll.
EnterpriseEnrollmentHelper::SetupEnrollmentHelperMock(
- &EnrollmentScreenUnitTest::MockEnrollmentHelperCreator<true>);
+ &ZeroTouchEnrollmentScreenUnitTest::MockEnrollmentHelperCreator<true>);
SetUpEnrollmentScreen();
@@ -205,4 +223,61 @@ TEST_F(EnrollmentScreenUnitTest, FinishesEnrollmentFlow) {
// Start zero-touch enrollment.
enrollment_screen_->Show();
}
+
+class MultiLicenseEnrollmentScreenUnitTest : public EnrollmentScreenUnitTest {
+ public:
+ MultiLicenseEnrollmentScreenUnitTest() {}
achuithb 2017/08/03 20:53:51 = default
+
+ void SetUpEnrollmentScreen() override {
+ enrollment_config_.mode = policy::EnrollmentConfig::MODE_MANUAL;
+ enrollment_config_.auth_mechanism =
+ policy::EnrollmentConfig::AUTH_MECHANISM_INTERACTIVE;
+ EnrollmentScreenUnitTest::SetUpEnrollmentScreen();
+ }
+
+ static EnterpriseEnrollmentHelper* MockEnrollmentHelperCreator(
+ EnterpriseEnrollmentHelper::EnrollmentStatusConsumer* status_consumer,
+ const policy::EnrollmentConfig& enrollment_config,
+ const std::string& enrolling_user_domain) {
+ EnterpriseEnrollmentHelperMock* mock =
+ new EnterpriseEnrollmentHelperMock(status_consumer);
+ EXPECT_CALL(*mock, EnrollUsingAuthCode(_, _))
+ .Times(AnyNumber())
+ .WillRepeatedly(Invoke([mock](const std::string&, bool) {
+ EnrollmentLicenseMap licenses;
+ static_cast<EnrollmentScreen*>(mock->status_consumer())
+ ->OnMultipleLicensesAvailable(licenses);
+ }));
+ EXPECT_CALL(*mock, UseLicenseType(::policy::LicenseType::ANNUAL)).Times(1);
+
+ return mock;
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MultiLicenseEnrollmentScreenUnitTest);
+};
+
+TEST_F(MultiLicenseEnrollmentScreenUnitTest, TestLicenseSelection) {
achuithb 2017/08/03 20:53:51 Add test comment above this line describing this t
+ EnterpriseEnrollmentHelper::SetupEnrollmentHelperMock(
+ &MultiLicenseEnrollmentScreenUnitTest::MockEnrollmentHelperCreator);
+
+ EXPECT_CALL(*GetMockScreenView(), SetParameters(_, _)).Times(1);
+
+ SetUpEnrollmentScreen();
+
+ EXPECT_CALL(*GetMockScreenView(), Show()).Times(1);
+ EXPECT_CALL(*GetMockScreenView(), ShowSigninScreen()).Times(1);
+
+ // Start enrollment.
+ enrollment_screen_->Show();
+
+ // Once at login, once after picking license type.
+
+ EXPECT_CALL(*GetMockScreenView(), ShowEnrollmentSpinnerScreen()).Times(2);
+ EXPECT_CALL(*GetMockScreenView(), ShowLicenseTypeSelectionScreen(_)).Times(1);
+
+ enrollment_screen_->OnLoginDone("user@domain.com", "oauth");
+ enrollment_screen_->OnLicenseTypeSelected("annual");
+}
+
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698