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

Unified Diff: session_manager_unittest.cc

Issue 6815021: [login_manager] Code to add the owner to the whitelist in a device policy (Closed) Base URL: http://git.chromium.org/git/login_manager.git@master
Patch Set: address gauravsh comments Created 9 years, 8 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 | « session_manager_service.cc ('k') | system_utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: session_manager_unittest.cc
diff --git a/session_manager_unittest.cc b/session_manager_unittest.cc
index daa63433b42ff0c7803bf67fdd22ce33523979c0..be966ea000e0f0cd5168f0e5f195aca573ad7082 100644
--- a/session_manager_unittest.cc
+++ b/session_manager_unittest.cc
@@ -164,12 +164,7 @@ class SessionManagerTest : public ::testing::Test {
MockOwnerKey* key = new MockOwnerKey;
EXPECT_CALL(*key, PopulateFromDiskIfPossible())
.WillRepeatedly(Return(true));
- // First, expect an attempt to set the device owner property, but
- // act like this user isn't the owner.
- EXPECT_CALL(*key, Sign(_, _, _))
- .WillOnce(Return(false));
- manager_->test_api().set_ownerkey(key);
- // Now, expect an attempt to check whether this user is the owner; respond
+ // Expect an attempt to check whether this user is the owner; respond
// as though he is not.
std::string other_user("notme");
EXPECT_CALL(*store, Get(_, _, _))
@@ -183,6 +178,7 @@ class SessionManagerTest : public ::testing::Test {
EXPECT_CALL(*key, IsPopulated())
.WillOnce(Return(true))
.WillOnce(Return(true));
+ manager_->test_api().set_ownerkey(key);
}
void ExpectStartSessionUnowned(const std::string& email_string,
@@ -208,9 +204,6 @@ class SessionManagerTest : public ::testing::Test {
.WillRepeatedly(Return(true));
EXPECT_CALL(*key, StartGeneration(k_job))
.WillOnce(Return(keygen_pid));
- // act like this user isn't the owner.
- EXPECT_CALL(*key, Sign(_, _, _))
- .WillOnce(Return(false));
// Now, expect an attempt to check whether this user is the owner; respond
// as though there isn't one.
@@ -236,25 +229,30 @@ class SessionManagerTest : public ::testing::Test {
void ExpectStartSessionForOwner(const std::string& email_string,
MockOwnerKey* key,
- MockPrefStore* store) {
+ MockPrefStore* store,
+ bool has_key) {
ON_CALL(*key, PopulateFromDiskIfPossible())
.WillByDefault(Return(true));
- // First, mimic attempt to whitelist the owner and set a the
- // device owner pref.
- EXPECT_CALL(*key, Sign(_, _, _))
- .WillOnce(Return(true))
- .RetiresOnSaturation();
- EXPECT_CALL(*store, Set(_, email_string, _))
- .Times(1);
- EXPECT_CALL(*key, Sign(CastEq(email_string), email_string.length(), _))
- .WillOnce(Return(true))
- .RetiresOnSaturation();
- EXPECT_CALL(*store, Whitelist(email_string, _))
- .Times(1);
+ int persist_times = 1;
+ if (has_key) {
+ // First, mimic attempt to whitelist the owner and set the
+ // device owner pref.
+ EXPECT_CALL(*key, Sign(_, _, _))
+ .WillOnce(Return(true))
+ .RetiresOnSaturation();
+ EXPECT_CALL(*store, Set(_, email_string, _))
+ .Times(1);
+ EXPECT_CALL(*key, Sign(CastEq(email_string), email_string.length(), _))
+ .WillOnce(Return(true))
+ .RetiresOnSaturation();
+ EXPECT_CALL(*store, Whitelist(email_string, _))
+ .Times(1);
+ persist_times = 3;
+ }
EXPECT_CALL(*store, Persist())
- .WillOnce(Return(true))
- .WillOnce(Return(true))
- .WillOnce(Return(true));
+ .Times(persist_times)
+ .WillRepeatedly(Return(true));
+
// Now, expect an attempt to check whether this user is the owner;
// respond as though he is.
EXPECT_CALL(*store, Get(_, _, _))
@@ -506,7 +504,7 @@ TEST_F(SessionManagerTest, KeygenTest) {
int pid = fork();
if (pid == 0) {
execl("./keygen", "./keygen", key_file_path.value().c_str(), NULL);
- exit(1);
+ exit(255);
}
int status;
while (waitpid(pid, &status, 0) == -1 && errno == EINTR)
@@ -518,13 +516,13 @@ TEST_F(SessionManagerTest, KeygenTest) {
<< " WIFEXITED is " << WIFEXITED(status) << "\n"
<< " WEXITSTATUS is " << WEXITSTATUS(status);
- ASSERT_TRUE(WIFEXITED(status) && WEXITSTATUS(status) == 0);
- ASSERT_TRUE(file_util::PathExists(key_file_path));
+ EXPECT_TRUE(WIFEXITED(status) && WEXITSTATUS(status) == 0);
+ EXPECT_TRUE(file_util::PathExists(key_file_path));
SystemUtils utils;
int32 file_size = 0;
- ASSERT_TRUE(utils.EnsureAndReturnSafeFileSize(key_file_path, &file_size));
- ASSERT_GT(file_size, 0);
+ EXPECT_TRUE(utils.EnsureAndReturnSafeFileSize(key_file_path, &file_size));
+ EXPECT_GT(file_size, 0);
}
TEST_F(SessionManagerTest, SessionNotStartedCleanup) {
@@ -639,6 +637,9 @@ TEST_F(SessionManagerTest, HonorShouldNeverKill) {
}
TEST_F(SessionManagerTest, StartSession) {
+ MockFactory<KeyFailUtil> factory;
+ NssUtil::set_factory(&factory);
+
MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER);
gboolean out;
@@ -651,6 +652,9 @@ TEST_F(SessionManagerTest, StartSession) {
}
TEST_F(SessionManagerTest, StartSessionNew) {
+ MockFactory<KeyFailUtil> factory;
+ NssUtil::set_factory(&factory);
+
gboolean out;
gchar email[] = "user@somewhere";
gchar nothing[] = "";
@@ -689,7 +693,7 @@ TEST_F(SessionManagerTest, StartOwnerSession) {
MockOwnerKey* key = new MockOwnerKey;
MockPrefStore* store = new MockPrefStore;
MockDevicePolicy* policy = new MockDevicePolicy;
- ExpectStartSessionForOwner(email, key, store);
+ ExpectStartSessionForOwner(email, key, store, true);
EXPECT_CALL(*policy, Persist())
.WillOnce(Return(true));
@@ -712,22 +716,12 @@ TEST_F(SessionManagerTest, StartOwnerSessionNoKeyNoRecover) {
gchar nothing[] = "";
MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER);
- EXPECT_CALL(*(utils_.get()),
- SendSignalToChromium(chromium::kPropertyChangeCompleteSignal,
- StrEq("success")))
- .Times(1);
- EXPECT_CALL(*(utils_.get()),
- SendSignalToChromium(chromium::kWhitelistChangeCompleteSignal,
- StrEq("success")))
- .Times(1);
- MockUtils();
-
EXPECT_CALL(*mitigator_, Mitigate())
.WillOnce(Return(false));
MockOwnerKey* key = new MockOwnerKey;
MockPrefStore* store = new MockPrefStore;
MockDevicePolicy* policy = new MockDevicePolicy;
- ExpectStartSessionForOwner(email, key, store);
+ ExpectStartSessionForOwner(email, key, store, false);
EXPECT_CALL(*policy, Persist())
.WillOnce(Return(true));
« no previous file with comments | « session_manager_service.cc ('k') | system_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698