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 |