| Index: chrome/browser/chromeos/policy/consumer_enrollment_handler_unittest.cc
|
| diff --git a/chrome/browser/chromeos/policy/consumer_enrollment_handler_unittest.cc b/chrome/browser/chromeos/policy/consumer_enrollment_handler_unittest.cc
|
| index e0851ac10f0c4e546e9032f1e4f289268d9b4cdb..261d97f3a226dc7806081352bc66769c9b08c8c5 100644
|
| --- a/chrome/browser/chromeos/policy/consumer_enrollment_handler_unittest.cc
|
| +++ b/chrome/browser/chromeos/policy/consumer_enrollment_handler_unittest.cc
|
| @@ -7,38 +7,44 @@
|
| #include "base/run_loop.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/browser_process_platform_part.h"
|
| +#include "chrome/browser/chromeos/login/users/fake_user_manager.h"
|
| +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
|
| #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
|
| #include "chrome/browser/chromeos/policy/consumer_management_service.h"
|
| #include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
|
| #include "chrome/browser/chromeos/policy/fake_consumer_management_service.h"
|
| #include "chrome/browser/chromeos/policy/fake_device_cloud_policy_initializer.h"
|
| -#include "chrome/browser/notifications/notification_ui_manager.h"
|
| #include "chrome/browser/signin/fake_profile_oauth2_token_service.h"
|
| #include "chrome/browser/signin/fake_profile_oauth2_token_service_builder.h"
|
| #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
|
| #include "chrome/browser/signin/signin_manager_factory.h"
|
| -#include "chrome/test/base/browser_with_test_window_test.h"
|
| #include "chrome/test/base/testing_browser_process.h"
|
| #include "chrome/test/base/testing_profile_manager.h"
|
| #include "components/signin/core/browser/profile_oauth2_token_service.h"
|
| #include "components/signin/core/browser/signin_manager_base.h"
|
| +#include "content/public/test/test_browser_thread_bundle.h"
|
| #include "google_apis/gaia/google_service_auth_error.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace {
|
| -const char* kTestOwner = "test@chromium.org.test";
|
| +const char* kTestOwner = "test.owner@chromium.org.test";
|
| +const char* kTestUser = "test.user@chromium.org.test";
|
| }
|
|
|
| namespace policy {
|
|
|
| -class ConsumerEnrollmentHandlerTest : public BrowserWithTestWindowTest {
|
| +class ConsumerEnrollmentHandlerTest : public testing::Test {
|
| public:
|
| ConsumerEnrollmentHandlerTest()
|
| - : fake_initializer_(new FakeDeviceCloudPolicyInitializer()),
|
| - fake_service_(new FakeConsumerManagementService()) {
|
| + : fake_service_(new FakeConsumerManagementService()),
|
| + fake_initializer_(new FakeDeviceCloudPolicyInitializer()),
|
| + fake_user_manager_(new chromeos::FakeUserManager()),
|
| + scoped_user_manager_enabler_(fake_user_manager_),
|
| + testing_profile_manager_(new TestingProfileManager(
|
| + TestingBrowserProcess::GetGlobal())) {
|
| // Set up FakeConsumerManagementService.
|
| - fake_service_->set_status(ConsumerManagementService::STATUS_ENROLLING);
|
| - fake_service_->SetEnrollmentStage(
|
| + fake_service_->SetStatusAndEnrollmentStage(
|
| + ConsumerManagementService::STATUS_ENROLLING,
|
| ConsumerManagementService::ENROLLMENT_STAGE_OWNER_STORED);
|
|
|
| // Inject fake objects.
|
| @@ -48,69 +54,57 @@ class ConsumerEnrollmentHandlerTest : public BrowserWithTestWindowTest {
|
| make_scoped_ptr(fake_service_));
|
| connector->SetDeviceCloudPolicyInitializerForTesting(
|
| make_scoped_ptr(fake_initializer_));
|
| +
|
| + // Set up FakeUserManager.
|
| + fake_user_manager_->AddUser(kTestOwner);
|
| + fake_user_manager_->AddUser(kTestUser);
|
| + fake_user_manager_->set_owner_email(kTestOwner);
|
| }
|
|
|
| virtual void SetUp() override {
|
| - BrowserWithTestWindowTest::SetUp();
|
| -
|
| - // Set up TestingProfileManager. This is required for NotificationUIManager.
|
| - testing_profile_manager_.reset(new TestingProfileManager(
|
| - TestingBrowserProcess::GetGlobal()));
|
| ASSERT_TRUE(testing_profile_manager_->SetUp());
|
| + profile_ = testing_profile_manager_->CreateTestingProfile(kTestUser);
|
|
|
| // Set up FakeProfileOAuth2TokenService and issue a fake refresh token.
|
| ProfileOAuth2TokenServiceFactory::GetInstance()->SetTestingFactory(
|
| - profile(), &BuildAutoIssuingFakeProfileOAuth2TokenService);
|
| + profile_, &BuildAutoIssuingFakeProfileOAuth2TokenService);
|
| GetFakeProfileOAuth2TokenService()->
|
| IssueRefreshTokenForUser(kTestOwner, "fake_token");
|
|
|
| // Set up the authenticated user name and ID.
|
| - SigninManagerFactory::GetForProfile(profile())->
|
| + SigninManagerFactory::GetForProfile(profile_)->
|
| SetAuthenticatedUsername(kTestOwner);
|
| }
|
|
|
| - virtual void TearDown() override {
|
| - g_browser_process->notification_ui_manager()->CancelAll();
|
| - testing_profile_manager_.reset();
|
| -
|
| - BrowserWithTestWindowTest::TearDown();
|
| - }
|
| -
|
| FakeProfileOAuth2TokenService* GetFakeProfileOAuth2TokenService() {
|
| return static_cast<FakeProfileOAuth2TokenService*>(
|
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile()));
|
| - }
|
| -
|
| - bool HasEnrollmentNotification() {
|
| - return g_browser_process->notification_ui_manager()->FindById(
|
| - "consumer_management.enroll",
|
| - NotificationUIManager::GetProfileID(profile()));
|
| + ProfileOAuth2TokenServiceFactory::GetForProfile(profile_));
|
| }
|
|
|
| void RunEnrollmentTest() {
|
| handler_.reset(
|
| - new ConsumerEnrollmentHandler(profile(), fake_service_, NULL));
|
| + new ConsumerEnrollmentHandler(profile_, fake_service_, NULL));
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| - FakeDeviceCloudPolicyInitializer* fake_initializer_;
|
| + content::TestBrowserThreadBundle thread_bundle;
|
| FakeConsumerManagementService* fake_service_;
|
| + FakeDeviceCloudPolicyInitializer* fake_initializer_;
|
| + chromeos::FakeUserManager* fake_user_manager_;
|
| + chromeos::ScopedUserManagerEnabler scoped_user_manager_enabler_;
|
| scoped_ptr<TestingProfileManager> testing_profile_manager_;
|
| + Profile* profile_;
|
| scoped_ptr<ConsumerEnrollmentHandler> handler_;
|
| };
|
|
|
| TEST_F(ConsumerEnrollmentHandlerTest, EnrollsSuccessfully) {
|
| EXPECT_FALSE(fake_initializer_->was_start_enrollment_called());
|
| - EXPECT_FALSE(HasEnrollmentNotification());
|
|
|
| RunEnrollmentTest();
|
|
|
| EXPECT_TRUE(fake_initializer_->was_start_enrollment_called());
|
| EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_SUCCESS,
|
| - fake_service_->enrollment_stage_before_reset());
|
| - EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_NONE,
|
| fake_service_->GetEnrollmentStage());
|
| - EXPECT_TRUE(HasEnrollmentNotification());
|
| }
|
|
|
| TEST_F(ConsumerEnrollmentHandlerTest, FailsToGetAccessToken) {
|
| @@ -118,7 +112,6 @@ TEST_F(ConsumerEnrollmentHandlerTest, FailsToGetAccessToken) {
|
| // the access token to be available.
|
| GetFakeProfileOAuth2TokenService()->
|
| set_auto_post_fetch_response_on_message_loop(false);
|
| - EXPECT_FALSE(HasEnrollmentNotification());
|
|
|
| RunEnrollmentTest();
|
|
|
| @@ -135,41 +128,19 @@ TEST_F(ConsumerEnrollmentHandlerTest, FailsToGetAccessToken) {
|
|
|
| EXPECT_FALSE(fake_initializer_->was_start_enrollment_called());
|
| EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_GET_TOKEN_FAILED,
|
| - fake_service_->enrollment_stage_before_reset());
|
| - EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_NONE,
|
| fake_service_->GetEnrollmentStage());
|
| - EXPECT_TRUE(HasEnrollmentNotification());
|
| }
|
|
|
| TEST_F(ConsumerEnrollmentHandlerTest, FailsToRegister) {
|
| EXPECT_FALSE(fake_initializer_->was_start_enrollment_called());
|
| fake_initializer_->set_enrollment_status(EnrollmentStatus::ForStatus(
|
| EnrollmentStatus::STATUS_REGISTRATION_FAILED));
|
| - EXPECT_FALSE(HasEnrollmentNotification());
|
|
|
| RunEnrollmentTest();
|
|
|
| EXPECT_TRUE(fake_initializer_->was_start_enrollment_called());
|
| EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_DM_SERVER_FAILED,
|
| - fake_service_->enrollment_stage_before_reset());
|
| - EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_NONE,
|
| - fake_service_->GetEnrollmentStage());
|
| - EXPECT_TRUE(HasEnrollmentNotification());
|
| -}
|
| -
|
| -TEST_F(ConsumerEnrollmentHandlerTest,
|
| - ShowsDesktopNotificationOnlyIfEnrollmentIsAlreadyCompleted) {
|
| - fake_service_->set_status(ConsumerManagementService::STATUS_UNENROLLED);
|
| - fake_service_->SetEnrollmentStage(
|
| - ConsumerManagementService::ENROLLMENT_STAGE_CANCELED);
|
| - EXPECT_FALSE(HasEnrollmentNotification());
|
| -
|
| - RunEnrollmentTest();
|
| -
|
| - EXPECT_FALSE(fake_initializer_->was_start_enrollment_called());
|
| - EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_NONE,
|
| fake_service_->GetEnrollmentStage());
|
| - EXPECT_TRUE(HasEnrollmentNotification());
|
| }
|
|
|
| } // namespace policy
|
|
|