7 use PHPUnit\Framework\TestCase;
11 $sharedLibrary =
"/var/www/html/shared/library";
12 $admIncludes =
"/var/www/html/admcom/includes";
13 require_once(
"$sharedLibrary/hcuFunctions.i");
14 require_once(
"$admIncludes/cu_notify.data");
21 function test_ModifyVerifiedEmailListWithUsedEmails() {
24 $usedEmailList = array();
25 $verifiedEmailList =
null;
26 $deletedEmails = array();
27 $results = _ModifyVerifiedEmailListWithUsedEmails ($usedEmailList, $verifiedEmailList, $deletedEmails);
28 $this->assertEquals($results[
"error"],
"Inputs are not valid.");
31 $usedEmailList = array(array(
"noemail" =>
true,
"used" =>
true));
32 $verifiedEmailList = array();
33 $deletedEmails = array();
34 $results = _ModifyVerifiedEmailListWithUsedEmails ($usedEmailList, $verifiedEmailList, $deletedEmails);
35 $this->assertEquals($results[
"error"],
"UsedEmailList is not valid.");
38 $usedEmailList = array(array(
"email" =>
"invalidemail",
"used" =>
true));
39 $verifiedEmailList = array();
40 $deletedEmails = array();
41 $results = _ModifyVerifiedEmailListWithUsedEmails ($usedEmailList, $verifiedEmailList, $deletedEmails);
42 $this->assertEquals($results[
"error"],
"One or more emails are not valid.");
45 $usedEmailList = array(
"email1@homecu.net" => array(
"email" =>
"email1@homecu.net",
"used" =>
true));
46 $verifiedEmailList = array(
"email1@homecu.net" => array(
"email" =>
"email1@homecu.net",
"used" =>
false),
47 "email2@homecu.net" => array(
"email" =>
"email2@homecu.net",
"used" =>
false));
48 $deletedEmails = array();
49 $results = _ModifyVerifiedEmailListWithUsedEmails ($usedEmailList, $verifiedEmailList, $deletedEmails);
50 $this->assertEquals($results[
"status"],
"000");
51 $this->assertEquals($results[
"data"][
"verifiedEmailList"][
"email1@homecu.net"][
"used"],
true);
52 $this->assertEquals($results[
"data"][
"verifiedEmailList"][
"email2@homecu.net"][
"used"],
false);
55 $usedEmailList = array(
"email1@homecu.net" => array(
"email" =>
"email1@homecu.net",
"used" =>
true));
56 $verifiedEmailList = array();
57 $deletedEmails = array(
"email1@homecu.net" =>
true);
58 $results = _ModifyVerifiedEmailListWithUsedEmails ($usedEmailList, $verifiedEmailList, $deletedEmails);
59 $this->assertEquals($results[
"error"],
"Cannot delete an email in use.");
62 function test_GetInfoForEmailList() {
64 $deletedEmails = array();
65 $unverifiedEmails = array();
66 $results = _GetInfoForEmailList($deletedEmails, $unverifiedEmails);
67 $this->assertEquals($results[
"status"],
"000");
68 $this->assertEquals(count($results[
"data"][
"info"]), 1);
69 $this->assertEquals($results[
"data"][
"info"][0],
"Email list saved successfully.");
71 $deletedEmails = array(
"test1@homecu.net" =>
"test1@homecu.net",
"test2@homecu.net" =>
"test2@homecu.net");
72 $unverifiedEmails = array(
"test3@homecu.net" =>
"test3@homecu.net");
73 $results = _GetInfoForEmailList($deletedEmails, $unverifiedEmails);
74 $this->assertEquals($results[
"status"],
"000");
75 $this->assertEquals($results[
"data"][
"info"], array(
"Email list saved successfully.",
" ",
"Verification emails were sent to:",
"test3@homecu.net",
76 " ",
"The following emails were removed:",
"test1@homecu.net",
"test2@homecu.net"));
79 function test_TransformKendoEmailList() {
80 $emailList =
"Invalid.";
81 $results = _TransformKendoEmailList($emailList);
82 $this->assertEquals($results[
"status"], 1);
83 $this->assertEquals($results[
"error"],
"Email list is not valid.");
85 $emailList = HCU_JsonEncode(array(array(
"email" =>
"is there",
"but status" =>
"is not")));
86 $results = _TransformKendoEmailList($emailList);
87 $this->assertEquals($results[
"status"], 2);
88 $this->assertEquals($results[
"error"],
"Email list is not valid.");
90 $emailList = HCU_JsonEncode(array(array(
"email" =>
"is there",
"status" =>
"is not in list")));
91 $results = _TransformKendoEmailList($emailList);
92 $this->assertEquals($results[
"status"], 3);
93 $this->assertEquals($results[
"error"],
"Email list is not valid.");
95 $emailList = HCU_JsonEncode(array(array(
"email" =>
"is not valid",
"status" =>
"Success")));
96 $results = _TransformKendoEmailList($emailList);
97 $this->assertEquals($results[
"status"], 4);
98 $this->assertEquals($results[
"error"],
"Email list is not valid.");
100 $emailList = HCU_JsonEncode(array(array(
"email" =>
"test1@homecu.net",
"status" =>
"Success"), array(
"email" =>
"test2@homecu.net",
"status" =>
""),
101 array(
"email" =>
"test3@homecu.net",
"status" =>
"Pending"), array(
"email" =>
"test4@homecu.net",
"status" =>
"Success",
"deleted" =>
true),
102 array(
"email" =>
"test5@homecu.net",
"status" =>
"Pending",
"deleted" =>
false),
103 array(
"email" =>
"test6@homecu.net",
"status" =>
"",
"deleted" =>
true,
"itsNew" =>
true),
104 array(
"email" =>
"TEst5@homecu.net",
"status" =>
"Success"), array(
"email" =>
"TeSt6@homecu.net",
"status" =>
"Pending",
"itsNew" =>
true)));
105 $results = _TransformKendoEmailList($emailList);
106 $this->assertEquals($results[
"status"],
"000");
107 $this->assertEquals(count($results[
"data"][
"allEmails"]), 8);
108 $this->assertEquals(count($results[
"data"][
"unverifiedEmails"]), 1);
109 $this->assertEquals($results[
"data"][
"unverifiedEmails"][
"test2@homecu.net"],
"test2@homecu.net");
110 $this->assertEquals(count($results[
"data"][
"deletedEmails"]), 1);
111 $this->assertEquals($results[
"data"][
"deletedEmails"][
"test4@homecu.net"],
"test4@homecu.net");
112 $this->assertEquals(count($results[
"data"][
"verifiedEmailList"]), 5);
113 $this->assertEquals($results[
"data"][
"verifiedEmailList"][
"test2@homecu.net"][
"status"],
"Pending");
114 $this->assertEquals(count($results[
"data"][
"databaseEmailList"]), 5);
115 $this->assertEquals($results[
"data"][
"databaseEmailList"][
"test1@homecu.net"][
"verified"],
true);
116 $this->assertEquals($results[
"data"][
"databaseEmailList"][
"test3@homecu.net"][
"verified"],
false);
123 function test_TransformEmailsNoSES() {
124 $dataFromNotifies = array(array(
"role" =>
"role",
"email" =>
"test1@homecu.net"));
125 $dataFromTemplate = array(array(
"email" =>
"teST1@homecu.net"), array(
"email" =>
"test3@homecu.net"));
127 $expectedResults = array(
128 "test1@homecu.net" => array(
"email" =>
"test1@homecu.net",
"status" =>
"",
"used" =>
true,
"isDirty" =>
true),
129 "test3@homecu.net" => array(
"email" =>
"test3@homecu.net",
"status" =>
"",
"used" =>
true,
"isDirty" =>
true)
132 $results = _TransformEmailsNoSES($dataFromNotifies, $dataFromTemplate);
133 $this->assertEquals($results[
"status"],
"000");
134 $this->assertEquals($results[
"data"][
"verifiedEmailList"], $expectedResults);
137 function test_TransformEmailStatuses() {
138 $emailStatuses = array(
"homecutester2@gmail.com" => array(
"VerificationStatus" =>
"Pending"),
139 "homecutester1@gmail.com" => array(
"VerificationStatus" =>
"Success"),
140 "homecutester3@gmail.com" => array(
"VerificationStatus" =>
"Failed"));
141 $verifiedEmailList = array(
"homecutester2@gmail.com" => array(
"email" =>
"homecutester2@gmail.com",
"status" =>
""),
142 "homecutester1@gmail.com" => array(
"email" =>
"homecutester1@gmail.com"),
143 "homecutester3@gmail.com" => array(
"email" =>
"homecutester3@gmail.com"),
144 "homecutester4@gmail.com" => array(
"email" =>
"homecutester4@gmail.com",
"status" =>
"Pending"));
145 $databaseEmailList = array(
"homecutester2@gmail.com" => array(
"email" =>
"homecutester2@gmail.com",
"verified" =>
false),
146 "homecutester1@gmail.com" => array(
"email" =>
"homecutester1@gmail.com",
"verified" =>
false),
147 "homecutester3@gmail.com" => array(
"email" =>
"homecutester3@gmail.com",
"verified" =>
false),
148 "homecutester4@gmail.com" => array(
"email" =>
"homecutester4@gmail.com",
"verified" =>
false));
150 $expectedVerifiedEmailList = array(
"homecutester2@gmail.com" => array(
"email" =>
"homecutester2@gmail.com",
"status" =>
"Pending"),
151 "homecutester1@gmail.com" => array(
"email" =>
"homecutester1@gmail.com",
"status" =>
"Success",
"resend" =>
false),
152 "homecutester3@gmail.com" => array(
"email" =>
"homecutester3@gmail.com",
"status" =>
"Failed"),
153 "homecutester4@gmail.com" => array(
"email" =>
"homecutester4@gmail.com",
"status" =>
"Pending"));
154 $expectedDatabaseEmailList = array(
"homecutester2@gmail.com" => array(
"email" =>
"homecutester2@gmail.com",
"verified" =>
false),
155 "homecutester1@gmail.com" => array(
"email" =>
"homecutester1@gmail.com",
"verified" =>
true),
156 "homecutester3@gmail.com" => array(
"email" =>
"homecutester3@gmail.com",
"verified" =>
false),
157 "homecutester4@gmail.com" => array(
"email" =>
"homecutester4@gmail.com",
"verified" =>
false));
159 $results = _TransformEmailStatuses($emailStatuses, $verifiedEmailList, $databaseEmailList);
160 $this->assertEquals($results[
"status"],
"000");
161 $this->assertEquals($results[
"data"][
"verifiedEmailList"], $expectedVerifiedEmailList);
162 $this->assertEquals($results[
"data"][
"databaseEmailList"], $expectedDatabaseEmailList);
163 $this->assertEquals($results[
"data"][
"updateDatabase"],
true);
166 function test_TransformDatabaseEmailList() {
167 $emailList = HCU_JsonEncode(array(array(
"email" =>
"homecutesteR1@homecu.net",
"verified" =>
false), array(
"email" =>
"homecutesTer2@",
"verified" =>
true)));
169 $results = _TransformDatabaseEmailList($emailList);
170 $this->assertEquals($results[
"error"],
"Email list is not valid.");
172 $emailList = HCU_JsonEncode(array(array(
"email" =>
"homecuteSTer1@homecu.net",
"verified" =>
false),
173 array(
"email" =>
"homecutesTer2@homecu.net",
"verified" =>
true)));
175 $expectedVerifiedEmailList = array(
"homecutester1@homecu.net" => array(
"email" =>
"homecutester1@homecu.net",
"status" =>
"",
"used" =>
false,
"resend" =>
true),
176 "homecutester2@homecu.net" => array(
"email" =>
"homecutester2@homecu.net",
"status" =>
"Success",
"used" =>
false,
178 $expectedDatabaseEmailList = array(
"homecutester1@homecu.net" => array(
"email" =>
"homecutester1@homecu.net",
"verified" =>
false),
179 "homecutester2@homecu.net" => array(
"email" =>
"homecutester2@homecu.net",
"verified" =>
true));
180 $results = _TransformDatabaseEmailList($emailList);
181 $this->assertEquals($results[
"status"],
"000");
182 $this->assertEquals($results[
"data"][
"verifiedEmailList"], $expectedVerifiedEmailList);
183 $this->assertEquals($results[
"data"][
"databaseEmailList"], $expectedDatabaseEmailList);
184 $this->assertEquals(count($results[
"data"][
"unverifiedEmails"]), 1);
185 $this->assertEquals($results[
"data"][
"unverifiedEmails"][
"homecutester1@homecu.net"],
"homecutester1@homecu.net");
186 $this->assertEquals(count($results[
"data"][
"allEmails"]), 2);
189 function test_ValidateAWSStatusReturn() {
191 $results = _ValidateAWSStatusReturn($response);
192 $this->assertEquals($results[
"status"], 11);
193 $this->assertEquals($results[
"error"],
"Invalid response from script.");
195 $response = HCU_JsonEncode(array());
196 $results = _ValidateAWSStatusReturn($response);
197 $this->assertEquals($results[
"status"], 3);
198 $this->assertEquals($results[
"error"],
"Invalid response from script.");
200 $response = HCU_JsonEncode(array(
"status" =>
"08"));
201 $results = _ValidateAWSStatusReturn($response);
202 $this->assertEquals($results[
"status"], 5);
203 $this->assertEquals($results[
"error"],
"Invalid response from script.");
205 $response = HCU_JsonEncode(array(
"status" =>
"08",
"error" =>
"There's an error somewhere.",
"response" => array()));
206 $results = _ValidateAWSStatusReturn($response);
207 $this->assertEquals($results[
"status"], 4);
208 $this->assertEquals($results[
"error"],
"There's an error somewhere.");
210 $response = HCU_JsonEncode(array(
"status" =>
"000",
"error" =>
"",
"response" => array()));
211 $results = _ValidateAWSStatusReturn($response);
212 $this->assertEquals($results[
"status"], 6);
213 $this->assertEquals($results[
"error"],
"Invalid response from script.");
215 $response = HCU_JsonEncode(array(
"status" =>
"000",
"error" =>
"",
216 "response" => array(
"VerificationAttributes" =>
"Anything. It is handled by the next small function.")));
217 $results = _ValidateAWSStatusReturn($response);
218 $this->assertEquals($results[
"status"],
"000");
219 $this->assertEquals($results[
"data"][
"emailStatuses"],
"Anything. It is handled by the next small function.");
226 function test_TransformUsedEmailList() {
227 $usedEmailData = array(array(
"email" =>
" teST1@homecu.net ",
"used" =>
"t"), array(
"email" =>
" tEst2@homecu.net",
"used" =>
"f"));
228 $expectedUsedEmailData = array(
"test1@homecu.net" => array(
"email" =>
"test1@homecu.net",
"used" =>
true),
229 "test2@homecu.net" => array(
"email" =>
"test2@homecu.net",
"used" =>
false));
230 $results = _TransformUsedEmailList($usedEmailData);
231 $this->assertEquals($results[
"status"],
"000");
232 $this->assertEquals($results[
"data"][
"usedEmailList"], $expectedUsedEmailData);
235 function test_GetInvalidRoles() {
236 $roles = array(
"Role1" => array(
"hidden" =>
true),
237 "Role2" => array(
"hidden" =>
false,
"single" =>
true),
239 "Role4" => array(
"single" =>
true),
240 "Role5" => array(
"single" =>
false));
241 $expectedInvalidRoles = array(
"Role1",
"Role3",
"Role5");
242 $results = _GetInvalidRoles($roles);
243 $this->assertEquals($results[
"status"],
"000");
244 $this->assertEquals($results[
"data"][
"invalidRoles"], $expectedInvalidRoles);
251 function test_TransformReadEmailNotify() {
253 "achnotify" => array(
"desc" =>
"A"),
254 "required" => array(
"desc" =>
"B",
"clear" =>
false),
255 "another" => array(
"desc" =>
"C",
"single" =>
true),
256 "hidden" => array(
"desc" =>
"D",
"hidden" =>
true)
259 array(
"role" =>
"nomatch",
"email" =>
" "),
260 array(
"role" =>
"achnotify",
"email" =>
" "),
261 array(
"role" =>
"required",
"email" =>
"test1@homecu.net"),
262 array(
"role" =>
"another",
"email" =>
"test2@homecu.net"),
263 array(
"role" =>
"hidden",
"email" =>
"test3@homecu.net")
265 $featureList = array(
"data" => array(
"ACHCOL"));
266 $expectedResults = array(
267 array(
"roleId" =>
"achnotify",
"roleText" =>
"A",
"required" =>
false,
"single" =>
false,
"email" =>
""),
268 array(
"roleId" =>
"required",
"roleText" =>
"B",
"required" =>
true,
"single" =>
false,
"email" =>
"test1@homecu.net"),
269 array(
"roleId" =>
"another",
"roleText" =>
"C",
"required" =>
true,
"single" =>
true,
"email" =>
"test2@homecu.net")
271 $results = _TransformReadEmailNotify($roles, $roleData, $featureList);
272 $this->assertEquals($results[
"status"],
"000");
273 $this->assertEquals($results[
"data"][
"records"], $expectedResults);
275 $featureList = array(
"data" => array());
276 $results = _TransformReadEmailNotify($roles, $roleData, $featureList);
277 $this->assertEquals($results[
"status"],
"000");
278 $this->assertEquals(count($results[
"data"][
"records"]), 2);
285 function test_TransformRoleForUpdate() {
287 "cannot be cleared" => array(
"clear" =>
false,
"desc" =>
"A"),
288 "Email cannot be cleared" => array(),
289 "one address" => array(
"single" =>
true),
292 $role =
"doesn't exist";
294 $results = _TransformRoleForUpdate($role, $roles, $email);
295 $this->assertEquals($results[
"status"], 1);
296 $this->assertEquals($results[
"error"],
"role record not found.");
298 $role =
"cannot be cleared";
299 $results = _TransformRoleForUpdate($role, $roles, $email);
300 $this->assertEquals($results[
"status"], 2);
301 $this->assertEquals($results[
"error"],
"Email cannot be cleared.");
303 $role =
"Email cannot be cleared";
304 $email =
"invalid email";
305 $results = _TransformRoleForUpdate($role, $roles, $email);
306 $this->assertEquals($results[
"status"], 3);
307 $this->assertEquals($results[
"error"],
"One of the emails is invalid.");
310 $results = _TransformRoleForUpdate($role, $roles, $email);
311 $this->assertEquals($results[
"status"], 4);
312 $this->assertEquals($results[
"error"],
"Email cannot be cleared.");
314 $email =
"test1@homecu.net; test2@homecu.net;;;;";
315 $role =
"one address";
316 $results = _TransformRoleForUpdate($role, $roles, $email);
317 $this->assertEquals($results[
"status"], 5);
318 $this->assertEquals($results[
"error"],
"Only one address is allowed.");
320 $role =
"cannot be cleared";
321 $expectedResults = array(
"roleId" =>
"cannot be cleared",
"roleText" =>
"A",
"email" =>
"test1@homecu.net;test2@homecu.net",
322 "required" =>
true,
"recordExists" =>
"Y");
323 $results = _TransformRoleForUpdate($role, $roles, $email);
324 $this->assertEquals($results[
"status"],
"000");
325 $this->assertEquals($results[
"data"][
"returnRecord"], $expectedResults);
328 function test_CreateUpdateTableForUpdateAudit() {
332 $email =
"email1@homecu.net";
333 $recordExists =
true;
334 $userEmail =
"email2@homecu.net";
335 $specialEmailUpdate =
false;
336 $results = _CreateUpdateTableForUpdateAudit($Cu, $role, $email, $recordExists, $userEmail, $specialEmailUpdate);
337 $this->assertEquals($results[
"status"],
"000");
338 $this->assertEquals($results[
"data"][
"updateTable"], array(
"cuadmnotify" => array(array(
"cu" =>
"MYCU",
"role" =>
"role",
339 "email" =>
"email1@homecu.net",
"_action" =>
"update"))));
340 $this->assertEquals($results[
"data"][
"shortLabel"],
"UPD_NOTI");
341 $this->assertEquals($results[
"data"][
"longLabel"],
"Update Notification Emails");
344 $specialEmailUpdate =
true;
345 $results = _CreateUpdateTableForUpdateAudit($Cu, $role, $email, $recordExists, $userEmail, $specialEmailUpdate);
346 $this->assertEquals($results[
"status"],
"000");
347 $this->assertEquals($results[
"data"][
"shortLabel"],
"UPD_SNOTI");
348 $this->assertEquals($results[
"data"][
"longLabel"],
"Update Special Email Notification");
351 $recordExists =
false;
352 $results = _CreateUpdateTableForUpdateAudit($Cu, $role, $email, $recordExists, $userEmail, $specialEmailUpdate);
353 $this->assertEquals($results[
"status"],
"000");
354 $this->assertEquals($results[
"data"][
"shortLabel"],
"ADD_SNOTI");
355 $this->assertEquals($results[
"data"][
"longLabel"],
"Add Special Email Notification");
358 $specialEmailUpdate =
false;
359 $results = _CreateUpdateTableForUpdateAudit($Cu, $role, $email, $recordExists, $userEmail, $specialEmailUpdate);
360 $this->assertEquals($results[
"status"],
"000");
361 $this->assertEquals($results[
"data"][
"shortLabel"],
"ADD_NOTI");
362 $this->assertEquals($results[
"data"][
"longLabel"],
"Add Notification Emails");