| OLD | NEW |
| 1 // Copyright (c) 2009-2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "login_manager/session_manager_service.h" | 5 #include "login_manager/session_manager_service.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 #include <gtest/gtest.h> | 8 #include <gtest/gtest.h> |
| 9 #include <signal.h> | 9 #include <signal.h> |
| 10 #include <unistd.h> | 10 #include <unistd.h> |
| 11 | 11 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 42 using ::testing::AnyNumber; | 42 using ::testing::AnyNumber; |
| 43 using ::testing::AtMost; | 43 using ::testing::AtMost; |
| 44 using ::testing::DoAll; | 44 using ::testing::DoAll; |
| 45 using ::testing::Invoke; | 45 using ::testing::Invoke; |
| 46 using ::testing::Eq; | 46 using ::testing::Eq; |
| 47 using ::testing::Return; | 47 using ::testing::Return; |
| 48 using ::testing::SetArgumentPointee; | 48 using ::testing::SetArgumentPointee; |
| 49 using ::testing::StrEq; | 49 using ::testing::StrEq; |
| 50 using ::testing::_; | 50 using ::testing::_; |
| 51 | 51 |
| 52 MATCHER_P(CastEq, str, "") { \ |
| 53 return std::string(reinterpret_cast<const char*>(arg)) == str; \ |
| 54 } |
| 55 |
| 52 static const char kCheckedFile[] = "/tmp/checked_file"; | 56 static const char kCheckedFile[] = "/tmp/checked_file"; |
| 53 static const char kUptimeFile[] = "/tmp/uptime-chrome-exec"; | 57 static const char kUptimeFile[] = "/tmp/uptime-chrome-exec"; |
| 54 static const char kDiskFile[] = "/tmp/disk-chrome-exec"; | 58 static const char kDiskFile[] = "/tmp/disk-chrome-exec"; |
| 55 | 59 |
| 56 // compatible with void Run() | 60 // compatible with void Run() |
| 57 static void BadExit() { _exit(1); } | 61 static void BadExit() { _exit(1); } |
| 58 static void BadExitAfterSleep() { sleep(1); _exit(1); } | 62 static void BadExitAfterSleep() { sleep(1); _exit(1); } |
| 59 static void RunAndSleep() { while (true) { sleep(1); } }; | 63 static void RunAndSleep() { while (true) { sleep(1); } }; |
| 60 static void CleanExit() { _exit(0); } | 64 static void CleanExit() { _exit(0); } |
| 61 | 65 |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 std::string other_user("notme"); | 174 std::string other_user("notme"); |
| 171 EXPECT_CALL(*store, Get(_, _, _)) | 175 EXPECT_CALL(*store, Get(_, _, _)) |
| 172 .WillOnce(DoAll(SetArgumentPointee<1>(other_user), | 176 .WillOnce(DoAll(SetArgumentPointee<1>(other_user), |
| 173 Return(true))); | 177 Return(true))); |
| 174 EXPECT_CALL(*key, Verify(_, _, _, _)) | 178 EXPECT_CALL(*key, Verify(_, _, _, _)) |
| 175 .WillOnce(Return(true)); | 179 .WillOnce(Return(true)); |
| 176 // Confirm that the device is owned. | 180 // Confirm that the device is owned. |
| 177 EXPECT_CALL(*key, HaveCheckedDisk()) | 181 EXPECT_CALL(*key, HaveCheckedDisk()) |
| 178 .WillOnce(Return(true)); | 182 .WillOnce(Return(true)); |
| 179 EXPECT_CALL(*key, IsPopulated()) | 183 EXPECT_CALL(*key, IsPopulated()) |
| 184 .WillOnce(Return(true)) |
| 180 .WillOnce(Return(true)); | 185 .WillOnce(Return(true)); |
| 181 } | 186 } |
| 182 | 187 |
| 183 void ExpectStartSessionUnowned(const std::string& email_string, | 188 void ExpectStartSessionUnowned(const std::string& email_string, |
| 184 MockPrefStore* store) { | 189 MockPrefStore* store) { |
| 185 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); | 190 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); |
| 186 EXPECT_CALL(*job, StartSession(email_string)) | 191 EXPECT_CALL(*job, StartSession(email_string)) |
| 187 .Times(1); | 192 .Times(1); |
| 188 | 193 |
| 189 MockChildJob* k_job = new MockChildJob; | 194 MockChildJob* k_job = new MockChildJob; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 MockPrefStore* store) { | 239 MockPrefStore* store) { |
| 235 ON_CALL(*key, PopulateFromDiskIfPossible()) | 240 ON_CALL(*key, PopulateFromDiskIfPossible()) |
| 236 .WillByDefault(Return(true)); | 241 .WillByDefault(Return(true)); |
| 237 // First, mimic attempt to whitelist the owner and set a the | 242 // First, mimic attempt to whitelist the owner and set a the |
| 238 // device owner pref. | 243 // device owner pref. |
| 239 EXPECT_CALL(*key, Sign(_, _, _)) | 244 EXPECT_CALL(*key, Sign(_, _, _)) |
| 240 .WillOnce(Return(true)) | 245 .WillOnce(Return(true)) |
| 241 .RetiresOnSaturation(); | 246 .RetiresOnSaturation(); |
| 242 EXPECT_CALL(*store, Set(_, email_string, _)) | 247 EXPECT_CALL(*store, Set(_, email_string, _)) |
| 243 .Times(1); | 248 .Times(1); |
| 244 EXPECT_CALL(*key, Sign(StrEq(email_string), email_string.length(), _)) | 249 EXPECT_CALL(*key, Sign(CastEq(email_string), email_string.length(), _)) |
| 245 .WillOnce(Return(true)) | 250 .WillOnce(Return(true)) |
| 246 .RetiresOnSaturation(); | 251 .RetiresOnSaturation(); |
| 247 EXPECT_CALL(*store, Whitelist(email_string, _)) | 252 EXPECT_CALL(*store, Whitelist(email_string, _)) |
| 248 .Times(1); | 253 .Times(1); |
| 249 EXPECT_CALL(*store, Persist()) | 254 EXPECT_CALL(*store, Persist()) |
| 250 .WillOnce(Return(true)) | 255 .WillOnce(Return(true)) |
| 251 .WillOnce(Return(true)) | 256 .WillOnce(Return(true)) |
| 252 .WillOnce(Return(true)); | 257 .WillOnce(Return(true)); |
| 253 // Now, expect an attempt to check whether this user is the owner; | 258 // Now, expect an attempt to check whether this user is the owner; |
| 254 // respond as though he is. | 259 // respond as though he is. |
| 255 EXPECT_CALL(*store, Get(_, _, _)) | 260 EXPECT_CALL(*store, Get(_, _, _)) |
| 256 .WillOnce(DoAll(SetArgumentPointee<1>(email_string), | 261 .WillOnce(DoAll(SetArgumentPointee<1>(email_string), |
| 257 Return(true))); | 262 Return(true))); |
| 258 EXPECT_CALL(*key, Verify(_, _, _, _)) | 263 EXPECT_CALL(*key, Verify(_, _, _, _)) |
| 259 .WillOnce(Return(true)); | 264 .WillOnce(Return(true)); |
| 260 // Confirm that the device is owned. | 265 // Confirm that the device is owned. |
| 261 EXPECT_CALL(*key, HaveCheckedDisk()) | 266 EXPECT_CALL(*key, HaveCheckedDisk()) |
| 262 .Times(AtMost(1)) | 267 .Times(AtMost(1)) |
| 263 .WillRepeatedly(Return(true)); | 268 .WillRepeatedly(Return(true)); |
| 264 EXPECT_CALL(*key, IsPopulated()) | 269 EXPECT_CALL(*key, IsPopulated()) |
| 265 .Times(AtMost(1)) | 270 .Times(AtMost(2)) |
| 266 .WillRepeatedly(Return(true)); | 271 .WillRepeatedly(Return(true)); |
| 267 } | 272 } |
| 268 | 273 |
| 269 void StartFakeSession() { | 274 void StartFakeSession() { |
| 270 manager_->test_api().set_session_started(true, kFakeEmail); | 275 manager_->test_api().set_session_started(true, kFakeEmail); |
| 271 } | 276 } |
| 272 | 277 |
| 273 enum ChildRuns { | 278 enum ChildRuns { |
| 274 ALWAYS, NEVER, ONCE, EXACTLY_ONCE, TWICE, MAYBE_NEVER | 279 ALWAYS, NEVER, ONCE, EXACTLY_ONCE, TWICE, MAYBE_NEVER |
| 275 }; | 280 }; |
| (...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 805 SendSignalToChromium(chromium::kPropertyChangeCompleteSignal, | 810 SendSignalToChromium(chromium::kPropertyChangeCompleteSignal, |
| 806 StrEq("success"))) | 811 StrEq("success"))) |
| 807 .Times(1); | 812 .Times(1); |
| 808 EXPECT_CALL(*(utils_.get()), | 813 EXPECT_CALL(*(utils_.get()), |
| 809 SendSignalToChromium(chromium::kWhitelistChangeCompleteSignal, | 814 SendSignalToChromium(chromium::kWhitelistChangeCompleteSignal, |
| 810 StrEq("success"))) | 815 StrEq("success"))) |
| 811 .Times(1); | 816 .Times(1); |
| 812 MockUtils(); | 817 MockUtils(); |
| 813 | 818 |
| 814 std::vector<uint8> pub_key; | 819 std::vector<uint8> pub_key; |
| 815 NssUtil::KeyFromBuffer(kPropValue, &pub_key); | 820 NssUtil::BlobFromBuffer(kPropValue, &pub_key); |
| 816 | 821 |
| 817 MockPrefStore* store = new MockPrefStore; | 822 MockPrefStore* store = new MockPrefStore; |
| 818 MockOwnerKey* key = new MockOwnerKey; | 823 MockOwnerKey* key = new MockOwnerKey; |
| 819 MockDevicePolicy* policy = new MockDevicePolicy; | 824 MockDevicePolicy* policy = new MockDevicePolicy; |
| 820 | 825 |
| 821 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) | 826 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) |
| 822 .WillOnce(Return(true)); | 827 .WillOnce(Return(true)); |
| 823 EXPECT_CALL(*key, PopulateFromBuffer(pub_key)) | 828 EXPECT_CALL(*key, PopulateFromBuffer(pub_key)) |
| 824 .WillOnce(Return(true)); | 829 .WillOnce(Return(true)); |
| 825 EXPECT_CALL(*key, Sign(_, _, _)) | 830 EXPECT_CALL(*key, Sign(_, _, _)) |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 869 | 874 |
| 870 TEST_F(SessionManagerTest, WhitelistVerifyFail) { | 875 TEST_F(SessionManagerTest, WhitelistVerifyFail) { |
| 871 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); | 876 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); |
| 872 MockUtils(); | 877 MockUtils(); |
| 873 | 878 |
| 874 MockOwnerKey* key = new MockOwnerKey; | 879 MockOwnerKey* key = new MockOwnerKey; |
| 875 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) | 880 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) |
| 876 .WillOnce(Return(true)); | 881 .WillOnce(Return(true)); |
| 877 EXPECT_CALL(*key, IsPopulated()) | 882 EXPECT_CALL(*key, IsPopulated()) |
| 878 .WillOnce(Return(true)); | 883 .WillOnce(Return(true)); |
| 879 EXPECT_CALL(*key, Verify(StrEq(kFakeEmail), strlen(kFakeEmail), | 884 EXPECT_CALL(*key, Verify(CastEq(kFakeEmail), strlen(kFakeEmail), |
| 880 fake_sig_->data, fake_sig_->len)) | 885 CastEq(fake_sig_->data), fake_sig_->len)) |
| 881 .WillOnce(Return(false)); | 886 .WillOnce(Return(false)); |
| 882 manager_->test_api().set_ownerkey(key); | 887 manager_->test_api().set_ownerkey(key); |
| 883 | 888 |
| 884 GError* error = NULL; | 889 GError* error = NULL; |
| 885 EXPECT_EQ(FALSE, manager_->Whitelist(kFakeEmail, fake_sig_, &error)); | 890 EXPECT_EQ(FALSE, manager_->Whitelist(kFakeEmail, fake_sig_, &error)); |
| 886 EXPECT_EQ(CHROMEOS_LOGIN_ERROR_VERIFY_FAIL, error->code); | 891 EXPECT_EQ(CHROMEOS_LOGIN_ERROR_VERIFY_FAIL, error->code); |
| 887 g_error_free(error); | 892 g_error_free(error); |
| 888 SimpleRunManager(new MockPrefStore, new MockDevicePolicy); | 893 SimpleRunManager(new MockPrefStore, new MockDevicePolicy); |
| 889 } | 894 } |
| 890 | 895 |
| 891 TEST_F(SessionManagerTest, Whitelist) { | 896 TEST_F(SessionManagerTest, Whitelist) { |
| 892 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); | 897 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); |
| 893 EXPECT_CALL(*(utils_.get()), | 898 EXPECT_CALL(*(utils_.get()), |
| 894 SendSignalToChromium(chromium::kWhitelistChangeCompleteSignal, | 899 SendSignalToChromium(chromium::kWhitelistChangeCompleteSignal, |
| 895 StrEq("success"))) | 900 StrEq("success"))) |
| 896 .Times(1); | 901 .Times(1); |
| 897 MockUtils(); | 902 MockUtils(); |
| 898 | 903 |
| 899 MockPrefStore* store = new MockPrefStore; | 904 MockPrefStore* store = new MockPrefStore; |
| 900 MockOwnerKey* key = new MockOwnerKey; | 905 MockOwnerKey* key = new MockOwnerKey; |
| 901 MockDevicePolicy* policy = new MockDevicePolicy; | 906 MockDevicePolicy* policy = new MockDevicePolicy; |
| 902 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) | 907 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) |
| 903 .WillOnce(Return(true)); | 908 .WillOnce(Return(true)); |
| 904 EXPECT_CALL(*key, IsPopulated()) | 909 EXPECT_CALL(*key, IsPopulated()) |
| 905 .WillOnce(Return(true)); | 910 .WillOnce(Return(true)); |
| 906 EXPECT_CALL(*key, Verify(StrEq(kFakeEmail), strlen(kFakeEmail), | 911 EXPECT_CALL(*key, Verify(CastEq(kFakeEmail), strlen(kFakeEmail), |
| 907 fake_sig_->data, fake_sig_->len)) | 912 CastEq(fake_sig_->data), fake_sig_->len)) |
| 908 .WillOnce(Return(true)); | 913 .WillOnce(Return(true)); |
| 909 | 914 |
| 910 manager_->test_api().set_ownerkey(key); | 915 manager_->test_api().set_ownerkey(key); |
| 911 | 916 |
| 912 EXPECT_CALL(*store, Whitelist(kFakeEmail, _)) | 917 EXPECT_CALL(*store, Whitelist(kFakeEmail, _)) |
| 913 .Times(1); | 918 .Times(1); |
| 914 EXPECT_CALL(*store, Persist()) | 919 EXPECT_CALL(*store, Persist()) |
| 915 .WillOnce(Return(true)) | 920 .WillOnce(Return(true)) |
| 916 .WillOnce(Return(true)); | 921 .WillOnce(Return(true)); |
| 917 | 922 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 932 .Times(1); | 937 .Times(1); |
| 933 MockUtils(); | 938 MockUtils(); |
| 934 | 939 |
| 935 MockPrefStore* store = new MockPrefStore; | 940 MockPrefStore* store = new MockPrefStore; |
| 936 MockOwnerKey* key = new MockOwnerKey; | 941 MockOwnerKey* key = new MockOwnerKey; |
| 937 MockDevicePolicy* policy = new MockDevicePolicy; | 942 MockDevicePolicy* policy = new MockDevicePolicy; |
| 938 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) | 943 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) |
| 939 .WillOnce(Return(true)); | 944 .WillOnce(Return(true)); |
| 940 EXPECT_CALL(*key, IsPopulated()) | 945 EXPECT_CALL(*key, IsPopulated()) |
| 941 .WillOnce(Return(true)); | 946 .WillOnce(Return(true)); |
| 942 EXPECT_CALL(*key, Verify(StrEq(kFakeEmail), strlen(kFakeEmail), | 947 EXPECT_CALL(*key, Verify(CastEq(kFakeEmail), strlen(kFakeEmail), |
| 943 fake_sig_->data, fake_sig_->len)) | 948 CastEq(fake_sig_->data), fake_sig_->len)) |
| 944 .WillOnce(Return(true)); | 949 .WillOnce(Return(true)); |
| 945 | 950 |
| 946 manager_->test_api().set_ownerkey(key); | 951 manager_->test_api().set_ownerkey(key); |
| 947 | 952 |
| 948 EXPECT_CALL(*store, Unwhitelist(kFakeEmail)) | 953 EXPECT_CALL(*store, Unwhitelist(kFakeEmail)) |
| 949 .Times(1); | 954 .Times(1); |
| 950 EXPECT_CALL(*store, Persist()) | 955 EXPECT_CALL(*store, Persist()) |
| 951 .WillOnce(Return(true)) | 956 .WillOnce(Return(true)) |
| 952 .WillOnce(Return(true)); | 957 .WillOnce(Return(true)); |
| 953 | 958 |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1057 EXPECT_EQ(fake_whitelisted[i], out_list[i]); | 1062 EXPECT_EQ(fake_whitelisted[i], out_list[i]); |
| 1058 } | 1063 } |
| 1059 EXPECT_EQ(fake_whitelisted.size(), i); | 1064 EXPECT_EQ(fake_whitelisted.size(), i); |
| 1060 g_strfreev(out_list); | 1065 g_strfreev(out_list); |
| 1061 } | 1066 } |
| 1062 | 1067 |
| 1063 TEST_F(SessionManagerTest, StorePolicy) { | 1068 TEST_F(SessionManagerTest, StorePolicy) { |
| 1064 enterprise_management::PolicyFetchResponse fake_policy; | 1069 enterprise_management::PolicyFetchResponse fake_policy; |
| 1065 fake_policy.set_policy_data(kPropName); | 1070 fake_policy.set_policy_data(kPropName); |
| 1066 fake_policy.set_policy_data_signature(kPropValue); | 1071 fake_policy.set_policy_data_signature(kPropValue); |
| 1072 fake_policy.set_new_public_key(kPropName); |
| 1073 fake_policy.set_new_public_key_signature(kPropValue); |
| 1067 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); | 1074 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); |
| 1068 | 1075 |
| 1069 MockPrefStore* store = new MockPrefStore; | 1076 MockPrefStore* store = new MockPrefStore; |
| 1070 MockOwnerKey* key = new MockOwnerKey; | 1077 MockOwnerKey* key = new MockOwnerKey; |
| 1071 MockDevicePolicy* policy = new MockDevicePolicy; | 1078 MockDevicePolicy* policy = new MockDevicePolicy; |
| 1072 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) | 1079 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) |
| 1073 .WillOnce(Return(true)); | 1080 .WillOnce(Return(true)); |
| 1081 EXPECT_CALL(*key, PopulateFromBuffer(_)) |
| 1082 .WillOnce(Return(true)); |
| 1074 EXPECT_CALL(*key, IsPopulated()) | 1083 EXPECT_CALL(*key, IsPopulated()) |
| 1084 .WillOnce(Return(false)) |
| 1075 .WillOnce(Return(true)); | 1085 .WillOnce(Return(true)); |
| 1076 EXPECT_CALL(*key, Verify(StrEq(kPropName), strlen(kPropName), | 1086 EXPECT_CALL(*key, Verify(CastEq(kPropName), strlen(kPropName), |
| 1077 StrEq(kPropValue), strlen(kPropValue))) | 1087 CastEq(kPropValue), strlen(kPropValue))) |
| 1088 .WillOnce(Return(true)); |
| 1089 EXPECT_CALL(*key, Equals(StrEq(kPropName))) |
| 1090 .WillOnce(Return(false)); |
| 1091 EXPECT_CALL(*key, Persist()) |
| 1078 .WillOnce(Return(true)); | 1092 .WillOnce(Return(true)); |
| 1079 manager_->test_api().set_ownerkey(key); | 1093 manager_->test_api().set_ownerkey(key); |
| 1080 | 1094 |
| 1081 EXPECT_CALL(*store, Persist()) | 1095 EXPECT_CALL(*store, Persist()) |
| 1082 .WillOnce(Return(true)); | 1096 .WillOnce(Return(true)); |
| 1083 manager_->test_api().set_prefstore(store); | 1097 manager_->test_api().set_prefstore(store); |
| 1084 | 1098 |
| 1085 EXPECT_CALL(*policy, Persist()) | 1099 EXPECT_CALL(*policy, Persist()) |
| 1086 .WillOnce(Return(true)) | 1100 .WillOnce(Return(true)) |
| 1087 .WillOnce(Return(true)); | 1101 .WillOnce(Return(true)); |
| 1088 EXPECT_CALL(*policy, Set(_)) | 1102 EXPECT_CALL(*policy, Set(_)) |
| 1089 .Times(1); | 1103 .Times(1); |
| 1090 manager_->test_api().set_policy(policy); | 1104 manager_->test_api().set_policy(policy); |
| 1091 | 1105 |
| 1106 EXPECT_CALL(*(utils_.get()), |
| 1107 SendSignalToChromium(chromium::kOwnerKeySetSignal, |
| 1108 StrEq("success"))) |
| 1109 .Times(1); |
| 1110 MockUtils(); |
| 1111 |
| 1092 std::string pol_str = fake_policy.SerializeAsString(); | 1112 std::string pol_str = fake_policy.SerializeAsString(); |
| 1093 ASSERT_FALSE(pol_str.empty()); | 1113 ASSERT_FALSE(pol_str.empty()); |
| 1094 GArray* policy_array = CreateArray(pol_str.c_str(), pol_str.length()); | 1114 GArray* policy_array = CreateArray(pol_str.c_str(), pol_str.length()); |
| 1095 EXPECT_EQ(TRUE, manager_->StorePolicy(policy_array, NULL)); | 1115 EXPECT_EQ(TRUE, manager_->StorePolicy(policy_array, NULL)); |
| 1096 manager_->Run(); | 1116 manager_->Run(); |
| 1097 g_array_free(policy_array, TRUE); | 1117 g_array_free(policy_array, TRUE); |
| 1098 } | 1118 } |
| 1099 | 1119 |
| 1100 TEST_F(SessionManagerTest, StorePropertyNoKey) { | 1120 TEST_F(SessionManagerTest, StorePropertyNoKey) { |
| 1101 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); | 1121 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1120 | 1140 |
| 1121 TEST_F(SessionManagerTest, StorePropertyVerifyFail) { | 1141 TEST_F(SessionManagerTest, StorePropertyVerifyFail) { |
| 1122 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); | 1142 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); |
| 1123 MockUtils(); | 1143 MockUtils(); |
| 1124 | 1144 |
| 1125 MockOwnerKey* key = new MockOwnerKey; | 1145 MockOwnerKey* key = new MockOwnerKey; |
| 1126 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) | 1146 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) |
| 1127 .WillOnce(Return(true)); | 1147 .WillOnce(Return(true)); |
| 1128 EXPECT_CALL(*key, IsPopulated()) | 1148 EXPECT_CALL(*key, IsPopulated()) |
| 1129 .WillOnce(Return(true)); | 1149 .WillOnce(Return(true)); |
| 1130 EXPECT_CALL(*key, Verify(StrEq(property_), property_.length(), | 1150 EXPECT_CALL(*key, Verify(CastEq(property_), property_.length(), |
| 1131 fake_sig_->data, fake_sig_->len)) | 1151 CastEq(fake_sig_->data), fake_sig_->len)) |
| 1132 .WillOnce(Return(false)); | 1152 .WillOnce(Return(false)); |
| 1133 manager_->test_api().set_ownerkey(key); | 1153 manager_->test_api().set_ownerkey(key); |
| 1134 | 1154 |
| 1135 GError* error = NULL; | 1155 GError* error = NULL; |
| 1136 EXPECT_EQ(FALSE, manager_->StoreProperty(kPropName, | 1156 EXPECT_EQ(FALSE, manager_->StoreProperty(kPropName, |
| 1137 kPropValue, | 1157 kPropValue, |
| 1138 fake_sig_, | 1158 fake_sig_, |
| 1139 &error)); | 1159 &error)); |
| 1140 EXPECT_EQ(CHROMEOS_LOGIN_ERROR_VERIFY_FAIL, error->code); | 1160 EXPECT_EQ(CHROMEOS_LOGIN_ERROR_VERIFY_FAIL, error->code); |
| 1141 g_error_free(error); | 1161 g_error_free(error); |
| 1142 SimpleRunManager(new MockPrefStore, new MockDevicePolicy); | 1162 SimpleRunManager(new MockPrefStore, new MockDevicePolicy); |
| 1143 } | 1163 } |
| 1144 | 1164 |
| 1145 TEST_F(SessionManagerTest, StoreProperty) { | 1165 TEST_F(SessionManagerTest, StoreProperty) { |
| 1146 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); | 1166 MockChildJob* job = CreateTrivialMockJob(MAYBE_NEVER); |
| 1147 EXPECT_CALL(*(utils_.get()), | 1167 EXPECT_CALL(*(utils_.get()), |
| 1148 SendSignalToChromium(chromium::kPropertyChangeCompleteSignal, | 1168 SendSignalToChromium(chromium::kPropertyChangeCompleteSignal, |
| 1149 StrEq("success"))) | 1169 StrEq("success"))) |
| 1150 .Times(1); | 1170 .Times(1); |
| 1151 MockUtils(); | 1171 MockUtils(); |
| 1152 | 1172 |
| 1153 MockPrefStore* store = new MockPrefStore; | 1173 MockPrefStore* store = new MockPrefStore; |
| 1154 MockOwnerKey* key = new MockOwnerKey; | 1174 MockOwnerKey* key = new MockOwnerKey; |
| 1155 MockDevicePolicy* policy = new MockDevicePolicy; | 1175 MockDevicePolicy* policy = new MockDevicePolicy; |
| 1156 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) | 1176 EXPECT_CALL(*key, PopulateFromDiskIfPossible()) |
| 1157 .WillOnce(Return(true)); | 1177 .WillOnce(Return(true)); |
| 1158 EXPECT_CALL(*key, IsPopulated()) | 1178 EXPECT_CALL(*key, IsPopulated()) |
| 1159 .WillOnce(Return(true)); | 1179 .WillOnce(Return(true)); |
| 1160 EXPECT_CALL(*key, Verify(StrEq(property_), property_.length(), | 1180 EXPECT_CALL(*key, Verify(CastEq(property_), property_.length(), |
| 1161 fake_sig_->data, fake_sig_->len)) | 1181 CastEq(fake_sig_->data), fake_sig_->len)) |
| 1162 .WillOnce(Return(true)); | 1182 .WillOnce(Return(true)); |
| 1163 manager_->test_api().set_ownerkey(key); | 1183 manager_->test_api().set_ownerkey(key); |
| 1164 | 1184 |
| 1165 EXPECT_CALL(*store, Set(kPropName, kPropValue, _)) | 1185 EXPECT_CALL(*store, Set(kPropName, kPropValue, _)) |
| 1166 .Times(1); | 1186 .Times(1); |
| 1167 EXPECT_CALL(*store, Persist()) | 1187 EXPECT_CALL(*store, Persist()) |
| 1168 .WillOnce(Return(true)) | 1188 .WillOnce(Return(true)) |
| 1169 .WillOnce(Return(true)); | 1189 .WillOnce(Return(true)); |
| 1170 manager_->test_api().set_prefstore(store); | 1190 manager_->test_api().set_prefstore(store); |
| 1171 | 1191 |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1408 } | 1428 } |
| 1409 | 1429 |
| 1410 TEST(SessionManagerTestStatic, GetArgLists3_InitialDashes) { | 1430 TEST(SessionManagerTestStatic, GetArgLists3_InitialDashes) { |
| 1411 const char* c_args[] = {"--", "a", "b", "c", NULL}; | 1431 const char* c_args[] = {"--", "a", "b", "c", NULL}; |
| 1412 std::vector<std::vector<std::string> > arg_lists = GetArgs(c_args); | 1432 std::vector<std::vector<std::string> > arg_lists = GetArgs(c_args); |
| 1413 EXPECT_EQ(1, arg_lists.size()); | 1433 EXPECT_EQ(1, arg_lists.size()); |
| 1414 EXPECT_EQ(3, arg_lists[0].size()); | 1434 EXPECT_EQ(3, arg_lists[0].size()); |
| 1415 } | 1435 } |
| 1416 | 1436 |
| 1417 } // namespace login_manager | 1437 } // namespace login_manager |
| OLD | NEW |