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

Unified Diff: chrome/browser/chromeos/policy/consumer_management_service_unittest.cc

Issue 493613002: Add an enrolling state for consumer management section in settings page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dn
Patch Set: Created 6 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/policy/consumer_management_service_unittest.cc
diff --git a/chrome/browser/chromeos/policy/consumer_management_service_unittest.cc b/chrome/browser/chromeos/policy/consumer_management_service_unittest.cc
index c4063d4d79b8b951dc41da0f7a3e0fa4cd1a2134..d96966c434f7f6d15b0678065deb5a512634d2d2 100644
--- a/chrome/browser/chromeos/policy/consumer_management_service_unittest.cc
+++ b/chrome/browser/chromeos/policy/consumer_management_service_unittest.cc
@@ -7,6 +7,7 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/callback.h"
+#include "base/memory/scoped_ptr.h"
bartfab (slow) 2014/08/21 11:39:35 Actually, I missed it that the header already incl
davidyu 2014/08/22 05:14:13 Done.
#include "base/prefs/pref_registry_simple.h"
#include "base/prefs/pref_service.h"
#include "base/prefs/testing_pref_service.h"
@@ -18,8 +19,10 @@
#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/device_cloud_policy_initializer.h"
+#include "chrome/browser/chromeos/policy/device_policy_builder.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/chromeos/policy/fake_device_cloud_policy_initializer.h"
+#include "chrome/browser/chromeos/settings/device_settings_test_helper.h"
#include "chrome/browser/notifications/notification_ui_manager.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/fake_profile_oauth2_token_service.h"
@@ -28,6 +31,7 @@
#include "chrome/browser/signin/signin_manager_factory.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/browser_with_test_window_test.h"
+#include "chrome/test/base/scoped_testing_local_state.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile.h"
#include "chrome/test/base/testing_profile_manager.h"
@@ -39,6 +43,7 @@
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
#include "google_apis/gaia/google_service_auth_error.h"
+#include "policy/proto/device_management_backend.pb.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -47,6 +52,8 @@ using testing::NiceMock;
using testing::Return;
using testing::_;
+namespace em = enterprise_management;
+
namespace {
const char* kAttributeOwnerId = "consumer_management.owner_id";
const char* kTestOwner = "test@chromium.org.test";
@@ -79,7 +86,8 @@ class ConsumerManagementServiceTest : public BrowserWithTestWindowTest {
TestingBrowserProcess::GetGlobal()));
ASSERT_TRUE(testing_profile_manager_->SetUp());
- service_.reset(new ConsumerManagementService(&mock_cryptohome_client_));
+ service_.reset(new ConsumerManagementService(&mock_cryptohome_client_,
+ NULL));
}
virtual void TearDown() OVERRIDE {
@@ -90,16 +98,15 @@ class ConsumerManagementServiceTest : public BrowserWithTestWindowTest {
BrowserWithTestWindowTest::TearDown();
}
- ConsumerManagementService::ConsumerEnrollmentState GetEnrollmentState() {
- return static_cast<ConsumerManagementService::ConsumerEnrollmentState>(
+ ConsumerManagementService::EnrollmentStage GetEnrollmentStage() {
+ return static_cast<ConsumerManagementService::EnrollmentStage>(
g_browser_process->local_state()->GetInteger(
- prefs::kConsumerManagementEnrollmentState));
+ prefs::kConsumerManagementEnrollmentStage));
}
- void SetEnrollmentState(
- ConsumerManagementService::ConsumerEnrollmentState state) {
+ void SetEnrollmentStage(ConsumerManagementService::EnrollmentStage stage) {
g_browser_process->local_state()->SetInteger(
- prefs::kConsumerManagementEnrollmentState, state);
+ prefs::kConsumerManagementEnrollmentStage, stage);
}
void MockGetBootAttribute(
@@ -130,37 +137,42 @@ class ConsumerManagementServiceTest : public BrowserWithTestWindowTest {
set_owner_status_ = status;
}
+ // Variables for building the service.
NiceMock<chromeos::MockCryptohomeClient> mock_cryptohome_client_;
scoped_ptr<ConsumerManagementService> service_;
scoped_ptr<TestingProfileManager> testing_profile_manager_;
+
+ // Variables for setting the return value or catching the arguments of mock
+ // functions.
chromeos::DBusMethodCallStatus cryptohome_status_;
bool cryptohome_result_;
cryptohome::BaseReply cryptohome_reply_;
cryptohome::GetBootAttributeRequest get_boot_attribute_request_;
cryptohome::SetBootAttributeRequest set_boot_attribute_request_;
-
std::string owner_;
bool set_owner_status_;
};
-TEST_F(ConsumerManagementServiceTest, CanGetEnrollmentState) {
- EXPECT_EQ(ConsumerManagementService::ENROLLMENT_NONE,
- service_->GetEnrollmentState());
+TEST_F(ConsumerManagementServiceTest, CanGetEnrollmentStage) {
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_NONE,
+ service_->GetEnrollmentStage());
- SetEnrollmentState(ConsumerManagementService::ENROLLMENT_REQUESTED);
+ SetEnrollmentStage(ConsumerManagementService::ENROLLMENT_STAGE_REQUESTED);
- EXPECT_EQ(ConsumerManagementService::ENROLLMENT_REQUESTED,
- service_->GetEnrollmentState());
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_REQUESTED,
+ service_->GetEnrollmentStage());
}
-TEST_F(ConsumerManagementServiceTest, CanSetEnrollmentState) {
- EXPECT_EQ(ConsumerManagementService::ENROLLMENT_NONE, GetEnrollmentState());
+TEST_F(ConsumerManagementServiceTest, CanSetEnrollmentStage) {
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_NONE,
+ GetEnrollmentStage());
- service_->SetEnrollmentState(ConsumerManagementService::ENROLLMENT_REQUESTED);
+ service_->SetEnrollmentStage(
+ ConsumerManagementService::ENROLLMENT_STAGE_REQUESTED);
- EXPECT_EQ(ConsumerManagementService::ENROLLMENT_REQUESTED,
- GetEnrollmentState());
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_REQUESTED,
+ GetEnrollmentStage());
}
TEST_F(ConsumerManagementServiceTest, CanGetOwner) {
@@ -224,7 +236,7 @@ class ConsumerManagementServiceEnrollmentTest
// Set up MockUserManager. The first user will be the owner.
mock_user_manager_->AddUser(kTestOwner);
- // Return false for IsCurrentUserOwner() so that the enrollment state is not
+ // Return false for IsCurrentUserOwner() so that the enrollment stage is not
// reset.
ON_CALL(*mock_user_manager_, IsCurrentUserOwner())
.WillByDefault(Return(false));
@@ -252,9 +264,10 @@ class ConsumerManagementServiceEnrollmentTest
SigninManagerFactory::GetForProfile(profile())->
SetAuthenticatedUsername(kTestOwner);
- // The service should continue the enrollment process if the state is
- // ENROLLMENT_OWNER_STORED.
- SetEnrollmentState(ConsumerManagementService::ENROLLMENT_OWNER_STORED);
+ // The service should continue the enrollment process if the stage is
+ // ENROLLMENT_STAGE_OWNER_STORED.
+ SetEnrollmentStage(
+ ConsumerManagementService::ENROLLMENT_STAGE_OWNER_STORED);
}
virtual void TearDown() OVERRIDE {
@@ -293,22 +306,23 @@ TEST_F(ConsumerManagementServiceEnrollmentTest, EnrollsSuccessfully) {
RunEnrollmentTest();
EXPECT_TRUE(fake_initializer_->was_start_enrollment_called());
- EXPECT_EQ(ConsumerManagementService::ENROLLMENT_SUCCESS,
- GetEnrollmentState());
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_SUCCESS,
+ GetEnrollmentStage());
EXPECT_FALSE(HasEnrollmentNotification());
}
TEST_F(ConsumerManagementServiceEnrollmentTest,
- ShowsDesktopNotificationAndResetsEnrollmentStateIfCurrentUserIsOwner) {
- EXPECT_EQ(ConsumerManagementService::ENROLLMENT_OWNER_STORED,
- GetEnrollmentState());
+ ShowsDesktopNotificationAndResetsEnrollmentStageIfCurrentUserIsOwner) {
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_OWNER_STORED,
+ GetEnrollmentStage());
EXPECT_FALSE(HasEnrollmentNotification());
EXPECT_CALL(*mock_user_manager_, IsCurrentUserOwner())
.WillOnce(Return(true));
RunEnrollmentTest();
- EXPECT_EQ(ConsumerManagementService::ENROLLMENT_NONE, GetEnrollmentState());
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_NONE,
+ GetEnrollmentStage());
EXPECT_TRUE(HasEnrollmentNotification());
}
@@ -332,8 +346,8 @@ TEST_F(ConsumerManagementServiceEnrollmentTest, FailsToGetAccessToken) {
GoogleServiceAuthError(GoogleServiceAuthError::SERVICE_ERROR));
EXPECT_FALSE(fake_initializer_->was_start_enrollment_called());
- EXPECT_EQ(ConsumerManagementService::ENROLLMENT_GET_TOKEN_FAILED,
- GetEnrollmentState());
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_GET_TOKEN_FAILED,
+ GetEnrollmentStage());
}
TEST_F(ConsumerManagementServiceEnrollmentTest, FailsToRegister) {
@@ -344,20 +358,76 @@ TEST_F(ConsumerManagementServiceEnrollmentTest, FailsToRegister) {
RunEnrollmentTest();
EXPECT_TRUE(fake_initializer_->was_start_enrollment_called());
- EXPECT_EQ(ConsumerManagementService::ENROLLMENT_DM_SERVER_FAILED,
- GetEnrollmentState());
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_DM_SERVER_FAILED,
+ GetEnrollmentStage());
}
TEST_F(ConsumerManagementServiceEnrollmentTest,
ShowsDesktopNotificationOnlyIfEnrollmentIsAlreadyCompleted) {
- SetEnrollmentState(ConsumerManagementService::ENROLLMENT_CANCELED);
+ SetEnrollmentStage(ConsumerManagementService::ENROLLMENT_STAGE_CANCELED);
EXPECT_FALSE(HasEnrollmentNotification());
RunEnrollmentTest();
EXPECT_FALSE(fake_initializer_->was_start_enrollment_called());
- EXPECT_EQ(ConsumerManagementService::ENROLLMENT_NONE, GetEnrollmentState());
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_NONE,
+ GetEnrollmentStage());
EXPECT_TRUE(HasEnrollmentNotification());
}
+class ConsumerManagementServiceStatusTest
+ : public chromeos::DeviceSettingsTestBase {
+ public:
+ ConsumerManagementServiceStatusTest()
+ : testing_local_state_(TestingBrowserProcess::GetGlobal()),
+ service_(NULL, &device_settings_service_) {
+ }
+
+ void SetEnrollmentStage(ConsumerManagementService::EnrollmentStage stage) {
+ testing_local_state_.Get()->SetInteger(
+ prefs::kConsumerManagementEnrollmentStage, stage);
+ }
+
+ void SetManagementMode(em::PolicyData::ManagementMode mode) {
+ device_policy_.policy_data().set_management_mode(mode);
+ device_policy_.Build();
+ device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
+ ReloadDeviceSettings();
+ }
+
+ ScopedTestingLocalState testing_local_state_;
+ ConsumerManagementService service_;
+};
+
+TEST_F(ConsumerManagementServiceStatusTest, GetStatusWorks) {
+ EXPECT_EQ(ConsumerManagementService::STATUS_UNKNOWN, service_.GetStatus());
+
+ SetManagementMode(em::PolicyData::NOT_MANAGED);
+ SetEnrollmentStage(ConsumerManagementService::ENROLLMENT_STAGE_NONE);
+
+ EXPECT_EQ(ConsumerManagementService::STATUS_UNENROLLED, service_.GetStatus());
+
+ SetEnrollmentStage(ConsumerManagementService::ENROLLMENT_STAGE_REQUESTED);
+
+ EXPECT_EQ(ConsumerManagementService::STATUS_ENROLLING, service_.GetStatus());
+
+ SetManagementMode(em::PolicyData::CONSUMER_MANAGED);
+ SetEnrollmentStage(ConsumerManagementService::ENROLLMENT_STAGE_SUCCESS);
+
+ EXPECT_EQ(ConsumerManagementService::STATUS_ENROLLED, service_.GetStatus());
+
+ // TODO(davidyu): Test for STATUS_UNENROLLING when it is implemented.
+ // http://crbug.com/353050.
+}
+
+TEST_F(ConsumerManagementServiceStatusTest, GetStatusStringWorks) {
+ EXPECT_EQ("STATUS_UNKNOWN",
+ ConsumerManagementService::GetStatusString(
+ ConsumerManagementService::STATUS_UNKNOWN));
+
+ EXPECT_EQ("STATUS_UNENROLLED",
+ ConsumerManagementService::GetStatusString(
+ ConsumerManagementService::STATUS_UNENROLLED));
+}
+
} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698