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

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

Issue 672653002: Test that AutoEnrollmentClient stores server-backed state correctly (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@e_1_425574_add_disabled_device_screen
Patch Set: Addressed nit. Created 6 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/policy/auto_enrollment_client_unittest.cc
diff --git a/chrome/browser/chromeos/policy/auto_enrollment_client_unittest.cc b/chrome/browser/chromeos/policy/auto_enrollment_client_unittest.cc
index bdeb71210d6f28ce5119fc3b032dee6322e423d5..ff0eb3afbb6c9ae375beab1da044669a8d63a01a 100644
--- a/chrome/browser/chromeos/policy/auto_enrollment_client_unittest.cc
+++ b/chrome/browser/chromeos/policy/auto_enrollment_client_unittest.cc
@@ -13,6 +13,7 @@
#include "base/strings/stringprintf.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/chromeos/policy/server_backed_device_state.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/scoped_testing_local_state.h"
#include "chrome/test/base/testing_browser_process.h"
@@ -148,6 +149,29 @@ class AutoEnrollmentClientTest : public testing::Test {
local_state_->GetUserPref(prefs::kAutoEnrollmentPowerLimit)));
}
+ bool HasServerBackedState() {
+ return local_state_->GetUserPref(prefs::kServerBackedDeviceState);
+ }
+
+ void VerifyServerBackedState(const std::string& expected_management_domain,
+ const std::string& expected_restore_mode) {
+ const base::Value* state =
+ local_state_->GetUserPref(prefs::kServerBackedDeviceState);
+ ASSERT_TRUE(state);
+ const base::DictionaryValue* state_dict = nullptr;
+ ASSERT_TRUE(state->GetAsDictionary(&state_dict));
+
+ std::string actual_management_domain;
+ EXPECT_TRUE(state_dict->GetString(kDeviceStateManagementDomain,
+ &actual_management_domain));
+ EXPECT_EQ(expected_management_domain, actual_management_domain);
+
+ std::string actual_restore_mode;
+ EXPECT_TRUE(state_dict->GetString(kDeviceStateRestoreMode,
+ &actual_restore_mode));
+ EXPECT_EQ(expected_restore_mode, actual_restore_mode);
+ }
+
const em::DeviceAutoEnrollmentRequest& auto_enrollment_request() {
return last_request_.auto_enrollment_request();
}
@@ -169,6 +193,7 @@ TEST_F(AutoEnrollmentClientTest, NetworkFailure) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_);
EXPECT_FALSE(HasCachedDecision());
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, EmptyReply) {
@@ -176,6 +201,7 @@ TEST_F(AutoEnrollmentClientTest, EmptyReply) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_);
VerifyCachedResult(false, 8);
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, ClientUploadsRightBits) {
@@ -188,6 +214,7 @@ TEST_F(AutoEnrollmentClientTest, ClientUploadsRightBits) {
EXPECT_EQ(16, auto_enrollment_request().modulus());
EXPECT_EQ(kStateKeyHash[31] & 0xf, auto_enrollment_request().remainder());
VerifyCachedResult(false, 8);
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, AskForMoreThenFail) {
@@ -197,6 +224,7 @@ TEST_F(AutoEnrollmentClientTest, AskForMoreThenFail) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_);
EXPECT_FALSE(HasCachedDecision());
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, AskForMoreThenEvenMore) {
@@ -206,6 +234,7 @@ TEST_F(AutoEnrollmentClientTest, AskForMoreThenEvenMore) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_);
EXPECT_FALSE(HasCachedDecision());
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, AskForLess) {
@@ -218,6 +247,8 @@ TEST_F(AutoEnrollmentClientTest, AskForLess) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
VerifyCachedResult(true, 8);
+ VerifyServerBackedState("example.com",
+ kDeviceStateRestoreModeReEnrollmentEnforced);
}
TEST_F(AutoEnrollmentClientTest, AskForSame) {
@@ -230,6 +261,8 @@ TEST_F(AutoEnrollmentClientTest, AskForSame) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
VerifyCachedResult(true, 8);
+ VerifyServerBackedState("example.com",
+ kDeviceStateRestoreModeReEnrollmentEnforced);
}
TEST_F(AutoEnrollmentClientTest, AskForSameTwice) {
@@ -239,6 +272,7 @@ TEST_F(AutoEnrollmentClientTest, AskForSameTwice) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_);
EXPECT_FALSE(HasCachedDecision());
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, AskForTooMuch) {
@@ -246,6 +280,7 @@ TEST_F(AutoEnrollmentClientTest, AskForTooMuch) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_);
EXPECT_FALSE(HasCachedDecision());
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, AskNonPowerOf2) {
@@ -259,6 +294,7 @@ TEST_F(AutoEnrollmentClientTest, AskNonPowerOf2) {
EXPECT_EQ(128, auto_enrollment_request().modulus());
EXPECT_EQ(kStateKeyHash[31] & 0x7f, auto_enrollment_request().remainder());
VerifyCachedResult(false, 8);
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, ConsumerDevice) {
@@ -266,6 +302,7 @@ TEST_F(AutoEnrollmentClientTest, ConsumerDevice) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_);
VerifyCachedResult(false, 8);
+ EXPECT_FALSE(HasServerBackedState());
// Network changes don't trigger retries after obtaining a response from
// the server.
@@ -281,6 +318,8 @@ TEST_F(AutoEnrollmentClientTest, EnterpriseDevice) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
VerifyCachedResult(true, 8);
+ VerifyServerBackedState("example.com",
+ kDeviceStateRestoreModeReEnrollmentEnforced);
// Network changes don't trigger retries after obtaining a response from
// the server.
@@ -293,6 +332,7 @@ TEST_F(AutoEnrollmentClientTest, NoSerial) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_);
EXPECT_FALSE(HasCachedDecision());
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, NoBitsUploaded) {
@@ -305,6 +345,7 @@ TEST_F(AutoEnrollmentClientTest, NoBitsUploaded) {
EXPECT_EQ(1, auto_enrollment_request().modulus());
EXPECT_EQ(0, auto_enrollment_request().remainder());
VerifyCachedResult(false, 0);
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, ManyBitsUploaded) {
@@ -320,6 +361,7 @@ TEST_F(AutoEnrollmentClientTest, ManyBitsUploaded) {
EXPECT_EQ(bottom62 % (GG_INT64_C(1) << i),
auto_enrollment_request().remainder());
VerifyCachedResult(false, i);
+ EXPECT_FALSE(HasServerBackedState());
}
}
@@ -334,6 +376,8 @@ TEST_F(AutoEnrollmentClientTest, MoreThan32BitsUploaded) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
VerifyCachedResult(true, 37);
+ VerifyServerBackedState("example.com",
+ kDeviceStateRestoreModeReEnrollmentEnforced);
}
TEST_F(AutoEnrollmentClientTest, ReuseCachedDecision) {
@@ -347,9 +391,12 @@ TEST_F(AutoEnrollmentClientTest, ReuseCachedDecision) {
em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED);
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
+ VerifyServerBackedState("example.com",
+ kDeviceStateRestoreModeReEnrollmentEnforced);
AutoEnrollmentClient::CancelAutoEnrollment();
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_);
+ EXPECT_FALSE(HasServerBackedState());
}
TEST_F(AutoEnrollmentClientTest, RetryIfPowerLargerThanCached) {
@@ -364,6 +411,8 @@ TEST_F(AutoEnrollmentClientTest, RetryIfPowerLargerThanCached) {
em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED);
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
+ VerifyServerBackedState("example.com",
+ kDeviceStateRestoreModeReEnrollmentEnforced);
}
TEST_F(AutoEnrollmentClientTest, NetworkChangeRetryAfterErrors) {
@@ -372,11 +421,13 @@ TEST_F(AutoEnrollmentClientTest, NetworkChangeRetryAfterErrors) {
// Don't invoke the callback if there was a network failure.
EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_);
EXPECT_FALSE(HasCachedDecision());
+ EXPECT_FALSE(HasServerBackedState());
// The client doesn't retry if no new connection became available.
client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_NONE);
EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_);
EXPECT_FALSE(HasCachedDecision());
+ EXPECT_FALSE(HasServerBackedState());
// Retry once the network is back.
ServerWillReply(-1, true, true);
@@ -386,12 +437,16 @@ TEST_F(AutoEnrollmentClientTest, NetworkChangeRetryAfterErrors) {
client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET);
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
EXPECT_TRUE(HasCachedDecision());
+ VerifyServerBackedState("example.com",
+ kDeviceStateRestoreModeReEnrollmentEnforced);
// Subsequent network changes don't trigger retries.
client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_NONE);
client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET);
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
EXPECT_TRUE(HasCachedDecision());
+ VerifyServerBackedState("example.com",
+ kDeviceStateRestoreModeReEnrollmentEnforced);
}
TEST_F(AutoEnrollmentClientTest, CancelAndDeleteSoonWithPendingRequest) {
@@ -452,6 +507,8 @@ TEST_F(AutoEnrollmentClientTest, CancelAndDeleteSoonAfterCompletion) {
em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED);
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
+ VerifyServerBackedState("example.com",
+ kDeviceStateRestoreModeReEnrollmentEnforced);
// The client will delete itself immediately if there are no pending
// requests.
@@ -482,6 +539,7 @@ TEST_F(AutoEnrollmentClientTest, NetworkFailureThenRequireUpdatedModulus) {
// Callback should signal the connection error.
EXPECT_EQ(AUTO_ENROLLMENT_STATE_CONNECTION_ERROR, state_);
EXPECT_FALSE(HasCachedDecision());
+ EXPECT_FALSE(HasServerBackedState());
Mock::VerifyAndClearExpectations(service_.get());
InSequence sequence;
@@ -501,6 +559,8 @@ TEST_F(AutoEnrollmentClientTest, NetworkFailureThenRequireUpdatedModulus) {
client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET);
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
EXPECT_TRUE(HasCachedDecision());
+ VerifyServerBackedState("example.com",
+ kDeviceStateRestoreModeReEnrollmentEnforced);
Mock::VerifyAndClearExpectations(service_.get());
}
@@ -513,6 +573,7 @@ TEST_F(AutoEnrollmentClientTest, NoDeviceStateRetrieval) {
client_->Start();
EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
VerifyCachedResult(true, 8);
+ EXPECT_FALSE(HasServerBackedState());
}
} // namespace
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698